启动模板支持 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

启动模板支持

Amazon BatchAmazon EC2 Amazon EC2。使用启动模板,您可以修改Amazon Batch计算资源的默认配置,而无需创建自定义 AMI。

注意

AmazonFargate 资源不支持启动模板。

您必须先创建启动模板,然后才能将其与计算环境关联。Amazon EC2。或者,您可以使用Amazon CLI或 SAmazon DK。例如,以下 JSON 文件代表一个启动模板,该模板调整了默认Amazon Batch计算资源 AMI 的 Docker 数据量的大小,并将其设置为加密。

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvdcz", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

您可以通过将 JSON 保存到名为的文件中lt-data.json并运行以下Amazon CLI命令来创建之前的启动模板。

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Linux Amazon EC2

如果使用启动模板来创建计算环境,则可以将以下现有计算环境参数移至启动模板:

注意

Amazon EC2(Amazon EC2)。然后,计算环境参数优先。Amazon EC2 标签在启动模板和计算环境配置之间合并。如果标签的密钥发生冲突,则计算环境配置中的值优先。

  • Amazon EC2

  • Amazon EC2 AMI

  • 安全组 ID

  • Amazon EC2

以下启动模板参数被忽略Amazon Batch:

  • 实例类型(在创建计算环境时指定所需的实例类型)

  • 实例角色(在创建计算环境时指定所需的实例角色)

  • 网络接口子网(在创建计算环境时指定所需的子网)

  • 实例市场选项(Amazon Batch 必须控制 Spot 实例配置)

  • 禁用 API 终止(Amazon Batch 必须控制实例生命周期)

Amazon Batch仅在基础架构更新期间使用新的启动模板版本更新启动模板。有关更多信息,请参阅 更新计算环境

启动模板中的 Amazon EC2 用户数据

C loud-init Amazon EC2。您的用户数据可以执行常见的配置方案,包括但不限于以下情形:

Amazon EC2 MIME。Amazon Batch,。您可以将多个用户数据块合并到一个 MIME 分段文件中。,Docker Boothook Hell Amazon ECS。

如果你正在使用Amazon CloudFormation,则该AWS::CloudFormation::Init类型可以与 cfn-init 帮助脚本一起使用,以执行常见的配置场景。

MIME 分段文件包含以下组成部分:

  • 内容类型和段边界声明:Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • MIME 版本声明:MIME-Version: 1.0

  • 一个或多个包含以下组件的用户数据块:

    • 标志着用户数据块开始的开场边界:--==BOUNDARY==。 必须将此边界前的线留空。

    • 区块的内容类型声明:Content-Type: text/cloud-config; charset="us-ascii"。 ,C loud-Init。必须将内容类型声明后面的行留空。

    • ,Shell Shellcloud-init

  • 标志着 MIME 多部分文件结束的闭合边界:--==BOUNDARY==--。 必须将闭合边界前的直线留空。

MIME(MIME)。

注意

如果您将用户数据添加到 Amazon EC2 控制台中的启动模板中,则可以将其粘贴为纯文本。或者,您可以从文件中上传。如果您使用Amazon CLI或Amazon SDK,则必须先对用户数据进行base64编码,然后在调用时将该字符串作为UserData参数值提交 CreateLaunchTemplate,如此 JSON 文件所示。

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }

示例:Amazon EFS

此示例 MIME 多部分文件将计算资源配置为安装amazon-efs-utils软件包并在上安装现有的 Amazon EFS 文件系统/mnt/efs

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-efs-utils runcmd: - file_system_id_01=fs-abcdef123 - efs_directory=/mnt/efs - mkdir -p ${efs_directory} - echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab - mount -a -t efs defaults --==MYBOUNDARY==--

示例:Amazon ECS

此示例 MIME 分段文件将覆盖计算资源的默认 Docker 映像清除设置。

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo ECS_IMAGE_CLEANUP_INTERVAL=60m >> /etc/ecs/ecs.config echo ECS_IMAGE_MINIMUM_CLEANUP_AGE=60m >> /etc/ecs/ecs.config --==MYBOUNDARY==--

示例:Amazon FSx for Lustre

此示例 MIME 多部分文件将计算资源配置为从 Extras Library 安装lustre2.10软件包,并将现有 FSx for Lustre 文件系统挂载在上/scratch,安装名称为fsx。Amazon Linux 2。有关其他 Linux 发行版的安装说明,请参阅 Amazon FSx for Lustre 用户指南中的安装 Lustre 客户端。,Amazon FSx for Lust re Amazon FSx for Lustre

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" runcmd: - file_system_id_01=fs-0abcdef1234567890 - region=us-east-2 - fsx_directory=/scratch - amazon-linux-extras install -y lustre2.10 - mkdir -p ${fsx_directory} - mount -t lustre ${file_system_id_01}.fsx.${region}.amazonaws.com@tcp:fsx ${fsx_directory} --==MYBOUNDARY==--

在容器属性的 volumesmountPoints 成员中,装载点必须映射到容器中。

{ "volumes": [ { "host": { "sourcePath": "/scratch" }, "name": "Scratch" } ], "mountPoints": [ { "containerPath": "/scratch", "sourceVolume": "Scratch" } ], }