Есть ли способ визуализировать вывод ресурса данных перед запуском terraform apply?

Есть ли способ визуализировать вывод ресурса данных перед запуском terraform apply?

Я хотел бы иметь возможность увидеть JSON ресурса данных (например, политический документ) на плане. В настоящее время эти типы ресурсов "отрисовываются" только во время применения.

Я хочу узнать, есть ли способ увидеть это перед запуском terraform apply.

Вот мой код:

data "aws_iam_policy_document" "my_policy" {
  statement {
    sid = "S3"
    effect = "Allow"
    actions = ["s3:*"]
    resources = [
      aws_s3_bucket.some-bucket.arn,
      "arn:aws:s3:::another-bucket/*",
      "arn:aws:s3:::another-bucket/"
    ]
  }
  statement {
    sid = "CloudWatch"
    effect = "Allow"
    actions = ["logs:*"]
    resources = [
      aws_cloudwatch_log_group.some_lambda.arn,
      "arn:aws:logs:us-east-1:123456789123:log-group:/some/log/group:*",
      "arn:aws:logs:us-east-1:123456789123:log-group:/some/log/group"
    ]
  }
}

решение1

Terraform будет считывать данные из ресурса данных на этапе планирования только в том случае, если на этапе планирования известна вся конфигурация ресурса данных.

В вашем случае у вас есть ссылки на оба aws_s3_bucket.some-bucket.arnи aws_cloudwatch_log_group.some_lambda.arn, и я подозреваю, что ни одно из этих значений не известно во время планирования, поскольку удаленный API определяет ARN для объекта в ходе его создания.

Поэтому единственный способ увидеть эту политику во время планирования — это чтобы эти два объекта уже были созданы и их ARN были известны из предыдущего запуска.

Одним из способов достижения этого было бы изначально применить только часть конфигурации, чтобы создать эти объекты:

terraform apply -target=aws_s3_bucket.some-bucket -target=aws_cloudwatch_log_group.some_lambda

Terraform должен предложить создать эти два объекта и все остальное, от чего они зависят, но пока не будет читать ресурс данных или все остальное, что от него зависит. Если вы примете этот план и разрешите Terraform создать эти объекты, то вы сможете впоследствии работать terraform applyкак обычно, и Terraform должен будет тогда иметь возможность читать этот ресурс данных на втором этапе планирования и, таким образом, показать вам окончательное значение этой политики с двумя уже вставленными ARN.

Связанный контент