我正在使用Azure CLI v2.0,当我尝试从VM创建映像时,blob URI为null: { ... " osDisk":{ " blobUri":null, ... } ... }
我按照Microsoft doc中的步骤操作,并使用了在Azure门户上创建的Ubuntu LTS VM。
奇怪的是我已经从VM创建了一个图像,此时,我的图像有一个blob URI。
我需要使用blob URI来获取SAS才能在Azure市场中发布应用程序。
此外,URI也不会出现在Azure门户中,如果我尝试从此图像创建VM,则会成功。
有没有人对为什么会这样做有任何建议?
谢谢。
答案 0 :(得分:1)
默认情况下,我们使用CLI 2.0创建图像,新的创建图像不存储在Azure存储帐户中,我们可以在images
中找到它:
=============================================== =========
的更新强>:
从托管磁盘创建图像,我们无法在Azure门户中找到URI:
目前,我们无法为托管图片创建SAS 在您的方案中,我认为我们应该使用快照。快照是磁盘的一个副本,它只适用于一个磁盘。如果您的VM只有一个磁盘(操作系统),我们可以对其进行快照(我们应该先对其进行概括)。
创建快照后,我们可以授予对此快照的访问权限,我们也可以将此快照复制到目标Azure订阅。然后我们可以使用此快照创建图像并使用此图像创建新的vm。(快照可以复制到其他区域。)
关于创建此快照的SAS,我们可以使用 CLI 2.0 来执行此操作。
C:\Users\jason>az snapshot grant-access --help
Command
az snapshot grant-access: Grant read access to a snapshot.
Arguments
--duration-in-seconds [Required]: Time duration in seconds until the SAS access expires.
Resource Id Arguments
--ids : One or more resource IDs (space delimited). If provided, no
other 'Resource Id' arguments should be specified.
--name -n : The name of the snapshot.
--resource-group -g : Name of resource group. You can configure the default group
using `az configure --defaults group=<name>`.
有关使用快照创建新VM的详细信息,请参阅此link。
如何从快照创建托管图像,请参阅此link。
Update2 :
我们可以使用powershell将托管磁盘复制到azure存储帐户:
##create $SAS
$sas = Grant-AzureRmDiskAccess -ResourceGroupName shui -DiskName test -DurationInSecond 3600 -Access Read
$destContext = New-AzureStorageContext –StorageAccountName contosostorageav1 -StorageAccountKey 'YourStorageAccountKey'
Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer 'vhds' -DestContext $destContext -DestBlob 'MyDestinationBlobName.vhd'
UPDATE3:
我们可以使用CLI 2.0将快照复制到azure存储帐户:
az account set --subscription $subscriptionId
sas=$(az snapshot grant-access --resource-group $resourceGroupName --name $snapshotName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)
az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas
有关将快照复制到存储帐户的详细信息,请参阅此link。