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>
答案 0 :(得分:1)
AWS提供了您在问题中显示的特殊SSM方法,以使用户可以轻松访问特定AMI的最新版本。该信息将发布到参数存储中。
另一种方法是在定义EC2实例的模板部分中对所需AMI的值进行硬编码。您经常会看到示例模板,这些模板使用Mapping对每个区域具有不同的AMI值。
除了提供实际的AMI ID之外,无法请求特定的AMI。
这是为什么?这是因为添加了SSM方法是作为引用“最新”或“推荐” AMI的便捷方式。一些后台进程将适当的AMI ID发布到SSM。它不打算用作对所有 AMI进行分类的方法。
如果您确实需要按名称搜索,则可以使用AWS Lambda创建CloudFormation自定义资源,该名称按名称查询可用的AMI,然后返回适当的AMI ID。