如何不查询EC2的最新AMI映像ID?

时间:2018-12-27 17:16:23

标签: amazon-web-services amazon-ec2

AWS CloudFormation模板允许使用类似的构造为EC2实例选择AMI映像ID

ECSAMI:
    Description: AMI ID
    Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
    Default: /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2

但是我找不到指向AMI Image特定版本的参数路径。 例如,可以通过以下路径查询ECS的AMI ID,该路径指向特定版本:

/aws/service/ecs/optimized-ami/amazon-linux-2/amzn2-ami-ecs-hvm-2.0.20181112-x86_64-ebs/image_id

如何查询EC2的最新AMI映像ID?或者在哪里可以找到完整的“树”或公开可用参数的路径列表? 我想要这样的东西

/aws/service/<ec2>/<amazon-linux-2>/<image-version>

1 个答案:

答案 0 :(得分:1)

AWS提供了您在问题中显示的特殊SSM方法,以使用户可以轻松访问特定AMI的最新版本。该信息将发布到参数存储中。

另一种方法是在定义EC2实例的模板部分中对所需AMI的值进行硬编码。您经常会看到示例模板,这些模板使用Mapping对每个区域具有不同的AMI值。

除了提供实际的AMI ID之外,无法请求特定的AMI。

这是为什么?这是因为添加了SSM方法是作为引用“最新”或“推荐” AMI的便捷方式。一些后台进程将适当的AMI ID发布到SSM。它不打算用作对所有 AMI进行分类的方法。

如果您确实需要按名称搜索,则可以使用AWS Lambda创建CloudFormation自定义资源,该名称按名称查询可用的AMI,然后返回适当的AMI ID。