我想将一个资源块值引用到另一个资源块。从第一个资源块中,我使用for each来获取应用程序ID,从第二个资源块中,每个块都没有任何ID,但我需要应用程序ID来创建应用程序注册。
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "<=2.39.0"
}
}
required_version = ">= 0.13"
}
data "azuread_client_config" "current" {
}
data "azuread_application" "example" {
for_each = toset(var.application_ids)
application_id = each.value
}
resource "azuread_application" "current" {
display_name = "terraform-sp-${var.display_name}"
owners = tolist([data.azuread_application.example[each.value].object_id, data.azuread_client_config.current.object_id])
}
错误
在main.tf第23行的资源“azuread_application”“current”中,在没有for_each │ │的上下文中引用“each”:│ 23:owners = tolist([data.azuread_application.example[each.key].object_id,data.azuread_client_config.current.object_id])“each”对象只能在“module”或“resource”块中使用,并且只能在设置了“for_each”参数时使用。
1条答案
按热度按时间rta7y2nd1#
你应该可以使用splat表达式
*
和concat
: