过滤要在cloudformation中使用的自定义实例ID(AMI)

时间:2019-06-12 02:52:28

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我已经使用打包程序自定义了图片,并且可以从该图片ID启动实例。如果按原样使用该Image Id,则可以部署一个小的堆栈。那里没有问题。但是我不断根据反馈来旋转新图像,因此新图像具有新的图像ID。有没有一种方法可以过滤新的映像ID,并使用在Cloudformation堆栈中使用Packer构建的最新映像?我看了其他帖子,但我的问题有点不同,因为我正在构建使用“我拥有”而不是从市场过滤时在AMI中显示的图像。任何建议/帮助将不胜感激。

WIN-APP-01
  Type: AWS::EC2::Instance
  Properties: 
    AvailabilityZone: !Ref WinAvailabilityZone
    EbsOptimized: True
    IamInstanceProfile: !Ref WinInstanceProfile
    ImageId: ???
    InstanceType: T2.Micro
    UserData: 
      'Fn::Base64': !Sub |
        #!/bin/bash
        yum install -y httpd

1 个答案:

答案 0 :(得分:0)

您可以编写一个由AWS Lambda函数提供支持的CloudFormation Custom Resource

  • DescribeImages()呼叫owner=self
  • 过滤到感兴趣的图像(例如,通过描述中的内容)
  • 按日期排序
  • 返回最新的AMI

这类似于:Walkthrough: Looking Up Amazon Machine Image IDs - AWS CloudFormation

该演练旨在帮助人们使用最新的Windows或Amazon Linux AMI。现在using the Parameter Store已取代此方法来检索AMI。但是,此方法仅使用AWS提供的预编码AMI。