在Azure门户中,我的云服务(扩展支持)更新得非常频繁,并与另一个云服务(扩展支持)示例交换。我有一个将CSPKG、CSDEF和CSCFG文件上传到blob存储的脚本。这个很好用。
然后我转到门户,找到我想要更新的示例,单击更新,更改为Blob存储,浏览到我上传的文件并单击更新按钮。这个过程开始了,大约7-9分钟后,示例就可以使用了。
我试图在PowerShell中复制此更新过程,尽管它似乎可以工作,但示例从未实际更新。它发现云服务很好。这是我整理出来的:
# Get an SAS token to CSPKG
Write-Host ("$(Get-Date -f $timeStampFormat) Getting CSPKG Shared Access Signature (SAS) token") -ForegroundColor DarkCyan
#$tokenStartTime = Get-Date
#$tokenEndTime = $tokenStartTime.AddYears(1)
#$cspkgToken = New-AzStorageBlobSASToken -Container “vs-deploy” -Blob “MyCloudService.cspkg” -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context
$cloudService = (Get-AzCloudService) |
Where-Object {
$_.networkProfile.LoadBalancerConfiguration.FrontendIPConfiguration.PublicIPAddressId -like "*MyIP"
}
$stagingServiceName = $cloudService.Name
Write-Host ("$(Get-Date -f $timeStampFormat) Deploying to {0} Cloud Service" -f $stagingServiceName) -ForegroundColor DarkCyan
# Load the CSCFG XML into a string from local drive
$cscfgContent = Get-Content $cscfgFilePath | Out-String
try {
Write-Host "URI for blob: "$cspkgBlob.ICloudBlob.Uri.AbsoluteUri
# Update the cloud service
$cloudService.PackageUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri
$cloudService.Configuration = $cscfgContent
$cloudService | Update-AzCloudService
} catch {
Write-Host ("$(Get-Date -f $timeStampFormat) Cloud Service {0} failed to update: {1}" -f $service, $_.Exception.Message) -ForegroundColor Red
break;
}
Write-Host ("$(Get-Date -f $timeStampFormat) Finished")
第一个问题是为什么在门户需要更新CSDEF文件时没有提及它?
第二个问题:我尝试的方法之一需要SAS令牌,但这一个似乎不需要。我错过了什么吗?
第三个问题:我找不到一种方法来读取CSCFG文件从blob诉诸阅读它从我的本地驱动器。从blob中获取它的正确方法是什么?
最后一个问题:即使这看起来更新了,示例也不会改变。我错过了什么?
谢了,杰提
1条答案
按热度按时间vsdwdz231#
我怀疑你会从Cloud Services - Create Or Update文档中获得最大的价值。创建和更新在云服务(扩展支持)的世界中是相同的操作。
1.我不知道为什么Portal想要CSDEF。我在原始REST API中没有看到对它的需求。
1.您可以根据REST文档向您的CSCFG提供原始CSCFG或SAS URI。您可以通过
configuration
提供原始的CSCFG(如上面所做的),也可以通过configurationUrl
提供SAS URI。(看起来文档确实有一个错别字-configurationUrl
的第二句应该是“服务包配置URL可以是...”)1.请参阅#2。您可以通过在
CloudServiceProperties
中使用configurationUrl
而不是configuration
来为CSCFG blob使用SAS URI。1.我觉得我们掌握的信息还不够。考虑仔细检查您是否提供了预期的新包和配置,而不是意外地提供了旧包和配置?