我有一堆aws_ecr_repositories
在我的 Terraform 代码中定义:
resource "aws_ecr_repository" "nginx_images" {
name = "nginx-test"
}
resource "aws_ecr_repository" "oracle_images" {
name = "oracle-test"
}
我希望能够有一个可以列出所有的输出aws_ecr_repository
资源转化为一项产出。这是我尝试过的:
output "ecr_repository_urls" {
value = "[${aws_ecr_repository.*.repository_url}]"
}
这不起作用,因为 Terraform 似乎不允许在资源名称上使用通配符。是否可以有这样的输出?我当前的解决方案是仅列出定义的每个资源的输出。
Terraform 的 splat 语法 https://www.terraform.io/docs/configuration/interpolation.html#attributes-of-other-resources用于使用以下方式跟踪资源创建的每个事物count元参数 https://www.terraform.io/docs/configuration/resources.html#meta-parameters.
如果您希望能够获取所有存储库 URL,您可以使用一个aws_ecr_repository
资源并使用count
元参数如下:
variable "images" {
default = [
"nginx-test",
"oracle-test",
]
}
resource "aws_ecr_repository" "images" {
count = "${length(var.images)}"
name = "${var.images[count.index]}"
}
output "ecr_repository_urls" {
value = "[${aws_ecr_repository.images.*.repository_url}]"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)