【问题标题】:Azure Terraform Network security group getting deletedAzure Terraform 网络安全组被删除
【发布时间】:2020-04-21 17:18:38
【问题描述】:

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

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

下面是我的 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
}

【问题讨论】:

  • 改名,也许?
  • 现有 NSG 的名称是什么?和你想通过 Terraform 创建的一样吗?
  • 尝试删除安全组时的计划是什么样的?
  • 能够解决问题。根本原因是由于某种原因,两个资源具有不同的地址但相同的 id=。刚刚在这两个条目上运行了 terraform state rm 。 terraform state rm module.central_network.azurerm_network_security_group.network_security_group_appgwsubnet terraform state rm module.east_network.azurerm_network_security_group.network_security_group_appgwsubnet。这解决了这个问题。对此感到惊讶,天蓝色的 terraform 提供者以某种方式允许这种情况发生。
  • 如果您解决了问题,请添加答案以显示解决方案。

标签: azure-functions terraform terraform-provider-azure


【解决方案1】:

能够解决问题。根本原因是由于某种原因,两个资源具有不同的地址但相同的 id=。刚刚在这两个条目上运行了 terraform state rm 。 terraform state rm module.central_network.azurerm_network_security_group.network_security_group_appgwsubnet terraform state rm module.east_network.azurerm_network_security_group.network_security_group_appgwsubnet。这解决了这个问题。对此感到惊讶,天蓝色的 terraform 提供者以某种方式允许这种情况发生。

【讨论】:

  • 你的意思是这两个资源有相同的Id,只是在两个不同的地区?
  • 是 两个资源具有相同的 ID。我很惊讶这会发生。不知何故,天蓝色的地形提供者允许这种情况发生。
猜你喜欢
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 2021-06-02
  • 2021-06-10
  • 1970-01-01
  • 2017-08-12
相关资源
最近更新 更多