微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure CLI:为什么 AZ 命令在 Azure Cloud Shell 中运行会在本地失败

如何解决Azure CLI:为什么 AZ 命令在 Azure Cloud Shell 中运行会在本地失败

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

知道为什么吗?

我正在使用:

  • Windows 10 电脑

  • Python 3.9.1 版

  • AZ CLI:2.23.0

步骤:

  • 管理员身份运行 PowerShell

  • 使用 az login 成功登录

  • 运行以下命令:

在本地工作(存储/无--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,直接在里面运行命令就可以了。

enter image description here

另外,如果您的环境是Windows,您可以直接使用azure powershell,确保您有installed the Az module,然后使用下面的命令。

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

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。