使用switch-azwebappslot交换部署插槽
我有以下用于交换部署插槽的脚本:
$functionApp = $functionAppName;
Write-Host "Starting to swap $functionApp";
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction ApplySlotConfig
Start-Sleep -Seconds 30
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction CompleteSlotSwap
Start-Sleep -Seconds 30
Write-Host "Completed swapping $functionApp";
是否有一种方法可以验证Switch-azwebappslot在继续前进之前已成功执行还是不执行?例如:
status = Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction ApplySlotConfig
if (status = "Success")
{
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction CompleteSlotSwap
}
更新:
我根据建议的解决方案更新了脚本,如下所示:
try {
$functionApp = "functionAppname";
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction ApplySlotConfig
$date = Get-Date -Format "yyyy-MM-dd"
$log = Get-AzLog -ResourceGroup $resourceGroup -StartTime $date -Caller SlotSwapJobProcessor
$status = $log[0].Status
if ("Succeeded" -eq $status) {
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction CompleteSlotSwap
$log = Get-AzLog -ResourceGroup $resourceGroup -StartTime $date -Caller SlotSwapJobProcessor
$status = $log[0].Status
if ("Succeeded" -eq $status) {
Write-Host "Completed swapping $functionApp";
}
else
{
Write-Host "Failed to swap $functionApp"
}
}
else
{
Write-Host "Failed to swap $functionApp"
}
}
catch
{
Write-Host "Something went wrong, please try again..."
}
但是我在$日志中没有看到数据。我想念什么?
I have the following script for swapping deployment slots:
$functionApp = $functionAppName;
Write-Host "Starting to swap $functionApp";
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction ApplySlotConfig
Start-Sleep -Seconds 30
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction CompleteSlotSwap
Start-Sleep -Seconds 30
Write-Host "Completed swapping $functionApp";
Is there a way to verify that Switch-AzWebAppSlot has executed successfully or not before proceeding to the next line? For example:
status = Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction ApplySlotConfig
if (status = "Success")
{
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction CompleteSlotSwap
}
UPDATE:
I updated the script based on the suggested solution as follows:
try {
$functionApp = "functionAppname";
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction ApplySlotConfig
$date = Get-Date -Format "yyyy-MM-dd"
$log = Get-AzLog -ResourceGroup $resourceGroup -StartTime $date -Caller SlotSwapJobProcessor
$status = $log[0].Status
if ("Succeeded" -eq $status) {
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName staging -DestinationSlotName production -SwapWithPreviewAction CompleteSlotSwap
$log = Get-AzLog -ResourceGroup $resourceGroup -StartTime $date -Caller SlotSwapJobProcessor
$status = $log[0].Status
if ("Succeeded" -eq $status) {
Write-Host "Completed swapping $functionApp";
}
else
{
Write-Host "Failed to swap $functionApp"
}
}
else
{
Write-Host "Failed to swap $functionApp"
}
}
catch
{
Write-Host "Something went wrong, please try again..."
}
but I see no data in $log. What am I missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用以下脚本,我可以在Azure中的应用程序上获得最后一个插槽交换操作的状态:
output :
Using the below script, I can get the status of last Slot Swap operation done on the application in Azure:
Output: