View a markdown version of this page

第 3 步:创建启动模板并将其附加到计算环境 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

第 3 步:创建启动模板并将其附加到计算环境

当实例启动时,user-data脚本会自动安装Fluent Bit,从 IMDSv2 检索实例 ID,从 Amazon S3 同步配置,然后启动服务。Fluent Bit有关启动模板的更多信息,请参阅将 Amazon EC2 启动模板与 Amazon Batch。有关 IMDS 配置的更多信息,请参阅实例元数据服务(IMDS)配置

有关示例user-data脚本,请参阅配套 GitHub 存储库。使用该launch-template-userdata-minimal.txt文件作为启动模板。此文件不包括注释以减user-data小大小。该launch-template-userdata.txt文件是注释版本,仅供参考。使用前请替换模板中的以下占位符:

  • <BUCKET_NAME>— 您的亚马逊 S3 存储桶的名称。

  • <FLUENT_BIT_VERSION>— 要安装的Fluent Bit版本。留空以安装最新的可用版本。

先决条件
Amazon Console

创建启动模板:

  1. 打开位于 https://console.aws.amazon.com/ec2/ 的 Amazon EC2 控制台。

  2. 在导航窗格中,选择 Launch Templates

  3. 选择Create launch template(创建启动模板)。

  4. 在 “启动模板名称” 中,输入一个名称,例如batch-host-logs

  5. 展开高级详细信息

  6. 对于 Metadata version(元数据版本),选择 V2 only (token required)(仅限 V2(需要令牌))。

  7. 对于元数据响应跳数限制,请输入2

  8. 滚动到用户数据并粘贴配套 GitHub 存储库中的user-data脚本。将 <BUCKET_NAME>替换为存储桶名称。<FLUENT_BIT_VERSION>替换为所需的Fluent Bit版本,或将最新版本留空。

  9. 选择Create launch template(创建启动模板)。

创建计算环境:

  1. 在处打开 Amazon Batch 控制台https://console.aws.amazon.com/batch/

  2. 在导航窗格中,选择计算环境

  3. 选择创建

  4. 计算环境的配置中,选择 Amazon Elastic Compute Cloud (Amazon EC2)

  5. 对于编排类型,请选择托管

  6. 对于 “名称”,输入一个名称,例如my-host-logs-ce

  7. 对于实例角色,选择您在步骤 2 中更新或创建的实例角色,例如ecsInstanceRole

  8. 选择下一步

  9. 实例配置下,展开启动模板并选择您创建的模板。

  10. 填写其余字段,然后选择创建计算环境

Amazon CLI

创建启动模板。将user-data脚本从配套 GitHub 存储库保存到文件中,然后使用 base64 对其进行编码:

aws ec2 create-launch-template \ --launch-template-name batch-host-logs \ --launch-template-data '{ "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 2 }, "UserData": "BASE64_ENCODED_USER_DATA" }'

使用启动模板创建计算环境:

aws batch create-compute-environment \ --compute-environment-name my-host-logs-ce \ --type MANAGED \ --compute-resources '{ "type": "EC2", "minvCpus": 0, "maxvCpus": 256, "instanceTypes": ["optimal"], "subnets": ["subnet-12345678"], "securityGroupIds": ["sg-12345678"], "instanceRole": "arn:aws:iam::111122223333:instance-profile/ecsInstanceRole", "launchTemplate": { "launchTemplateName": "batch-host-logs", "version": "$Latest" } }'
注意

元数据响应跳数限制在启动模板2中设置为,因为在作业容器中运行的应用程序需要额外的网络跳数才能到达 IMDSv2 端点。如果没有此设置,来自容器的 IMDSv2 请求将失败。