我尝试将快照复制到 Azure 上的 BLOB 容器中,但收到此错误
CannotVerifyCopySource
留言
服务器无法验证请求。请参阅 www-authenticate 标头中的信息。
我根据我找到的文章尝试了这里
我有相同的代码,但仍然收到此错误。我的存储网络也将我的 IP 列入了防火墙白名单。
这是我的 PowerShell 脚本:
$resourceGroupName = 'RG_DISKS'
$snapshotName = 'DATADISK1'
$resourceGroupNameStorageAccount = 'RG_DISKS'
$storageAccountName = 'STR_001'
$storageContainerName = 'STR_001_DISK1'
$destinationVHDFileName = 'DATADISK1_vhd'
$storageAccountKey = Get-AzStorageAccountKey -resourceGroupName $resourceGroupNameStorageAccount -AccountName $storageAccountName
$sas = Grant-AzSnapshotAccess -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName -DurationInSecond 3600 -Access Read
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey ($storageAccountKey).Value[0]
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName
我在这里缺少什么吗?
Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
上述错误消息“服务器无法对请求进行身份验证。www-authenticate 标头通常表示对 Azure 存储服务的请求未经过正确身份验证。
要解决此问题,请确保将 SAS 有效性设置为更长的值,例如 86400 秒。这将生成一个 24 小时有效的 SAS。
检查存储帐户和容器是否存在,以及您是否具有写入容器的正确权限。
检查存储帐户网络防火墙是否配置为允许来自公共 IP 地址的流量或启用来自所有网络的流量。
这里是 PowerShell 脚本,用于将快照下载到
Azure blob
。
$resourceGroupName = 'RG-Name'
$snapshotName = 'venkat-snapshot'
$resourceGroupNameStorageAccount = 'RG-Name'
$storageAccountName = 'venkatstoarage'
$storageContainerName = 'snapshot'
$destinationVHDFileName = 'DATADISK1_vhd'
$storageAccountKey = Get-AzStorageAccountKey -resourceGroupName $resourceGroupNameStorageAccount -AccountName $storageAccountName
$sas = Grant-AzSnapshotAccess -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName -DurationInSecond 86400 -Access Read
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey ($storageAccountKey).Value[0]
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName
storageAccountKey 权限
运行代码后,快照已开始复制到
Blob container
。