这个Deploy Task非常酷。我想一次做两个。有没有办法通过DevOps任务来做到这一点?如果没有,是否有任何已知的解决方法?我使用Azure PowerShell尝试了此操作,但是即使它在本地有效,命令也不会触发:(
Start-Job -Name API {
#Switch-AzureRmWebAppSlot -SourceSlotName "staging" -DestinationSlotName "production" -ResourceGroupName "CoolResGroup" -Name "something-api-east"
}
Write-Host "API Staging <-> Prod swap initiated"
Start-Job -Name Web {
#Switch-AzureRmWebAppSlot -SourceSlotName "staging" -DestinationSlotName "production" -ResourceGroupName "CoolResGroup" -Name "something-web-east"
}
Write-Host "Web Staging <-> Prod swap initiated"
Wait-Job -Name API
Wait-Job -Name Web
If (Get-Job -Name API -ea silentlycontinue)
{
Write-Host "API state: $((Get-Job -Name API).State)"
}
Else
{
Write-Host "API slot swap complete."
}
If (Get-Job -Name Web -ea silentlycontinue)
{
Write-Host "Web state: $((Get-Job -Name Web).State)"
}
Else
{
Write-Host "Web slot swap complete."
}
答案 0 :(得分:0)
默认情况下,这些powershell cmdlet处于阻止状态,因此您需要在后台线程中启动它们,或将它们转换为API调用(它们不应被阻止)。这样,您可以同时或多或少地执行这两个呼叫。
但是,这会使您的流程复杂化,因为您需要检测两个交换是否都正常完成(因此,您需要进行额外检查)。
或者,您最好使用A \ B部署。链接:https://www.hanselman.com/blog/ABTestingAndTestingInProductionWithAzureWebApps.aspx
http://involvenevolve.com/post/managing-azure-app-service-routing-rules/
https://docs.microsoft.com/ru-ru/cli/azure/webapp/traffic-routing?view=azure-cli-latest#az-webapp-traffic-routing-set