首页 > 解决方案 > Azure powershell Move-AzureDeployment - 错误:HttpRequestException

问题描述

我们在 Azure 管道中使用 powershell 进行了云服务(经典)交换,该交换已经运行了一整年,由以前的员工设置,现在它失败并出现错误:

Move-AzureDeployment : An error occurred while sending the request.
At D:\a\_temp\blahblahblah.ps1:8 char:1
+ Move-AzureDeployment -ServiceName $servicename
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Move-AzureDeployment], HttpRequestException
    + FullyQualifiedErrorId : System.Net.Http.HttpRequestException,Microsoft.WindowsAzure.Commands.ServiceManagement.H 
   ostedServices.MoveAzureDeploymentCommand

实际的作业任务是使用 PowerShell 脚本设置为内联,错误操作为停止。实际脚本:

$subid = 'blah-blah-blah-blah'
$servicename = "blahblahblah"

Select-AzureSubscription -SubscriptionId $subid

Move-AzureDeployment -ServiceName $servicename
$service = Get-AzureDeployment -ServiceName $servicename -Slot Production

Start-Sleep -s 300

Remove-AzureDeployment -ServiceName $servicename -Slot "Staging" -Force

我确信这可能是管理证书的服务连接已过期,但我有一个有效的工作,发现它的设置与另一个类似的管道/服务连接完全一样。

标签: azurepowershellazure-devopsazure-powershell

解决方案


所以问题是两件事,更新后的 SSL 和 PowerShell 版本问题。为了处理 SSL 问题,我将这一行添加到我们的内联脚本的顶部:

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"

对于 PowerShell 问题,它需要更改为用于管道的 Azure PowerShell 应用程序,因此我们可以回滚到特定任务版本和 4.2.1 PowerShell 版本,如此答案所示:

在 Azure 云服务中以编程方式将暂存槽交换到生产槽

在此处输入图像描述

这可能是目前交换云服务(经典)的唯一方法。有点烦人的 Azure 推动了这个经典的服务,并且从未正确维护它。


推荐阅读