【发布时间】:2020-08-25 19:34:26
【问题描述】:
我正在尝试创建一个 aws_ami 数据源,该数据源根据几个标签获取最新的 AMI。
关键是我想使用标签及其值的映射来完成,而不是通过为数据源中的每个特定标签定义过滤器。
例子:
module-vars.tf
variable "filter-tags" {
type = "map"
default = {
"java_vendor" = "oracle"
}
}
module.tf
data "aws_ami" "aws-ami" {
most_recent = true
owners = ["self"]
// Filter code here
// e.g. FICTIONAL CODE, DON'T USE
filter {
name = "tags:${var.filter-tags}"
}
}
所以很明显,这个 filter-tags 变量应该能够改变,并且过滤后的 AMI 应该具有匹配的所有标签。
有什么想法吗?
【问题讨论】:
-
你试过设置参数
tags = var.filter-tags吗? -
这只是给了我最新的 AMI,我认为它没有考虑标签
-
找到了一种使用动态块的方法
-
不是要获取最新的 ami 你有
most_recent = true设置吗?如果不考虑标签,tags参数的用途是什么? -
tags 参数甚至不是 aws_ami 数据源文档的一部分。我猜它可能是从某个地方继承的,这就是 terraform 在那里接受它的原因,但它没有功能,或者该功能与数据源的过滤无关
标签: tags terraform-provider-aws