amazon-web-services - 如何查询不是 EC2 的最新 AMI 映像 ID?
问题描述
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>
解决方案
您在问题中显示的特殊 SSM 方法由 AWS 提供,以便用户轻松访问特定 AMI 的最新版本。信息将发布到 Parameter Store。
另一种方法是在定义 EC2 实例的模板部分中硬编码所需 AMI 的值。您经常会看到使用映射为每个区域提供不同 AMI 值的示例模板。
除了提供实际的 AMI ID 之外,无法请求特定的 AMI。
为什么是这样?这是因为添加了 SSM 方法作为引用“最新”或“推荐”AMI 的便捷方式。一些后台进程将适当的 AMI ID 发布到 SSM。它并非旨在作为对所有AMI 进行编目的方法。
如果您确实需要按名称搜索,您可以使用 AWS Lambda 创建 CloudFormation 自定义资源,按名称查询可用的 AMI,然后返回适当的 AMI ID。
推荐阅读
- ruby-on-rails - JSON 到 CSV,跳过某些列并重新排序其他列 - Ruby
- c - 如何使用 C 中的 fread 将单独文件中的结构读取到单个数组中
- python - 已安装 Html 测试运行程序,但显示错误“ModuleNotFoundError: No module named 'HtmlTestRunner'”
- c++ - 引用 std::atomic 的已删除函数错误
- c - 允许输出截断的奇怪重定向行为
- python - 如何将 Python3 范围与列表进行比较
- php - Web 服务器事务与 DB 触发器 - 哪个是首选?
- reactjs - 如何使用下拉菜单在 React Material UI 表单中显示动态行
- javascript - Antd Modal,点击Mask什么都不做
- python - TypeError:'datetime.datetime'对象不可调用,如何使用函数显示时间