如何使用私有 AMI 而不是公共 AMI 编写 cloudformation

问题描述

我想使用 yaml 文件编写一个 cloudformation。我知道公共 AMI 的格式。但是我对如何在 yaml 文件添加私有 AMI 感到迷惑。我在网上搜索解决方案,有人推荐使用 AWS 系统管理器服务。我想问一下有没有办法避免使用系统管理器服务来实现我的yaml文件的设置。这是我的 yaml 文件供您参考。

AmiId:
  Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
  AllowedValues: ['%list of my public AMI%
                 '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2','/aws/service/ami-windows-latest/Windows_Server-2017-English','ami-id']
                  'ami-id' this is where to insert my private Ami .
                  Default: 'ami-id'

解决方法

不能像现在一样混合AllowedValues。您可以使用 ami-ids 或参数存储值。如果您不想使用参数存储值,那么您只需使用 ami-ids:

AmiId:
  Type: AWS::EC2::Image::Id
  AllowedValues: [ami-id1,ami-id2,ami-id3]
  Default: ami-id1