【发布时间】:2021-08-22 08:50:24
【问题描述】:
我正在尝试将一个输出值从一个 terraform 模块传递到另一个 terraform 模块,但面临以下问题
我的用例是这样的,在第一个模块中我正在创建一个 IAM 角色,在第二个模块中我需要使用上面创建的 IAM 角色(另外,在第二个模块中,如果在第一个模块中没有创建角色,它将创建角色本身在第二个模块中,请将其视为要求)
module "createiamrole"{
source = "./modules/createiamrole"
}
// this module creates new role, if role is not supplied from above module (default value of iam_role is "" set in variables.tf).
module "checkiamrole"{
source = "./modules/checkiamrole"
iam_role_depends_on = module.createiamrole.iam_role_name
iam_role = "${module.createiamrole.iam_role_name}"
}
outputs.tf 用于从第一个模块中提取 iam_role_name
output "iam_role_name" {
description = "name for IAM role"
value = aws_iam_role.createiamrole[0].name
}
我遇到错误的模块 checkiamrole 的资源代码
resource "aws_iam_role" "newrole" {
count = var.iam_role == "" ? 1 : 0
name = "my-new-iamrole"
assume_role_policy = data.aws_iam_policy_document.iampolicy[0].json
tags = var.tags
depends_on = [var.iam_role_depends_on]
}
错误 无效的计数参数
count = var.iam_role == "" ? 1 : 0
“计数”值取决于无法确定的资源属性 直到应用,因此 Terraform 无法预测将创建多少个实例。 要解决此问题,请使用 -target 参数首先仅应用 计数所依赖的资源。
我的查询是如何实现模块依赖以及如何将一个输出值从依赖模块传递到所需模块
【问题讨论】:
标签: amazon-web-services terraform amazon-iam terraform-provider-aws hashicorp