全部产品

创建作业(App类型)

更新时间:2019-05-08 19:33:59

create_job

参数说明:

所有类型的参数将被转换为包含属性信息的字典对象。

参数 类型 描述
job_desc AppJobDescription object, str, dict App 作业的简单描述和作业对应的 App 的信息

返回值说明:

create_job 方法将返回一个CreateResponse对象, 以下是 CreateResponse 对象的属性。可以通过 response.Id 的方式获取新任务的 ID。

属性 类型 描述
Id str 新任务的任务标识符

e.g.

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from batchcompute import Client, ClientError
  4. from batchcompute import CN_ZHANGJIAKOU as REGION
  5. from batchcompute.resources import (
  6. ClusterDescription, GroupDescription, Config, Networks, VPC,
  7. AppJobDescription, App, DAG,Mounts,
  8. AutoCluster,Disks,Notification,
  9. )
  10. access_key_id = "" # your access key id
  11. access_key_secret = "" # your access key secret
  12. instance_type = "ecs.sn1.medium" # instance type
  13. stdoutOssPath = "oss://xxx/log/stdout/" #your stdout oss path
  14. stderrOssPath = "oss://xxx/log/stderr/" #your stderr oss path
  15. inputOssPath = "oss://xxx/input/" # your input oss path
  16. outputOssPath = "oss://xxx/output/" #your output oss path
  17. def getRuntimConfig():
  18. config_desc = Config()
  19. # 程序运行所需资源类型
  20. config_desc.ResourceType = "OnDemand"
  21. # 程序运行所需实例类型
  22. config_desc.InstanceType = instance_type
  23. # 程序运行所需实例个数
  24. config_desc.InstanceCount = 1
  25. # 实例系统盘大小,单位 GB
  26. config_desc.MinDiskSize = 40
  27. # 实例系统盘类型 cloud_efficiency/cloud_ssd
  28. config_desc.DiskType = "cloud_efficiency"
  29. # 实例数据盘大小,单位 GB
  30. # config_desc.MinDataDiskSize = 80
  31. # 实例数据盘类型,要和系统盘保持一致
  32. # config_desc.DataDiskType = 'cloud_efficiency'
  33. #实例数据盘挂载点
  34. # config_desc.DataDiskMountPoint = '/home/mount1/'
  35. # 作业失败后是否保留现场,请注意保留会继续产生费用需要及时清除
  36. # config_desc.ReserveOnFail = False
  37. # 设置作业失败重试次数
  38. config_desc.MaxRetryCount = 0
  39. # 设置作业超时时间
  40. config_desc.Timeout = 600
  41. return config_desc
  42. def getAppJobDesc():
  43. job_desc = AppJobDescription()
  44. app_desc = App()
  45. # 设置job 名称
  46. job_desc.Name = "test-app-job"
  47. # test-copy app提交作业
  48. # 提交APP作业之前需要确保test-copy 已经创建成功,具体步骤参考APP创建流程
  49. app_desc.AppName = "test-copy"
  50. # 设置标准输入输出路径
  51. app_desc.Logging.StdoutPath = stdoutOssPath
  52. app_desc.Logging.StderrPath = stderrOssPath
  53. # 设置app的输入输出参数 和 test-copy APP有关
  54. app_desc.add_input("inputFile", inputOssPath)
  55. app_desc.add_output("outputFile", outputOssPath)
  56. # 设置作业的runtime参数
  57. app_desc.Config = getRuntimConfig()
  58. job_desc.App = app_desc
  59. job_desc.Type = "App"
  60. return job_desc
  61. if __name__ == "__main__":
  62. client = Client(REGION, access_key_id, access_key_secret)
  63. try:
  64. job_desc = getAppJobDesc()
  65. job = client.create_job(job_desc)
  66. # Print out the job id.
  67. print (job.Id)
  68. except ClientError, e:
  69. print (e.get_status_code(), e.get_code(), e.get_requestid(), e.get_msg())

Notice:

关于App.Config的注意事项

  1. App.Config 的参数是可选的,如果不填会使用 App 定义中的默认配置。
  2. 如果 App 的定义中 Config 中的参数是可覆盖的,Job 级别的 Config 参数会覆盖 App 中的默认配置。
  3. APP 中各个类的结构体参考如下表格

(1)AppJobDescription 类

参数说明:

参数 类型 描述
properties dict, str, JobDescription object 包含作业描述信息的对象

属性说明:

序号 属性 类型 描述
1. Name str 作业名称
2. Description str 作业的简短描述信息
3. Priority int 优先级用一个[0,1000]范围内的整数指定,数值越高表示作业调度时的优先级越高
4. Notification dict 消息通知配置,可以配置MNS服务的 Topic 和 Job 相关事件
5. JobFailOnInstanceFail bool Instance 失败是否直接使 Job 失败
6. AutoRelease boolean 表示 job 运行成功自动会被立即释放(删除)掉,默认为 False
7. Type str 作业的类型,这里填写 “App”,即 App 类型的作业
8. App dict, App object App 的描述

(2)App 类

参数说明:

参数 类型 描述
properties dict, str, App object 作业对应的 App 的描述信息

属性说明:

序号 属性 类型 描述
1. AppName str 作业对应的 App 的名称
2. Inputs dict 作业对应的 App 的输入参数
3. Outputs dict 作业对应的 App 的输出参数
4. Logging dict 作业的日志信息
5. Config dict 作业对应的 App 的配置信息

方法说明 :

序号 方法 描述
1. add_input(name, value) 增加一个输入参数,这里的 name 要来自于 App 的定义
2. delete_input(name) 删除一个输入参数,这里的 name 要来自于 App 的定义
3. add_output(name, value) 增加一个输出参数,这里的 name 要来自于 App 的定义
4. delete_output(name) 删除一个输出参数,这里的 name 要来自于 App 的定义

(3) Config 类

参数说明:

参数 类型 描述
properties dict, str, Config object 作业对应的 App 的模板配置信息

属性说明:

序号 属性 类型 描述
1. ResourceType str 资源类型
2. InstanceType str 实例类型
3. InstanceCount int 实例个数
4. MinDiskSize int 系统盘的最小值
5. DiskType str 系统盘类型
6. MinDataDiskSize int 数据盘的最小值
7. DataDiskType str 数据盘的类型,需要和系统盘保持一致
8. DataDiskMountPoint str 数据盘的挂载点
9. MaxRetryCount int 某个实例失败的最大重试次数
10. Timeout int Instance 的运行时超时时间,单位为秒
11. ReserveOnFail bool 作业失败后,是否保留集群,用于问题排查