Экспортированный атрибут не найден в terraform - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь создать роль, которая когда-то предполагала, что она должна предоставлять доступ к определенной корзине определенным пользователям за пределами учетной записи AWS

resource "aws_iam_role" "s3_role_access" {
  name               = "${var.s3_role_name}"
  assume_role_policy = "${data.template_file.iam_policy_s3_assume.rendered}"
  description        =  "Role providing access to ${var.s3_role_bucket_name}/${var.s3_role_bucket_path}"
}

resource "aws_iam_role_policy" "s3_role_access" {
  name   = "${var.s3_role_name}"
  role   = "${aws_iam_role.s3_role_access.id}"
  policy = "${data.template_file.iam_policy_s3_permissions.rendered}"
}

Я ожидаю, что план будет успешным, но я получаю следующее:

Ошибка: план выполнения ошибки: произошла 1 ошибка: * module.xxx.aws_iam_role_policy.s3_role_access: произошла 1 ошибка: * module.xxx.aws_iam_role_policy.s3_role_access: ресурс 'aws_iam_role.s3_role_access' не найден для переменной 'Aws_iam_role.s3_role_access.id'

Атрибут id должен быть экспортирован, как описано в https://www.terraform.io/docs/providers/aws/r/iam_role.html#id

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Если при создании aws_iam_role.s3_role_access возникает ошибка, иногда terraform не отображает ошибку должным образом и отображает вышеуказанную ошибку при создании aws_iam_role_policy.s3_role_access, как описано выше, поскольку в этом случае нет ресурса aws_iam_role.

в этом случае, вы можете проверить aws_iam_role.s3_role_access после комментирования ресурса aws_iam_role_policy для тестирования.

0 голосов
/ 03 июля 2019

Похоже, что JSON, переданный в политике, не отображался должным образом.

...