Terraform 每个人的地形?
我一直在开发这个terraform azure vm模板,目标是让每个模块在本质上更具动态性,但我不知道如何在另一个资源块中引用一个资源id 如果您在第一个资源块中看到,我正在使用“for_each”创建NIC,并且我希望引用第二个资源中的“network_interface_id”,该资源将network interface与出站负载平衡器相关联。不知道如何做,但开始使用变量构造字符串。任何人都可以帮助我如何参考“网络接口id”或任何其他资源id吗?如果需要,非常感谢任何帮助Terraform 每个人的地形?,terraform,terraform-provider-azure,azure-rm,azure-vm-templates,Terraform,Terraform Provider Azure,Azure Rm,Azure Vm Templates,我一直在开发这个terraform azure vm模板,目标是让每个模块在本质上更具动态性,但我不知道如何在另一个资源块中引用一个资源id 如果您在第一个资源块中看到,我正在使用“for_each”创建NIC,并且我希望引用第二个资源中的“network_interface_id”,该资源将network interface与出站负载平衡器相关联。不知道如何做,但开始使用变量构造字符串。任何人都可以帮助我如何参考“网络接口id”或任何其他资源id吗?如果需要,非常感谢任何帮助 ########
###################
# Network Interface
###################
resource "azurerm_network_interface" "this" {
for_each = var.vm_details
name = format(
"%s-${var.location}-%s-%s-nic-%s",
var.app_acronym,
var.env,
var.app_purpose,
each.value.vm_identifier
)
location = var.location
resource_group_name = var.resource_group_name
tags = var.tags
ip_configuration {
name = format(
"%s-${var.location}-%s-%s-ip-%s",
var.app_acronym,
var.env,
var.app_purpose,
each.value.vm_identifier
)
subnet_id = var.subnet_id
private_ip_address_allocation = var.private_ip_address_allocation != "" ? var.private_ip_address_allocation : "Dynamic"
}
enable_accelerated_networking = each.value.enable_accelerated_networking
}
###########################################################
# Asssociating Network Interface to outbound load balancer
###########################################################
resource "azurerm_network_interface_backend_address_pool_association" "this" {
for_each = var.olb_association
network_interface_id = "${var.rsrc_id_str_1}${var.subscription_id}${var.rsrc_id_str_2}${var.resource_group_name}${var.rsrc_id_str_nic_3}${var.app_acronym}${var.hifen}${var.location}${var.hifen}${var.env}${var.hifen}${var.app_purpose}${var.nic_abbrv}${each.value.vm_identifier}"
ip_configuration_name = format(
"%s-${var.location}-%s-%s-ip-%s",
var.app_acronym,
var.env,
var.app_purpose,
each.value.vm_identifier
)
backend_address_pool_id = each.value.backend_address_pool_id
depends_on = [azurerm_network_interface.this]
}
for_each
创建一个数据结构,该结构与您提供给它的地图一样被引用。因此,如果条目的名称是“puppy”,您可以将其引用为azurerm\u网络接口。此[“puppy”]for\u each
创建一个数据结构,其引用方式与您为其提供的地图类似。因此,如果一个条目的名称是“puppy”,您可以将其引用为azurerm_网络接口。此[“puppy”]这只适用于一个条目,如果我有一组条目会怎么样。我尝试了这个[each.key],但没有成功。如果var.olb_关联
的键与var.vm_详细信息
的键完全相同,那就行了。否则,您可能需要从值中提取它。我看不到足够的代码来推荐。这只适用于一个条目,如果我有一堆条目会怎么样。我尝试了这个[each.key],但没有成功。如果var.olb_关联
的键与var.vm_详细信息
的键完全相同,那就行了。否则,您可能需要从值中提取它。我看不到足够的代码来推荐。