Azure 交换不工作
Azure swap not working
我正在尝试使用 Switch-AzureWebsiteSlot,如下所示:
Switch-AzureWebsiteSlot -Name 'sitename' -slot1 'Staging' -slot2 'Production' -f
强制详细
然而,即使我的网站有 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
你知道为什么吗?您在代码之旅中是否也遇到过这种情况?
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 网络应用程序。我的问题是我有两个订阅,之前测试命令时我没有 select 正确的订阅。感谢弗莱明!
之前:
现在订阅正确:
即使您在 ARM 中创建了应用程序,此命令也有效。
Switch-AzureWebsiteSlot -Name 'siteName' -slot1 'StagingDeploymentName' -slot2 'Production' -force -verbose
请检查您提供的名称以及名额是否已满以及 运行。
我通过停止其中一个部署槽来测试它,并出现与您遇到的相同的错误。所以,我现在可以肯定,在您的情况下,有一个插槽未处于 运行 状态。
对于 ARM 网络应用程序,Switch-AzureWebsiteSlot
对我来说根本不起作用。收到以下错误消息:
Switch-AzureWebsiteSlot : No default subscription has been designated.
Use Select-AzureSubscription -Default to set the
default subscription.
据我了解,Select-AzureSubscription
是一条 ASM 命令,因此不适用。 (相反,对于 ARM,我需要使用 Select-AzureRmSubscription
。)
命令 Swap-AzureRmWebAppSlot
对我有用:
Swap-AzureRmWebAppSlot -Name "sitename" -SourceSlotName "Staging" -DestinationSlotName "Production" -ResourceGroupName "<Your Resource Group Name"
我正在尝试使用 Switch-AzureWebsiteSlot,如下所示:
Switch-AzureWebsiteSlot -Name 'sitename' -slot1 'Staging' -slot2 'Production' -f
强制详细
然而,即使我的网站有 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
你知道为什么吗?您在代码之旅中是否也遇到过这种情况?
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 网络应用程序。我的问题是我有两个订阅,之前测试命令时我没有 select 正确的订阅。感谢弗莱明!
之前:
现在订阅正确:
即使您在 ARM 中创建了应用程序,此命令也有效。
Switch-AzureWebsiteSlot -Name 'siteName' -slot1 'StagingDeploymentName' -slot2 'Production' -force -verbose
请检查您提供的名称以及名额是否已满以及 运行。
我通过停止其中一个部署槽来测试它,并出现与您遇到的相同的错误。所以,我现在可以肯定,在您的情况下,有一个插槽未处于 运行 状态。
对于 ARM 网络应用程序,Switch-AzureWebsiteSlot
对我来说根本不起作用。收到以下错误消息:
Switch-AzureWebsiteSlot : No default subscription has been designated. Use Select-AzureSubscription -Default to set the default subscription.
据我了解,Select-AzureSubscription
是一条 ASM 命令,因此不适用。 (相反,对于 ARM,我需要使用 Select-AzureRmSubscription
。)
命令 Swap-AzureRmWebAppSlot
对我有用:
Swap-AzureRmWebAppSlot -Name "sitename" -SourceSlotName "Staging" -DestinationSlotName "Production" -ResourceGroupName "<Your Resource Group Name"