【发布时间】:2021-10-07 17:24:54
【问题描述】:
是否可以从另一个资源、数据、本地等调用具有 for_each 函数的 terraform 模块?
terraform required_version = ">= 0.15.4"
def.tfvar
name = "app-stage"
project = "stage-xyz"
main.tf
source = "../../src/codedeploy"
name = var.name
project = var.project
s3_bucket_arn = var.s3_bucket_arn
environment = var.environment
app_name = module.codedeploy.app_name
输出.tf
output "app_name" {
value = aws_codedeploy_app.app.name
}
这个工作,但如果我想创建几个 codedeploy 那么我必须创建几个 tfvar 文件并应用它们。而不是这样做,我想创建一个 tfvar 文件并在 main.tf 文件中使用 for_each 函数。
abce.tfvar
codeDeploy_records = {
"app-stage= {
project = "stage-xyz",
},
"app-qa= {
project = "qa-xyz",
}
}
main.tf
module "codedeploy" {
for_each = var.codeDeploy_records
source = "../../src/codedeploy"
name = each.key
project = each.value.project
app_name = module.codedeploy.app_name
那个人给出了以下错误。 此对象没有名为“app_name”的属性。
我们可以从下面调用一个模块吗?
local test {
for_each = var.codeDeploy_records
source = "../../src/codedeploy"
name = each.key
project = each.value.projec
app_name = module.codedeploy.app_name
}
module "codedeploy" {
【问题讨论】:
-
我仔细检查了我之前的答案,是的,你可以这样做。对不起,我错了,你是对的。不过,完整的工作示例会很有用。
标签: amazon-web-services terraform aws-code-deploy