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-阿里云