【问题标题】:Terraform depends_on aws_iam_policyTerraform 依赖于 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?

标签: amazon-web-services terraform terraform-provider-aws aws-policies terraform-aws-modules


【解决方案1】:

“for_each”值取决于在应用之前无法确定的资源属性,因此 Terraform 无法预测将创建多少策略。要解决此问题,请使用 -target 参数首先仅应用 for_each 所依赖的资源。

【讨论】:

  • 这是 terrafom 返回的错误
猜你喜欢
  • 1970-01-01
  • 2020-02-05
  • 2020-03-17
  • 2022-01-01
  • 2021-03-02
  • 2019-11-04
  • 2021-08-13
  • 2021-04-17
  • 2018-09-19
相关资源
最近更新 更多