我们使用 PowerShell 而非 ARM 模板在代码中创建自己的 Azure 基础架构。我们有一个连接到 VNet 的 WebApp,我们使用以下 cmdlet 进行设置:
New-AzureRmResource -ResourceGroupName $ComputeResourceGroupName -Location $ComputeResourceGroupLocation
-Properties $PropertiesObject
-ResourceName "$($WebAppConf.Name)/$($VNet.Name)/primary"
-ResourceType "Microsoft.Web/sites/virtualNetworkConnections/gateways"
-ApiVersion 2015-08-01 -Force
出于成本原因,并且由于这是一台测试机器,我们每晚关闭所有测试基础设施,并在每天早上团队开始工作之前再次启动。这包括删除应用程序服务计划和包含的 Web 应用程序,并使用每天早上部署的新版本重新创建它。同样,这是为了在一天中的大部分时间里节省一些成本,而没有人在办公室或工作。我们面临的问题是,当我们倾向于重新创建 Web 应用程序,然后将 Web 应用程序重新连接到 VNet 时,我们总是会得到一个新的连接实例,如下面的屏幕截图所示。我知道答案似乎很明显,我们可以简单地删除旧的现有连接,然后重新创建它,但你永远无法获得连接实例的句柄,即使在调用 Get-AzureRmResource 之后,
换句话说,每当您在 Web 应用程序和 VNet 之间创建 VNet 集成连接时,即使您同时删除了 Web 应用程序和 VNet,它也将永远保留在那里且不可删除。此外,除非您选择它并单击“同步网络”按钮,否则正在创建的新连接将不起作用。