You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VSTS发布管道部署Azure存储中的cspkg至经典云服务并模拟升级

如何将Azure存储中的cspkg部署到Azure经典云服务(含版本升级模拟流程)

我来帮你梳理用Azure PowerShell完成这个部署和升级模拟的完整流程——刚好我之前做过类似的经典云服务版本升级验证,步骤拆解得很清楚,你跟着来就行:

一、前期准备工作

  • 确保你已经安装了Azure PowerShell模块(推荐用Az模块里的Az.CloudService系列命令,它兼容经典云服务操作,比老的AzureRM模块更靠谱)
  • 拥有目标Azure存储账户的读取权限,以及目标经典云服务的部署权限
  • 提前把这些信息记下来,省得中途找:
    • 存储账户名称、Blob容器名称,还有PROD版本、TEST新版本的cspkg和cscfg文件的Blob路径
    • 测试升级用的经典云服务名称、它所在的资源组名,以及要部署的槽位(建议先用Staging槽位测试,再碰Production)

二、步骤1:把PROD版本部署到测试升级云服务

首先得连到你的Azure账号,然后给存储里的cspkg/cscfg生成临时可访问的SAS链接(部署时Azure需要能拿到这些文件),最后执行部署命令。

  1. 登录Azure账号:
Connect-AzAccount
# 要是你有多个订阅,加上 -Subscription <你的订阅ID> 指定目标订阅
  1. 生成PROD版本文件的SAS链接(有效期设1小时足够部署了):
# 替换成你的实际信息
$storageAccountName = "你的存储账户名"
$containerName = "Blob容器名"
$prodCspkgBlobPath = "prod版本的cspkg路径,比如prod-v1.0.cspkg"
$prodCscfgBlobPath = "prod版本的cscfg路径,比如prod-v1.0.cscfg"

# 获取存储账户上下文
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount

# 生成只读权限的SAS令牌,有效期1小时
$sasTokenCspkg = New-AzStorageBlobSASToken -Container $containerName -Blob $prodCspkgBlobPath -Context $storageContext -Permission r -ExpiryTime (Get-Date).AddHours(1)
$sasTokenCscfg = New-AzStorageBlobSASToken -Container $containerName -Blob $prodCscfgBlobPath -Context $storageContext -Permission r -ExpiryTime (Get-Date).AddHours(1)

# 拼接成Azure能直接访问的完整URL
$prodCspkgUrl = "https://$storageAccountName.blob.core.windows.net/$containerName/$prodCspkgBlobPath$sasTokenCspkg"
$prodCscfgUrl = "https://$storageAccountName.blob.core.windows.net/$containerName/$prodCscfgBlobPath$sasTokenCscfg"
  1. 部署PROD版本到测试云服务的Staging槽位:
# 替换成你的实际信息
$cloudServiceName = "你的测试升级云服务名"
$resourceGroupName = "云服务所在的资源组名"
$slot = "Staging"

# 要是云服务还没部署过,用这个命令
New-AzCloudServiceDeployment -ResourceGroupName $resourceGroupName -CloudServiceName $cloudServiceName -Slot $slot -PackageUrl $prodCspkgUrl -ConfigurationUrl $prodCscfgUrl -Force

# 要是Staging槽位已经有旧部署,用这个命令更新
Set-AzCloudServiceDeployment -ResourceGroupName $resourceGroupName -CloudServiceName $cloudServiceName -Slot $slot -PackageUrl $prodCspkgUrl -ConfigurationUrl $prodCscfgUrl -Force

部署完后,你可以访问Staging槽位的专属URL,验证PROD版本是不是正常运行。

三、步骤2:部署TEST新版本到测试升级云服务(模拟升级)

流程和上面差不多,只是把文件换成TEST版本的就行:

  1. 获取TEST版本文件的SAS链接:
# 替换成TEST版本的文件路径
$testCspkgBlobPath = "test版本的cspkg路径,比如test-v2.0.cspkg"
$testCscfgBlobPath = "test版本的cscfg路径,比如test-v2.0.cscfg"

$sasTokenTestCspkg = New-AzStorageBlobSASToken -Container $containerName -Blob $testCspkgBlobPath -Context $storageContext -Permission r -ExpiryTime (Get-Date).AddHours(1)
$sasTokenTestCscfg = New-AzStorageBlobSASToken -Container $containerName -Blob $testCscfgBlobPath -Context $storageContext -Permission r -ExpiryTime (Get-Date).AddHours(1)

$testCspkgUrl = "https://$storageAccountName.blob.core.windows.net/$containerName/$testCspkgBlobPath$sasTokenTestCspkg"
$testCscfgUrl = "https://$storageAccountName.blob.core.windows.net/$containerName/$testCscfgBlobPath$sasTokenTestCscfg"
  1. 更新Staging槽位的部署:
Set-AzCloudServiceDeployment -ResourceGroupName $resourceGroupName -CloudServiceName $cloudServiceName -Slot $slot -PackageUrl $testCspkgUrl -ConfigurationUrl $testCscfgUrl -Force
  1. 验证升级后的应用:
    部署完成后,再次访问Staging槽位的URL,检查应用功能是否正常。要是没问题,还可以把Staging和Production槽位互换(模拟正式环境的升级流程):
Switch-AzCloudServiceSlot -ResourceGroupName $resourceGroupName -CloudServiceName $cloudServiceName -Force

四、一些实用提醒

  • 一定要确保cscfg文件的配置和目标云服务匹配,比如角色实例数、端点配置这些,别部署完才发现不兼容
  • SAS令牌的有效期别设太短,不然部署到一半链接失效就麻烦了
  • 要是在VSTS发布管道里用这些脚本,直接加个Azure PowerShell任务就行,还能把存储账户名、云服务名这些做成管道变量,维护起来更方便
  • 部署过程中可以用这个命令查看进度和状态:
Get-AzCloudServiceDeployment -ResourceGroupName $resourceGroupName -CloudServiceName $cloudServiceName -Slot $slot

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:02:20