作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个创建多个输出的模块。每个输出的值是一个帐号。
我想在资源上使用 count 参数来使用上述模块中的值进行迭代。但是,我了解到您不能对变量默认或分层插值进行插值。
在 terraform 中处理此问题的正确方法是什么?
variable "service_node_accounts" {
description = "List of Account IDs"
type = "list"
default = ["${module.accounts.qa}", "${module.accounts.staging}", "${module.accounts.prod}"]
}
data "aws_ami" "service_node_1_0" {
filter {
name = "name"
values = ["service-node-1.0"]
}
owners = ["self"] # Canonical
}
resource "aws_ami_launch_permission" "service_node_1_0" {
count = "${length(var.service_node_accounts)}"
image_id = "${aws_ami.service_node_1_0.id}"
account_id = "${var.service_node_accounts[count.index]}"
}
terraform plan...
default may not contain interpolations
最佳答案
考虑使用 locals允许插值的地方。
locals {
# Untested but should work in theory
service_node_accounts = ["${module.accounts.qa}", "${module.accounts.staging}", "${module.accounts.prod}"]
}
关于Terraform 不接受变量默认插值或处理分层插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55737804/
我是一名优秀的程序员,十分优秀!