删除给定URI的Azure存储blob



我正在编写一个清除脚本,该脚本删除Azure映像及其底层存储blob。我可以用以下命令找到我的图像的存储blob:

az image list --query "[?name=='$IMAGE_NAME'] | [].storageProfile.osDisk.blobUri"

(这是bash,所以$IMAGE_NAME被替换为实际的图像名称(。上面命令的输出是URI的JSON列表,每个URI看起来像这样:

https://storage_account.blob.core.windows.net/container_name/blob_name.vhd

查看az存储blob删除的文档,我可以看出这个blob可以通过以下命令删除:

az storage blob delete --account-name storage_account --container container_name --name blob_name.vhd

因此,很明显,我可以解析URI,然后生成这个命令。然而,这似乎很奇怪:如果你不能使用Blob,那么给它们一个URI有什么意义?

所以我的问题是:

  1. 是否有直接的az-cli命令可以使用blob的URI删除blob
  2. 更好的是,有没有办法删除与给定Azure映像关联的blob

没有内置的CLI命令可以直接使用blob-url删除。有一种解决方法可以使用az rest来调用Delete Blob REST API。

access_token = $(az account get-access-token --resource https://storage.azure.com/ --query accessToken -o tsv)
now = $(env LANG=en_US TZ=GMT date '+%a, %d %b %Y %T %Z')
headers = "Authorization=Bearer "+$access_token+" x-ms-date="+$now+" x-ms-version=2020-08-04"
az rest --method delete --uri $blob_url --headers $headers 

相关内容

  • 没有找到相关文章

最新更新