如何解决Azure CLI:为什么 AZ 命令在 Azure Cloud Shell 中运行会在本地失败
使用 --query 列出存储帐户的 az 命令在 Azure Cloud Shell 中运行,但在本地运行时失败。
知道为什么吗?
我正在使用:
-
Windows 10 电脑
-
Python 3.9.1 版
-
AZ CLI:2.23.0
步骤:
在本地工作(存储/无--query):
az storage account list --output tsv
在本地工作(容器/带有 --query)
az container list --query "[?contains(name,'mycontainer2')]" --output tsv
在本地失败/在 Cloud Shell 中工作(存储/使用 --query):
az storage account list --query "[?contains(name,'terraformXX')].name" --output tsv
异常:
].name 此时出乎意料。
C:\WINDOWS\system32> "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\..\python.exe" -IBm azure.cli 存储帐户列表 --query [?contains (name,'terraformXX')].name --output tsv
该错误表明需要一些转义字符。找不到带有转义字符的解决方案 + 它在 Cloud Shell 中有效,所以我认为可能是一个误导性消息。
提前致谢
解决方法
在 PowerShell 中运行 Azure CLI 时,总会出现一些转义问题,在 Azure Cloud Shell 中运行时,即使您选择 PowerShell
而不是 Bash
,它也会工作,因为 Azure Cloud Shell 运行在 Linux 机器 Ubuntu 16.04 LTS
上,提到了 here。
为了解决这个问题,每次都找个有转义字符的解决方案不是长久之计,我建议你在Windows下使用Git Bash,直接在里面运行命令就可以了。
另外,如果您的环境是Windows,您可以直接使用azure powershell,确保您有installed the Az
module,然后使用下面的命令。
Connect-AzAccount
(Get-AzStorageAccount | Where-Object {$_.StorageAccountName -like '*test*'}).StorageAccountName
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。