我创建了一个名为“mystore”的 Azure 存储帐户和一个名为“backups”的容器。我想为我的 WebApp“ABCWebApp”创建一个备份服务,该服务将使用以下 Azure CLI 命令使用此容器:
az webapp config backup create --resource-group resXXX --webapp-name ABCWebApp --container-url JJJJ
问题:如何使用 Azure CLI 命令获取 --container-url(即 JJJJ)?
我使用 Portal UI 创建备份服务,然后使用以下 CLI 命令获取其存储帐户 URL,我推测该 URL 与我需要的 --container-url 的值相同。
az webapp config backup list --resource-group resXXX --webapp-name ABCWebApp
返回的url格式为:
"storageAccountUrl": "https://mystore.blob.core.windows.net/backups?sp=rwdl&st=2020-09-10T13:44:36Z&se=2294-06-25T13:44:36Z&sv=2019-12-12&sr=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
如何在不先使用门户创建备份服务的情况下使用 CLI 命令获得相同功能?
答案1
容器网址(JJJJ)由帐户名称和容器名称以及附加的共享访问签名(SAS)组成 - 即
https://[account name].blob.core.windows.net/[container name]?SAS.
因此,我真正需要知道的是如何为我的容器获取 SAS。为此,我首先需要获取 account-key,该 key 在由以下代码返回的连接字符串中返回:
az storage account show-connection-string --name mystore --resource-group resXXX
然后我可以使用以下命令创建 SAS,其中 KKKK 是上述命令返回的帐户密钥
az storage container generate-sas --account-key KKKK --account-name mystore --name backups --start '2020-09-18' --expiry '2120-01-01' --permissions rwdl
然后将此命令返回的 SAS 附加到 url:
https://mystore.blob.core.windows.net/backups?st=2020-09-18&se=2120-01-01&sp=rwdl&sv=2018-11-09&sr=c&sig=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
这是 JJJJ,即我为我的 webapp 创建备份所需的 --acount-url
az webapp config backup create --resource-group resXXX --webapp-name ABCWebApp --container-url JJJJ