Terraform 依赖于 aws_iam_policy
Posted
技术标签:
【中文标题】Terraform 依赖于 aws_iam_policy【英文标题】:Terraform depends_on aws_iam_policy 【发布时间】:2022-01-12 16:15:37 【问题描述】:我有一个从 json 文件创建一些 aws 策略的模块。 Terraform 计划在尝试将新资源(策略)附加到它正在创建的角色时返回错误。
The "for_each" value depends on resource attributes that cannot be determined until apply
没关系,所以我尝试在创建新资源(策略)的模块上使用depends_on,但我仍然有同样的错误。
这里是我的模块:
module "admin"
source = "./my_repo/admin"
depends_on = [
aws_iam_policy.common,
aws_iam_policy.ses_sending,
aws_iam_policy.athena_readonly,
]
policies = [
aws_iam_policy.common.arn,
aws_iam_policy.ses_sending.arn,
aws_iam_policy.athena_readonly.arn,
]
在模块 ./my_repo/admin 我有一个包含此代码的文件(这里我有错误)
resource "aws_iam_role_policy_attachment" "me"
for_each = toset(var.policies)
role = aws_iam_role.me.name
policy_arn = each.value
怎么了?
谢谢
【问题讨论】:
var.policies 是资源列表(iam 策略)。如何获取每项政策的 arn? 【参考方案1】:“for_each”值取决于在应用之前无法确定的资源属性,因此 Terraform 无法预测将创建多少策略。要解决此问题,请使用 -target 参数首先仅应用 for_each 所依赖的资源。
【讨论】:
这是 terrafom 返回的错误以上是关于Terraform 依赖于 aws_iam_policy的主要内容,如果未能解决你的问题,请参考以下文章
Terraform:如果父项部分完成并出现错误,是否会创建依赖资源?