本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 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文件是注释版本供参考。使用前请替换模板中的以下占位符:
先决条件
- AWS Console
-
创建启动模板:
打开位于 https://console.aws.amazon.com/ec2/ 的 Amazon EC2 控制台。
在导航窗格中,选择 Launch Templates。
选择Create launch template(创建启动模板)。
在启动模板名称中,输入一个名称,例如batch-host-logs。
展开高级详细信息。
对于 Metadata version(元数据版本),选择 V2 only (token required)(仅限 V2(需要令牌))。
对于元数据响应跳跃限制,请输入2。
滚动到 “用户数据”,然后从配套 GitHub 存储库中粘贴user-data脚本。将 <BUCKET_NAME>替换为存储桶名称。<FLUENT_BIT_VERSION>替换为所需的Fluent Bit版本,或者将最新版本留空。
选择Create launch template(创建启动模板)。
创建计算环境:
打开 AWS Batch 控制台,网址为https://console.aws.amazon.com/batch/。
在导航窗格中,选择计算环境。
选择创建。
在计算环境的配置中,选择 Amazon Elastic Compute Cloud (Amazon EC2)。
对于编排类型,请选择托管。
在 “名称” 中,输入一个名称,例如my-host-logs-ce。
对于实例角色,请选择您在步骤 2 中更新或创建的实例角色,例如ecsInstanceRole。
选择下一步。
在实例配置下,展开启动模板并选择您创建的模板。
填写其余字段并选择创建计算环境。
- 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 请求就会失败。