555
阿裏雲
SDK的使用說明__Python版SDK_批量計算-阿裏雲
1. 使用舉例
您必須替換代碼中的
image_id,access_key_id,access_key_secret等用戶信息以及oss相關的路徑。
import timefrom batchcompute import Cient, ClientErrorfrom batchcompute import CN_SHENZHEN as REGIONfrom batchcompute.resources import (JobDescription, TaskDescription, DAG,GroupDescription, ClusterDescription,)# some other codes hereaccess_key_id = ... # your access key idaccess_key_secret = ... # your access key secretimage_id = ... # the id of a image created beforeinstance_type = ... # instance typeclient = Client(REGION, access_key_id, access_key_secret)try:# Create cluster.cluster_desc = ClusterDescription()group_desc = GroupDescription()group_desc.DesiredVMCount = 1group_desc.InstanceType = instance_typecluster_desc.add_group('group1', group_desc)cluster_desc.Name = "BatchcomputeCluster"cluster_desc.ImageId = image_idcluster_desc.Description = "Python SDK test"cluster_id = client.create_cluster(cluster_desc).Id# Create job.job_desc = JobDescription()echo_task = TaskDescription()# Create map task.echo_task.Parameters.Command.CommandLine = "echo Batchcompute service"echo_task.Parameters.Command.PackagePath = ""echo_task.Parameters.StdoutRedirectPath = "oss://xxx/xxx/" # Better replace this pathecho_task.Parameters.StderrRedirectPath = "oss://xxx/xxx/" # Better replace this pathecho_task.InstanceCount = 3echo_task.ClusterId = cluster_id# Create task dag.task_dag = DAG()task_dag.add_task(task_name="Echo", task=echo_task)# Create job description.job_desc.DAG = task_dagjob_desc.Priority = 99 # 0-1000job_desc.Name = "PythonSDKDemo"job_desc.JobFailOnInstanceFail = Truejob_id = client.create_job(job_desc).Id# Wait for job finished.errs = client.poll(job_id)if errs: print ("Some errors occur: %s" % 'n'.join(errs))# Delete clusterclient.delete_cluster(cluster_id)except ClientError, e:print (e.get_status_code(), e.get_code(), e.get_requestid(), e.get_msg())
2、 類和常量
2.1 接口類型
接口類型提供了BatchCompute服務所有API接口的Python實現以及其他一些有用的輔助接口。
| 序號 | 名稱 | 可序列化 | 描述 |
|---|---|---|---|
| 1. | Client | No | 與BatchCompute服務交互的客戶端類型 |
2.2 描述類型
描述類型主要作為創建資源時的參數類型或獲取資源狀態信息時由服務的返回類型。
| 序號 | 名稱 | 可序列化 | 描述 |
|---|---|---|---|
| 1. | JobDescription | Yes | 描述用戶作業的類 |
| 2. | DAG | Yes | 描述作業任務以及任務間互相之間依賴關係的類 |
| 3. | TaskDescription | Yes | 描述任務的類 |
| 4. | Parameters | Yes | 描述任務運行參數的類 |
| 5. | Command | Yes | 配置任務命令行執行環境類 |
| 6. | ClusterDescription | Yes | 描述用戶集群的類 |
| 7. | GroupDescription | Yes | 描述用戶集群實例配置的類 |
| 8. | Job | Yes | 描述給定作業當前狀態信息的類 |
| 9. | Task | Yes | 描述給定的作業任務的當前狀態信息的類 |
| 10. | Instance | Yes | 描述給定的任務實例當前狀態信息的類 |
| 11. | Result | Yes | 描述給定的任務實例運行結果的類 |
| 12. | InstanceMetrics | Yes | 描述給定作業或任務實例統計信息的類 |
| 13. | TaskMetrics | Yes | 描述給定作業中任務統計信息的類 |
| 14. | Cluster | Yes | 描述給定集群狀態信息的類 |
| 15. | Group | Yes | 描述給定集群中機器組狀態信息的類 |
| 16. | Metrics | Yes | 描述給定集群作業統計信息的類 |
關於可序列化
描述類型均為可序列化的類型,SDK中所有可序列化的類均從內部類型
Jsonizable繼承而來。以下是關於Jsonizable類型及其子類的描述;
參數說明:
Jsonizable及其子類對象均可通過字典,Jsonizable對象或者描述字典的JSON串初始化。注意,在初始化Jsonizable對象及其子類時,會丟棄字典或者JSON串中所有不合法的屬性描述信息。
| 參數 | 類型 | 描述 |
|---|---|---|
| properties | dict, str, Jsonizable object | 屬性描述信息 |
- 通過字典初始化
Jsonizable類:
e.g.
from batchcompute.resources import JobDescription# A dict object.properties = {"Name": "PythonSDKDemo","Description": "Batchcompute"}jsonizable = JobDescription(properties)print (jsonizable.Name)print (jsonizable.Description)
- 通過JSON字符串初始化
Jsonizable類
e.g.
from batchcompute.resources import JobDescription# A string jsonized from a dict object.properties = '''{"Name": "PythonSDKDemo","Description": "Batchcompute"}'''jsonizable = JobDescription(properties)print (jsonizable.Name)print (jsonizable.Description)
- 通過相同類的對象初始化
Jsonizable類。
e.g.
form batchcompute.resources import JobDescription# A JobDescription object.jsonizable1 = JobDescription()jsonizable1.Name = "PythonSDKDemo"jsonizable1.Description = "Batchcompute"jsonizable2 = JobDescription(jsonizable1)print(jsonizable2.Name)print(jsonizable2.Description)
方法說明:
| 序號 | 方法名 | 描述 |
|---|---|---|
| 1. | update | 接受一個字典對象,更新類的部分屬性,不合法的屬性將被丟棄 |
| 2. | detail | 返回一個包含類屬性的字典,如果屬性為空將不被包含 |
| 3. | load | 接受一個字符串,該字符串是一個JSON化的字典,類的屬性均被更新,不合法的屬性會被丟棄 |
| 4. | dump | 返回一個字符串,內容JSON化的字典,包含所有類屬性信息,如果屬性為空將不被包含 |
| 5. | __str__ | 被print調用的內置函數,其內部調用了dump函數 |
關於類屬性
可序列化的類型均具有各種屬性。屬性均可以通過其名稱直接讀取,例如,你可以通過如下代碼獲取作業的ID:另外屬性名與Python規範PEP8中類的命名方式保持一致(區別於類方法的命名規則),遵循CamelCase的拚寫規則.
# job is a Job object.job = ...job_id = job.Idprint (job_id)
- 另外,可以通過字典取值的方式獲取屬性,例如:
# job is a Job object.job = ...job_id = job["Id"]print (job_id)
- 對於類
JobDescription,DAG,TaskDescription, 可以通過賦值的方式更改某個屬性的值,例如:
from batchcompute.resources import JobDescriptionjob_desc = JobDescription()job_desc.Name = "PythonSDKDemo"
- 對於類
JobDescription,DAG,TaskDescription, 可以通過字典的方式對類的屬性進行賦值, 例如:
from batchcompute.resources import JobDescriptionjob_desc = JobDescription()job_desc["Id"] = "PythonSDKDemo"
2.3 響應類型
| 序號 | 名稱 | 可序列化 | 描述 |
|---|---|---|---|
| 1. | CreateResponse | No | 創建資源成功後, Client返回的響應類 |
| 2. | GetResponse | No | 獲取資源狀態信息, Client返回的響應類 |
| 3. | ActionResponse | No | 對資源進行各種操作時由Client返回的響應類 |
| 4. | ListResponse | No | 列舉資源時,由Client返回的響應類 |
關於響應類
所有的響應類型 (
CreateResponse,GetResponse,ActionRespnse,ListResponse)均繼承自內部類型RawResponse.以下描述適用於所有RawResponse的子類。
屬性說明:
| 屬性 | 類型 | 描述 |
|---|---|---|
| RequestId | str | Client的所有請求的識別碼 |
| StatusCode | int | Client的所有請求的狀態碼 |
e.g.
...response = client.create_job(job_desc)print (response.RequestId)print (response.StatusCode)
2.4 異常類型
非法的參數或者非法請求時會拋出異常
| 序號 | 名稱 | 可序列化 | 描述 |
|---|---|---|---|
| 1. | ClientError | No | 異常類 |
| 2. | FieldError | No | 異常類 |
| 3. | ValidationError | No | 異常類 |
| 4. | JSONError | No | 異常類 |
| 5. | ConfigError | No | 異常類 |
2.5 常量
| 序號 | 名稱 | 可序列化 | 描述 |
|---|---|---|---|
| 1. | CN_QINGDAO | No | 常量,BatchCompute的青島(華北1)endpoint |
| 2. | CN_SHENZHEN | No | 常量,BatchCompute的深圳(華南1)endpoint |
| 3. | CN_BEIJING | No | 常量,BatchCompute的北京(華北2)endpoint |
| 4. | CN_HANGZHOU | No | 常量,BatchCompute的杭州(華東1)endpoint |
最後更新:2016-11-23 17:16:09
上一篇:
相關下載與安裝__Java版SDK_批量計算-阿裏雲
下一篇:
Client類構造方法__SDK接口說明_Python版SDK_批量計算-阿裏雲
數據上傳到MaxCompute(原ODPS)__用戶指南_推薦引擎-阿裏雲
阿裏雲物聯網套件簡介__產品介紹_阿裏雲物聯網套件-阿裏雲
ServiceParameterMap__數據類型_API_API 網關-阿裏雲
DescribeZones__LoadBalancer相關API_API 參考_負載均衡-阿裏雲
使用金融雲ECS__使用金融雲產品_金融雲-阿裏雲
LIKE字符匹配__附錄_SQL_大數據計算服務-阿裏雲
入駐流程___先知計劃-阿裏雲
iOS SDK手冊__SDK手冊_HTTPDNS-阿裏雲
雲服務器 ECS > 快速入門(Windows) > 步驟 4:格式化數據盤
企業郵箱在Foxmail 7.2上POP3/IMAP協議設置方法__客戶端使用_郵箱常見問題_企業郵箱-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲