如何将存储在Azure存储中的cspkg部署到Azure云服务(经典)?

时间:2018-04-11 21:14:46

标签: azure azure-storage-blobs azure-powershell azure-cloud-services azure-pipelines-release-pipeline

我正在尝试使用VSTS版本管道部署存储在Azure存储帐户的blob容器中的cspkg文件。

我正在尝试模仿使用新版本更新云服务的升级过程,因此我在应用程序中存储了当前的PROD版本。我想将此版本发布到此测试升级云服务,然后将来自TEST的新版本发布到测试升级云服务,然后检查该应用程序是否仍然有效。

我正在使用Azure PowerShell任务执行此过程,该过程类似于我过去用于执行此操作的Azure自动化Runbook。

第一步是获取cspkg文件并获取url

$pkgFile = Get-AzureRmStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName | Get-AzureStorageBlob -Container $ContainerName -Blob $BlobNamePackageFull
$package = $pkgFile.ICloudBlob.uri.AbsoluteUri

我还将配置文件写入临时文件夹

$TempFileLocation = "C:\temp\$BlobNameConfiguration"
Get-AzureRmStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName | Get-AzureStorageBlobContent -Container $ContainerName -Blob $BlobNameConfiguration -Destination $TempFileLocation -Force

然后我尝试使用New-AzureDeployment

部署云服务
New-AzureDeployment -ServiceName "$ServiceName" -Slot "$Slot" -Package "$package" -Configuration $TempFileLocation -Label "$Label" -ErrorAction Stop

我一直收到与未设置默认订阅相关的错误。

Error details = No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription.

我已经使用此任务运行其他任务而不会弹出此错误。我已尝试使用我用于运行Azure PowerShell任务的订阅ID,即使订阅存在,也会收到以下错误。

The subscription id XXX-XXX-XXXX doesn't exist

如何运行此cmdlet?这在Azure自动化中有效。我应该以不同的方式来部署旧版本的cspkg吗?

1 个答案:

答案 0 :(得分:0)

对于New-AzureDeployment命令,它是经典命令,因此您需要选择Azure Classic作为Azure PowerShell任务的Azure连接类型,并指定Classic端点。

因此,您可以使用Azure Classic端点添加另一个PowerShell任务,以调用要部署的New-AzureDeployment。

另一方面,Azure Deployment任务用于部署Cloud Service。