variáveis.tf
variable "custom_ids" {
type = set(string)
default = ["b4d2d", "c928f140e8"]
}
main.tf
resource "azuread_application" "my-test-app" {
for_each = var.custom_ids
display_name = "testing-application"
owners = [data.azuread_client_config.current.object_id , each.value ]
}
resource "azuread_service_principal" "testing-sp" {
for_each = azuread_application.my-test-app
application_id = azuread_application.my-test-app.application_id
app_role_assignment_required = false
owners = [data.azuread_client_config.current.object_id , each.value]
}
E a mensagem de erro é:
Erro: chave de instância de recurso ausente Como azuread_application.my-test-app tem "for_each" definido, seus atributos devem ser acessados em instâncias específicas. │ │ Por exemplo, para correlacionar com índices de um recurso de referência, use: │ azuread_application.my-test-app[each.key]
Referenciou isto: https://developer.hashicorp.com/terraform/language/meta-arguments/for_each#chaining-for_each-between-resources
Qual é o problema aqui?
Novo erro:
│ Erro: atributo não suportado │ │ na linha my-service-principals.tf 24, no recurso "azuread_service_principal" "testing-sp": │ 24: application_id = each.value.application_id │ ├───────── ─────── │ │ each.value é um conjunto de strings │ │ Este valor não possui nenhum atributo.
Como o encadeamento com
for_each
significa que você usará pares de valores-chave, você pode corrigir isso fazendo o seguinte:EDIT: como o objetivo da pergunta é diferente do post original, veja como isso deve ser configurado com base nos comentários: