作业定义示例 - AWS Batch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

作业定义示例

以下示例作业定义说明了如何使用常见模式,如环境变量、参数替代和卷挂载。

使用环境变量

以下示例作业定义使用环境变量来指定文件类型和 Amazon S3 URL。这个特定示例来自 创建简单的“获取和运行” AWS Batch 工作 计算博客帖子。TheThethe fetch_and_run.sh 博客帖子中描述的脚本使用这些环境变量下载 myjob.sh S3中的脚本并声明其文件类型。

尽管在本示例中,命令和环境变量被硬编码到作业定义中,但您可以提交使用此定义的作业,并指定命令和环境变量覆盖以使作业定义更加通用。

{ "jobDefinitionName": "fetch_and_run", "type": "container", "containerProperties": { "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/fetch_and_run", "vcpus": 2, "memory": 2000, "command": [ "myjob.sh", "60" ], "jobRoleArn": "arn:aws-cn:iam::123456789012:role/AWSBatchS3ReadOnly", "environment": [ { "name": "BATCH_FILE_S3_URL", "value": "s3://my-batch-scripts/myjob.sh" }, { "name": "BATCH_FILE_TYPE", "value": "script" } ], "user": "nobody" } }

使用参数替代

以下示例作业定义说明了如何允许参数替代和设置默认值。

TheThethe Ref:: 声明 command 部分用于设置参数替代的占位符。当您在此工作定义中提交一个工作时,您指定了参数覆盖以填写这些值,例如 inputfileoutputfile...TheThethe parameters 以下部分设置默认值 codec,但您可以根据需要覆盖该参数。

有关更多信息,请参阅 Parameters.

{ "jobDefinitionName": "ffmpeg_parameters", "type": "container", "parameters": {"codec": "mp4"}, "containerProperties": { "image": "my_repo/ffmpeg", "vcpus": 2, "memory": 2000, "command": [ "ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ], "jobRoleArn": "arn:aws-cn:iam::123456789012:role/ECSTask-S3FullAccess", "user": "nobody" } }

测试 GPU 功能

在以下示例中,作业定义测试使用 GPU 工作负载 AMI 中所述的 GPU 工作负载 AMI 是否正确配置。此示例作业定义运行TensorFlowDeepMNIST分类器 示例 来自Github。

{ "containerProperties": { "image": "tensorflow/tensorflow:1.8.0-devel-gpu", "vcpus": 8, "command": [ "sh", "-c", "cd /tensorflow/tensorflow/examples/tutorials/mnist; python mnist_deep.py" ], "memory": 32000 }, "type": "container", "jobDefinitionName": "tensorflow_mnist_deep" }

您可以使用名为JSON文本的文件创建文件 tensorflow_mnist_deep.json 然后注册 AWS Batch 使用以下命令的作业定义:

aws batch register-job-definition --cli-input-json file://tensorflow_mnist_deep.json

多节点并行作业

以下作业定义示例描述了多节点并行作业。有关详细信息,请参阅 在多节点平行工作中构建紧密耦合的MolecularDynamics工作流 AWS BatchAWS计算 博客。

{ "jobDefinitionName": "gromacs-jobdef", "jobDefinitionArn": "arn:aws-cn:batch:us-east-2:123456789012:job-definition/gromacs-jobdef:1", "revision": 6, "status": "ACTIVE", "type": "multinode", "parameters": {}, "nodeProperties": { "numNodes": 2, "mainNode": 0, "nodeRangeProperties": [ { "targetNodes": "0:1", "container": { "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/gromacs_mpi:latest", "vcpus": 8, "memory": 24000, "command": [], "jobRoleArn": "arn:aws-cn:iam::123456789012:role/ecsTaskExecutionRole", "ulimits": [], "instanceType": "p3.2xlarge" } } ] } }