我正在尝试使用 Switch-AzureWebsiteSlot ,如下所示:
Switch-AzureWebsiteSlot -Name' sitename' -slot1' Staging' -slot2' Production' -F
orce -verbose
但是,即使我的网站有2个插槽,暂存和默认生产我仍然从Power Shell收到以下错误。
Switch-AzureWebsiteSlot : The website must have at least two slots to apply swap
At line:1 char:1
+ Switch-AzureWebsiteSlot -Name 'sitename' -slot1 'St ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Switch-AzureWebsiteSlot], PSInvalidOperationException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.Websites.SwitchAzureWebsiteSlotCommand
你有什么想法吗?您是否在代码旅程中遇到过这种情况?
答案 0 :(得分:2)
Switch-AzureWebsiteSlot 适用于ASM网站。在您的情况下,我认为您已经创建了一个ARM网站,因此 Switch-AzureWebsiteSlot 不适用于此。
要为ARM网站交换插槽,您需要使用以下脚本:
$ParametersObject = @{targetSlot = "[slot name – e.g. “production”]"}
Invoke-AzureRmResourceAction -ResourceGroupName [resource group name]-ResourceType Microsoft.Web/sites/slots -ResourceName [web app name]/[slot name] -Action slotsswap -Parameters $ParametersObject -ApiVersion 2015-07-01
您可以查看this article了解详情。
Switch-AzureWebsiteSlot 也适用于ARM网络应用。我的问题是我有两个订阅,我以前在测试命令时没有选择正确的订阅。感谢Flemin!
答案 1 :(得分:2)
即使您在ARM中创建了应用程序,此命令仍然有效。
Switch-AzureWebsiteSlot -Name 'siteName' -slot1 'StagingDeploymentName' -slot2 'Production' -force -verbose
请检查您提供的姓名以及插槽是否正常运行。
我通过停止其中一个部署插槽测试了这一点并且出现了与您相同的错误。所以,我现在确定在你的情况下,任何一个插槽都没有处于运行状态。
答案 2 :(得分:1)
对于ARM网络应用,Switch-AzureWebsiteSlot
根本不适用于我。收到以下错误消息:
Switch-AzureWebsiteSlot:未指定默认订阅。 使用Select-AzureSubscription -Default设置 默认订阅。
根据我的理解,Select-AzureSubscription
是一个ASM命令,所以它不适用。 (相反,对于ARM,我需要使用Select-AzureRmSubscription
。)
命令Swap-AzureRmWebAppSlot
对我有用:
Swap-AzureRmWebAppSlot -Name "sitename" -SourceSlotName "Staging" -DestinationSlotName "Production" -ResourceGroupName "<Your Resource Group Name"