Azure CLI:为什么 AZ 命令因在 Azure 云中运行而在本地失败 Shell

Azure CLI: Why AZ command fails locally by runs in Azure Cloud Shell

az 命令在 Azure Cloud Shell 中使用 --query 运行s 列出存储帐户,但在本地 运行 时失败。

知道为什么吗?

我正在使用:

步骤:

本地工作(存储/无--查询):

az storage account list  --output tsv

在本地工作(容器/使用 --查询

az container list --query "[?contains(name, 'mycontainer2')]" --output tsv

在本地失败/在云中工作Shell(存储/使用--查询):

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

错误表明需要一些转义字符。没有运气找到带有转义字符的解决方案 + 它在云中工作 Shell,所以我认为这可能是一个误导性信息。

提前致谢

当运行在 PowerShell 中使用 Azure CLI 时,总是会出现一些转义问题,当 运行在 Azure Cloud Shell 中使用它时,即使您选择 PowerShell 而不是 Bash,它会工作,因为 Azure Cloud Shell 运行s 在 Linux 机器 Ubuntu 16.04 LTS 上,提到 here .

解决问题,每次都找转义符的解决方案不是长久之计,我建议你在Windows中使用Git Bash,只是运行命令在里面,然后就可以正常工作了。

此外,如果你的环境是Windows,你可以使用azure powershell directly, make sure you have installed the Az module,然后使用下面的命令。

Connect-AzAccount
(Get-AzStorageAccount | Where-Object {$_.StorageAccountName -like '*test*'}).StorageAccountName