【发布时间】:2021-03-02 13:13:47
【问题描述】:
我正在构建一个 Terraform 配置,但我遇到了一个棘手的 ami 选择。我的 CI 构建 AMI 并根据 CI 上应用程序的当前构建在其上添加 MyVersionTag。我想根据这个标签选择AMI,按版本排序(X.Y.Z格式)取最新的。
这是我使用aws cli 选择我要使用的AMI 的命令行:
aws ec2 describe-images --filters 'Name=tag-key,Values=MyVersionTag' --query 'reverse(sort_by(Images[].{TagValue:Tags|[0].Value,ImageId:ImageId},&TagValue))|[0].ImageId'
我正在寻找一种使用此 AMI ID 配置 EC2 实例的方法。我看到了两种可能的方法(请纠正我):
-
aws_instance纯 AMI ID 作为文本(命令行通过变量的结果) -
aws_ami带过滤器
有什么想法吗?
【问题讨论】:
-
你试过
aws_ami吗? -
是的,有过滤器。但我无法排序并选择最后一个。
-
您始终可以使用
data "external" "my_ami" { ... }在 terraform 中运行 sn-p 并使用其输出。 -
这是最佳实践吗?我认为这是最后要做的事情。
-
好的。所以我有一个解决方案。我会在下面添加它。 ???感谢您的建议。
标签: amazon-web-services amazon-ec2 terraform amazon-ami