亚马逊机器映像 ID 的本机参数支持 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

亚马逊机器映像 ID 的本机参数支持

创建 String 参数时,您可以将数据类型指定为 aws:ec2:image,以确保所输入的参数值为有效的 Amazon Machine Image (AMI) ID 格式。

通过支持 AMI ID 格式,您可以避免每次要在流程中使用的 AMI 发生更改时都使用新 ID 来更新所有脚本和模板。您可以创建数据类型为 aws:ec2:image 的参数,并输入 AMI ID 作为其值。这是您要从中创建新实例的 AMI。然后在模板、命令和脚本中引用此参数。

例如,您可以在运行 Amazon Elastic Compute Cloud (Amazon EC2) run-instances 命令时指定包含首选 AMI ID 的参数。

注意

运行此命令的用户必须具有包含 ssm:GetParameters API 操作的 Amazon Identity and Access Management (IAM) 权限,才能验证参数值。否则,参数创建过程将失败。

Linux & macOS
aws ec2 run-instances \ --image-id resolve:ssm:/golden-ami \ --count 1 \ --instance-type t2.micro \ --key-name my-key-pair \ --security-groups my-security-group
Windows
aws ec2 run-instances ^ --image-id resolve:ssm:/golden-ami ^ --count 1 ^ --instance-type t2.micro ^ --key-name my-key-pair ^ --security-groups my-security-group

您也可以在使用 Amazon EC2 控制台创建实例时选择首选 AMI。有关更多信息,请参阅《Amazon EC2 用户指南》中的使用 Systems Manager 参数查找 AMI

当在实例创建工作流中使用其他 AMI 时,您只需使用新的 AMI 值更新参数即可,然后 Parameter Store 会再次验证您所输入 ID 的格式是否正确。

授予创建 aws:ec2:image 数据类型参数的权限

使用 Amazon Identity and Access Management (IAM) 策略,您可以提供或限制用户对 Parameter Store API 操作和内容的访问权限。

要创建 aws:ec2:image 数据类型参数,用户必须同时拥有 ssm:PutParameterec2:DescribeImages 权限。

以下示例策略授予用户为 aws:ec2:image 调用 PutParameter API 操作的权限。因此,用户可以向系统添加数据类型为 aws:ec2:image 的参数。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:PutParameter", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:DescribeImages", "Resource": "*" } ] }

AMI 格式验证的工作原理

在将 aws:ec2:image 指定为参数的数据类型时,Systems Manager 不会立即创建参数。而是执行异步验证操作,以确保参数值满足 AMI ID 的格式设置要求,并且指定的 AMI 在您的 Amazon Web Services 账户中可用。

在验证操作完成之前,可能会生成参数版本号。即使生成了参数版本号,操作也可能无法完成。

要监控参数是否已成功创建,我们建议使用 Amazon EventBridge 向您发送有关 createupdate 参数操作的通知。这些通知会报告参数操作是否成功。如果操作失败,通知会包含一条错误消息,指出失败的原因。

{ "version": "0", "id": "eed4a719-0fa4-6a49-80d8-8ac65EXAMPLE", "detail-type": "Parameter Store Change", "source": "aws.ssm", "account": "111122223333", "time": "2020-05-26T22:04:42Z", "region": "us-east-2", "resources": [ "arn:aws:ssm:us-east-2:111122223333:parameter/golden-ami" ], "detail": { "exception": "Unable to Describe Resource", "dataType": "aws:ec2:image", "name": "golden-ami", "type": "String", "operation": "Create" } }

有关在 Eventbridge 中订阅 Parameter Store 事件的信息,请参阅 基于 Parameter Store 事件设置通知或触发操作