使用switch-azwebappslot交换部署插槽

发布于 2025-02-09 21:33:20 字数 2448 浏览 2 评论 0原文

我有以下用于交换部署插槽的脚本:

            $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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千年*琉璃梦 2025-02-16 21:33:20

使用以下脚本,我可以在Azure中的应用程序上获得最后一个插槽交换操作的状态:

Connect-AzAccount
Set-AzContext -SubscriptionId "<subscription-id>"


$functionApp = "KrishNet6FuncApp1205";
$resourceGroup = "HariTestRG";


Write-Host "Starting to swap $functionApp";
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName production -DestinationSlotName staging -SwapWithPreviewAction ApplySlotConfig
Start-Sleep -Seconds 30
Write-Host "Completed swapping $functionApp";

Get-AzLog -ResourceGroup $resourceGroup -StartTime 2022-06-23 -Caller SlotSwapJobProcessor


output

“在此处输入图像描述”

Using the below script, I can get the status of last Slot Swap operation done on the application in Azure:

Connect-AzAccount
Set-AzContext -SubscriptionId "<subscription-id>"


$functionApp = "KrishNet6FuncApp1205";
$resourceGroup = "HariTestRG";


Write-Host "Starting to swap $functionApp";
Switch-AzWebAppSlot -ResourceGroupName $resourceGroup -Name $functionApp -SourceSlotName production -DestinationSlotName staging -SwapWithPreviewAction ApplySlotConfig
Start-Sleep -Seconds 30
Write-Host "Completed swapping $functionApp";

Get-AzLog -ResourceGroup $resourceGroup -StartTime 2022-06-23 -Caller SlotSwapJobProcessor


Output:

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文