如果子网存在于状态、代码和资源中,为什么 Terraform 会尝试从函数应用程序中删除子网?

问题描述 投票:0回答:1

当我运行

terraform plan
apply
时,我总是看到我的
subnet
将被删除。

因此,在资源中我看到它连接到 vnet 和子网:

我有该连接的 TF 代码表示:

resource "azurerm_app_service_virtual_network_swift_connection" "func_app_vnet_swift_connection" {
  app_service_id = azurerm_windows_function_app.func_app.id
  subnet_id      = data.azurerm_subnet.subnet.id

  depends_on = [ 
    azurerm_windows_function_app.func_app
  ]
}

在状态下,我可以看到具有相同

subnet_id
的块表示,就像来自
terraform plan
命令:

{
      "mode": "managed",
      "type": "azurerm_app_service_virtual_network_swift_connection",
      "name": "func_app_vnet_swift_connection",
      "provider": "provider[\"registry.terraform.io/hashicorp/azurerm\"]",
      "instances": [

我的代码有什么问题,它总是尝试从资源中删除 swift_connection 块?我需要做解决方法(添加和删除),运行应用两次来克服这个问题,但它总是再次回到我身边

azure terraform azure-functions azure-virtual-network
1个回答
0
投票

更新 azurerm_windows_function_app.func_app 资源以包含 virtual_network_subnet_id 参数,该参数应引用子网 ID(即 data.azurerm_subnet.subnet.id)。这应该可以解决问题。如果还是不行,请分享azurerm_windows_function_app.func_app的代码块

https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/windows_function_app#virtual_network_subnet_id

© www.soinside.com 2019 - 2024. All rights reserved.