Powershell命令更新Azure云服务(扩展支持)与blob文件

ftf50wuq  于 2023-10-22  发布在  Shell
关注(0)|答案(1)|浏览(144)

在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中获取它的正确方法是什么?
最后一个问题:即使这看起来更新了,示例也不会改变。我错过了什么?
谢了,杰提

vsdwdz23

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.我觉得我们掌握的信息还不够。考虑仔细检查您是否提供了预期的新包和配置,而不是意外地提供了旧包和配置?

相关问题