Если вы хотите однозначное соответствие между azurerm_role_assignment.ard
экземплярами и azuread_user.init
экземплярами, вы можете использовать azuread_user.init
непосредственно в качестве for_each
выражения повторения для azurerm_role_assignment.ard
:
resource "azurerm_role_assignment" "ard" {
for_each = azuread_user.init
scope = data.azurerm_subscription.init.id
role_definition_name = "Owner"
principal_id = each.value.id
}
Вышеописанное может работать, потому что любой ресурс, для которого установлено значение for_each
, появляется в выражениях языка Terraform в виде карты от ключей экземпляра к объектам, представляющим каждый экземпляр. Это соответствует требованиям к ресурсу for_each
и гарантирует, что each.value
будет объектом, созданным одним экземпляром azuread_user.init
, сопоставленным с ключами карты.
Если у вас была запись в CSV с дисплеемназовите «MABU», тогда вы увидите в плане экземпляры со следующими адресами:
azuread_user.init["MABU"]
azurerm_role_assignment.ard["MABU"]