Shi*_*z.M 8 amazon-web-services terraform
aws_ecr_repositories我在 Terraform 代码中定义了一堆:
resource "aws_ecr_repository" "nginx_images" {
name = "nginx-test"
}
resource "aws_ecr_repository" "oracle_images" {
name = "oracle-test"
}
Run Code Online (Sandbox Code Playgroud)
我希望能够有一个输出,可以将所有aws_ecr_repository资源列出到一个输出中。这是我尝试过的:
output "ecr_repository_urls" {
value = "[${aws_ecr_repository.*.repository_url}]"
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为 Terraform 似乎不允许在资源名称上使用通配符。是否可以有这样的输出?我当前的解决方案是仅列出定义的每个资源的输出。
Terraform 的 splat 语法用于使用以下方式跟踪资源创建的每个事物count元参数跟踪资源创建的每个事物。
如果您希望能够获取所有存储库 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}]"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14962 次 |
| 最近记录: |