我正在研究一个复杂的terraform模板,该模板将我们的产品分成单独的模块,以便我们可以模块化地构建(或添加到)基础结构。
我们将拥有一个包含DNS专用区域的根虚拟网络。该区域显然仅具有根网络的解析网络。
下一个产品将在不同的订阅中创建一个新的虚拟网络,然后将对等网络,我想将该新网络ID添加到DNS区域的解析列表中。
在Terraform中似乎没有引用和更新资源的附加功能,因此我一直被困于尝试使用新的分辨率网络列表再次创建它。有没有更好的办法?
使用新资源似乎要删除旧资源。
答案 0 :(得分:0)
他们正在努力向azurerm terraform提供程序添加新的资源类型: azurerm_private_dns_zone_virtual_network_link 。这将允许在不使用 azurerm_private_dns_zone 资源类型的情况下,将解析和注册网络添加到私有dns区域。它将在即将推出的Azure Terraform提供程序2.0中提供。
直到那时我还没有找到一种解决方法。
来自相应pull request的即将到来的功能的更多详细信息:
azurerm_private_dns_zone_virtual_network_link
使您能够管理 专用DNS区域虚拟网络链接。这些链接启用DNS 使用Azure在Azure虚拟网络中进行解析和注册 专用DNS。用法示例
resource "azurerm_resource_group" "test" { name = "acceptanceTestResourceGroup1" location = "West US" } resource "azurerm_private_dns_zone" "test" { name = "mydomain.com" resource_group_name = "${azurerm_resource_group.test.name}" } resource "azurerm_private_dns_zone_virtual_network_link" "test" { name = "test" resource_group_name = azurerm_resource_group.test.name private_dns_zone_name = azurerm_private_dns_zone.test.name virtual_network_id = azurerm_virtual_network.test.id }
参数参考
支持以下参数:
名称-(必需)专用DNS区域虚拟网络的名称 链接。更改此设置将强制创建新资源。
private_dns_zone_name -(必填)私有DNS区域的名称 (没有终止点)。更改此设置将强制使用新资源 已创建。
virtual_network_id -(必需)虚拟网络的资源ID 应该链接到DNS区域。改变这一点迫使新的 要创建的资源。
registration_enabled -(可选)是否已自动注册虚拟 专用DNS区域中的虚拟网络中的计算机记录 启用?默认为false。
resource_group_name -(必需)指定资源组,其中 资源存在。更改此设置将强制使用新资源 已创建。
标签-(可选)要分配给资源的标签映射。