View a markdown version of this page

步骤 3:创建启动模板并将其附加到计算环境 - AWS Batch

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

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

当实例启动时,user-data脚本会自动安装Fluent Bit,从 imdsv2 检索实例 ID,从 Amazon S3 同步配置,然后启动服务。Fluent Bit有关启动模板的更多信息,请参阅使用 Amazon EC2 启动模板和 AWS 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版本。留空以安装最新的可用版本。

先决条件
AWS 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. 打开 AWS 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. 填写其余字段并选择创建计算环境

AWS 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 请求就会失败。