我有一个azure Terraform代码试图创建包括Vnet,子网,NSG的azure资源。我的目标azure配置已经创建了VNET,子网和NSG的。B但是在做了一些更改之后,terraform build失败了,因为它试图删除“网络安全组”,我想知道它试图删除“:网络安全组”的原因。请建议它尝试删除网络安全组的根本原因是什么?
错误:删除网络安全组"xxxxxxx685558856875“出错(资源组"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
}发布于 2020-01-07 09:37:54
能够解决这个问题。根本原因是由于某种原因,两个资源具有不同的地址但具有相同的id=。刚刚在这两个条目上运行了terraform state rm。terraform状态rm module.central_network.azurerm_network_security_group.network_security_group_appgwsubnet terraform状态rm module.east_network.azurerm_network_security_group.network_security_group_appgwsubnet.这解决了这个问题。对此感到惊讶的是,不知何故,azure terraform提供商允许这种情况发生。
https://stackoverflow.com/questions/59573551
复制相似问题