我有一个模板,我正在根据模板中映射的区域和关联的映像 ID 创建一个 Ubuntu EC2 实例。无论如何,是否有根据区域选择最新的 Ubuntu 映像 ID。这将在模板执行期间发生。获取相同的任何示例模板会很有帮助。
有几种方法可以实现此目的:
A( 您可以使用模板的映射部分为每个区域指定一个 AMI。然后,您将使用 Fn::FindInMap 根据伪参数 AWS::Region 的评估检索 AMI 的值。
看:
- 映射 - AWS CloudFormation
- Fn::FindInMap - AWS CloudFormation
- 伪参数参考 - AWS CloudFormation
B( 您可以在堆栈创建期间使用 lambda 支持的自定义资源检索最新的 ubuntu AMI。有一个相同的入门指南,您可以将其用作起点。
请参阅:演练:查找 Amazon 系统映像 ID - AWS CloudFormation
C( 如果您可以迁移到基于 RHEL 的 Amazon Linux AMI,则可以引用该区域的最新 AMI ID 的公共系统管理器参数。我在 github 中有一个示例模板,您可以用作参考。
参见:CloudFormationExamples/highlyavailable-asg-lamp-server-alb at master · smith-b/CloudFormationExample