我有一个Web API发布管道,该管道正在部署资源(使用Azure资源组部署任务)并部署我们的API。
我们的意图是进行零停机时间部署,因此我们正在发布过程中运行的jmeter对其进行测试。我们发现,在资源部署过程中,我们会在几秒钟内收到异常。检查“应用程序见解”异常详细信息后,我们发现根本原因是连接到本地资源的连接丢失。异常详细信息如下:
“无法连接到远程服务器所请求的地址在其上下文[theIp]:80中无效”
要连接到本地服务器,我们使用virtualNetworkConnections,如下所示:
{
"type": "Microsoft.Web/sites/slots/virtualNetworkConnections",
"name": "[concat(variables('StagingSlotName'), '/', parameters('VNetName'))]",
"apiVersion": "2016-08-01",
"location": "[resourceGroup().location]",
"properties": {
"vnetResourceId": "[resourceId(parameters('VNetResourceGroup'), 'Microsoft.Network/virtualNetworks/', parameters('VNetName'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('WebAppName'))]",
"[resourceId('Microsoft.Web/sites/slots', variables('WebAppName'), parameters('StagingSlotName'))]"
]
}
我们现在可以考虑的唯一选择是,此定义导致VPN在部署期间以某种方式重新启动。
因此,问题是:这是MS将要解决的已知错误吗?这是设计功能吗?我们有做错什么事了吗,有办法避免这种情况?
如果我们不能按原样工作,则需要创建两个发布管道,一个部署管道,仅在需要时执行,而另一个发布管道部署代码。但是我真的认为,将两者都部署在一起是正确的方法...
谢谢您的帮助!