【发布时间】:2019-11-01 02:18:26
【问题描述】:
我正在尝试将新的 Azure 虚拟网络网关部署到包含多个子网的现有 VNET。我首先使用虚拟子网在测试环境中配置它。我正在使用 ARM 创建一个 .json 模板和参数文件,我通过 Jenkins 进行部署。目前,模板在部署虚拟网关时会尝试重新部署整个 VNET。我不希望它这样做。我希望它将虚拟网络网关部署到现有的 VNET。请参阅下文,了解我如何在模板中对 VNET 进行编码。
{
"apiVersion": "2019-04-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('virtualNetworkName')]",
"location": "[resourceGroup().location]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('azureVNetAddressPrefix')]"
]
},
"subnets": [
{
"name": "GatewaySubnet",
"properties": {
"addressPrefix": "[parameters('gatewaySubnetPrefix')]"
}
}
]
}
}
部署此模板时,我在 Jenkins 中收到以下错误:
"code": "InUseSubnetCannotBeDeleted",
"message": "Subnet testing-subnet is in use by /subscriptions/****/resourceGroups/networks-dev-rg/providers/Microsoft.Network/networkInterfaces/dev-jmp-d31653/ipConfigurations/ipconfig1 and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet."
我查看了 Microsoft 知识库,但我一直在努力寻找如何做到这一点的解释,或者是否有可能。理想情况下,我想避免列出 vnet 中的所有子网,因为这是一个我想应用于具有不同子网的不同 vnet 的模板。
谁能提供答案或建议?谢谢。
【问题讨论】:
-
是否可以选择使用 PowerShell 添加网关? docs.microsoft.com/en-us/azure/vpn-gateway/…
-
这是一个潜在的选择,但如果可能的话,我更愿意使用 ARM。如果我找不到可接受的 ARM 解决方案,那么我将尝试 PowerShell 解决方案。谢谢。
标签: azure azure-resource-manager gateway arm-template azure-virtual-network