Интерполировать свойство объекта из списка ответа - PullRequest
0 голосов
/ 16 мая 2019

Я создаю следующие веб-приложения с помощью terraform:

resource "azurerm_app_service" "api-webapp" {
  count               = "${var.api_name_count}"
  name                = "${var.projectname}-${element(var.api_names, count.index)}-api-${var.stagename}"
  depends_on          = ["azurerm_app_service_plan.appservice-plan"]
  resource_group_name = "${azurerm_resource_group.stage-resource-group.name}"
  app_service_plan_id = "${azurerm_app_service_plan.appservice-plan.id}"
  location            = "${var.location}"

  site_config {
  }

  app_settings {
  }
}

Это приведет к 3 веб-приложениям.Сейчас я создаю хранилище ключей, для которого я хочу предоставить веб-приложениям доступ к:

resource "azurerm_key_vault_access_policy" "keyvault_policies_apis" {
  key_vault_id = "${azurerm_key_vault.keyvault.id}"

  count = "${var.api_name_count}"
  tenant_id                 = "${var.tenant_id}"
  object_id                 = "${azurerm_app_service.api-webapp.*.identity.0.principal_id}"

  key_permissions = [
    "get"
  ]

  secret_permissions = [
    "get",
    "list"
  ]

  certificate_permissions = [
    "get",
    "getissuers",
    "list",
    "listissuers"
  ]
}

Заявление говорит мне, что "${azurerm_app_service.api-webapp.*.identity.0.principal_id}" невозможно:

Ресурс «azurerm_app_service.api-webapp» не имеет атрибута «identity.0.principal_id» для переменной «azurerm_app_service.api-webapp. *. Identity.0.principal_id»

как получить доступprincipal_id веб-приложений?

Спасибо

1 Ответ

0 голосов
/ 16 мая 2019

Вы передаете "${azurerm_app_service.api-webapp.*.identity.0.principal_id}" в object_id как список всех azurerm_app_service ресурсов.

Вы должны использовать element , чтобы получить из него один элемент с текущим счетчиком в качестве индекса:

object_id = "${element(azurerm_app_service.api-webapp.*.identity.0.principal_id, count.index)}"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...