您可以通过界面或Python SDK的方式,提交PAI-DLC公共资源组任务。本文介绍如何通过Python SDK提交PAI-DLC公共资源组任务,包括下载Python SDK、安装Python SDK及创建并提交任务。

前提条件

  • 已开通PAI-DLC公共资源组,详情请参见授权
  • 已获取阿里云账户的AccessKey ID和AccessKey Secret,详情请参见获取AccessKey

背景信息

关于Python SDK更多接口的说明文档,请参见API参考

如果您需要通过界面提交PAI-DLC公共资源组任务,请参见创建任务。此外,您也可以登录PAI-DSW探索者版,一键体验本文涉及的操作。

步骤一:下载Python SDK

不同版本的Python SDK下载地址如下:

步骤二:安装Python SDK

  1. 下载Python SDK压缩包。
    wget https://sdk-portal-cluster-prod.oss-cn-zhangjiakou.aliyuncs.com/downloads/u-3536038a-3de7-4f2e-9379-0cb309d29355-python-pai-dlc.zip
    其中https://sdk-portal-cluster-prod.oss-cn-zhangjiakou.aliyuncs.com/downloads/u-3536038a-3de7-4f2e-9379-0cb309d29355-python-pai-dlc.zip表示Python3 SDK的下载地址,您可以根据实际需求将其替换为Python2 SDK的下载地址https://sdk-portal-cluster-prod.oss-cn-zhangjiakou.aliyuncs.com/downloads/u-46a0db30-e48a-4e12-8c87-b3a86321f3e2-python2-pai-dlc.zip
  2. 对Python SDK的压缩包进行解压。
    unzip u-3536038a-3de7-4f2e-9379-0cb309d29355-python-pai-dlc.zip
    其中u-3536038a-3de7-4f2e-9379-0cb309d29355-python-pai-dlc.zip表示已经下载的Python SDK压缩包名称,需要根据实际情况替换。
  3. 安装Python SDK。
    pip install ./pai-dlc-20201203
    其中pai-dlc-20201203表示解压后的Python SDK安装包名称,需要根据实际情况替换。

步骤三:创建并提交任务

创建任务时,需要使用当前阿里云账号对应的AccessKey信息。关于如何获取AccessKey,请参见获取AccessKey。创建并提交任务的具体调用代码如下所示。
from alibabacloud_pai_dlc20201203.client import Client
from alibabacloud_tea_openapi.models import Config
from alibabacloud_pai_dlc20201203.models import CreateJobRequest, JobSpec

# 初始化一个Client以访问DLC的API。
region = 'cn-beijing'
client = Client(
    Config(
        access_key_id='<替换成您自己的AccessKeyID>',
        access_key_secret='<替换成您自己的AccessKeySecret>',
        region_id=region,
        endpoint=f'pai-dlc.{region}.aliyuncs.com'
    )
)

# 声明任务的资源配置,关于镜像选择可以参考文档中公共镜像列表,也可以传入自己的镜像地址。
spec = JobSpec(
    type='Worker',
    image='registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04',
    pod_count=1,
    ecs_spec='ecs.c6.large'
)

# 声明任务的执行内容。
req = CreateJobRequest(
    display_name='sample-dlc-job',
    job_type='TFJob',
    job_specs=[spec],
    user_command='echo "Hello World"'
)

# 提交任务。
response = client.create_job(req)
# 获取任务ID。
job_id = response.body.job_id

# 查询任务状态。
job = client.get_job(job_id).body
print('job status:', job.status)

# 查看任务执行的命令。
job.user_command