Azure functions Azure Terraform网络安全组正在被删除

Azure functions Azure Terraform网络安全组正在被删除,azure-functions,terraform,terraform-provider-azure,Azure Functions,Terraform,Terraform Provider Azure,我有一个azure Terraform代码试图创建azure资源,包括Vnet、子网、NSG。我的目标azure配置已经创建了VNET、子网和NSG。B但是在做了一些更改之后,terraform build失败了,因为它试图删除“网络安全组”,我想知道它为什么要删除:“网络安全组”。请说明它试图删除网络安全组的根本原因是什么 错误:删除网络安全组“xxxxxxx 685558856875”(资源组“common-8856875”)时出错:Network.SecurityGroupsClient#

我有一个azure Terraform代码试图创建azure资源,包括Vnet、子网、NSG。我的目标azure配置已经创建了VNET、子网和NSG。B但是在做了一些更改之后,terraform build失败了,因为它试图删除“网络安全组”,我想知道它为什么要删除:“网络安全组”。请说明它试图删除网络安全组的根本原因是什么

错误:删除网络安全组“xxxxxxx 685558856875”(资源组“common-8856875”)时出错:Network.SecurityGroupsClient#Delete:发送请求失败:StatusCode=400--原始错误:Code=“InUseNetworkSecurityGroupCannotBeDeleted”Message=“网络安全组”

下面是我的NSG代码

resource "azurerm_virtual_network" "virtual_network" {
  name                = "has-virtual-network-${var.location_namespace}"
  resource_group_name = var.common_rg_name
  address_space       = ["xx.x.x.x/x1"]
  location            = var.location
}

resource "azurerm_subnet" "subnet" {
  name                      = var.location_namespace
  resource_group_name       = var.common_rg_name
  virtual_network_name      = azurerm_virtual_network.virtual_network.name
  address_prefix            = "xx.x.x.x/x2"
  network_security_group_id = azurerm_network_security_group.network_security_group.id
  service_endpoints = [
    "Microsoft.KeyVault",
    "Microsoft.AzureCosmosDB",
    "Microsoft.Sql",
    "Microsoft.Storage"
  ]
}

resource "azurerm_network_security_group" "network_security_group" {
  name                = var.location_namespace
  location            = var.location
  resource_group_name = var.common_rg_name
}

resource "azurerm_subnet_network_security_group_association" "subnet_network_security_group_association" {
  subnet_id                 = azurerm_subnet.subnet.id
  network_security_group_id = azurerm_network_security_group.network_security_group.id
}

无法修复此问题。根本原因是由于某些原因,两个资源的地址不同,但id相同。仅对这两个条目运行了terraform state rm。terraform state rm module.central\u network.azurerm\u network\u security\u group.network\u security\u group\u appgwsubnet terraform state rm module.east\u network.azurerm\u network\u security\u group.net工作\u安全\u组\u应用子网。这解决了问题。azure terraform提供商对此感到惊讶,不知何故允许了这种情况。

名称更改,也许?现有NSG的名称是什么?与您希望通过terraform创建的名称相同吗?尝试删除安全组时计划是什么样子的?能够修复e问题。根本原因是出于某种原因,两个资源具有不同的地址,但id=。仅在这两个条目上运行terraform state rm。terraform state rm module.central\u network.azurerm\u network\u security\u group.network\u security\u group\u appgwsubnet terraform state rm module.east\u network.azurerm\u network\u security\u group。网络\安全\组\应用子网。这解决了问题。令人惊讶的是,azure terraform提供商竟然允许这种情况发生。如果您解决了问题,请添加一个答案以显示解决方案。您的意思是这两个资源具有相同的Id,仅在两个不同的区域?是的,两个资源具有相同的Id。我很惊讶这c某种程度上,azure terraform提供程序允许这种情况发生。