azure - 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
我确信这可能是管理证书的服务连接已过期,但我有一个有效的工作,发现它的设置与另一个类似的管道/服务连接完全一样。
解决方案
所以问题是两件事,更新后的 SSL 和 PowerShell 版本问题。为了处理 SSL 问题,我将这一行添加到我们的内联脚本的顶部:
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
对于 PowerShell 问题,它需要更改为用于管道的 Azure PowerShell 应用程序,因此我们可以回滚到特定任务版本和 4.2.1 PowerShell 版本,如此答案所示:
这可能是目前交换云服务(经典)的唯一方法。有点烦人的 Azure 推动了这个经典的服务,并且从未正确维护它。
推荐阅读
- api - Loopback 3 REST 不区分大小写的标志语法与 where 过滤器
- java - 如何使用特定的 java.exe 文件启动 .jar 文件,同时仍使用批处理在其自己的目录中执行 .jar?
- android - 如何更改android切换拇指区域的颜色?
- javascript - 使用参数获取 django 视图的 url
- flutter - 如何将窗口设备与运行在虚拟机上的 android studio / vscode 连接以实现颤振桌面应用程序?
- haskell - 使用 RecordDotSyntax 更新记录会导致错误
- python - cv2 ImportError(原因:找不到图像)
- swift - 如何使用父 id 来放置孩子的数据?
- express - 有条件地放宽 CSP 策略或放宽用于显示 iframe 内容的特定 Nest 路由的 CSP - Node/NestJS
- c# - 如何修复 ASP.NET MVC 用户界面应用错误的输入。ASP.NET 标识