簡體   English   中英

Azure CLI:為什么 AZ 命令在 Azure 雲 Shell 中運行在本地失敗

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

使用--query列出存儲帳戶的 az 命令在 Azure 雲 Shell 中運行,但在本地運行時失敗。

知道為什么嗎?

我在用:

  • Windows 10PC

  • 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

在本地失敗/在雲中工作 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,所以我認為這可能是一個誤導性消息。

提前致謝

When running Azure CLI in PowerShell, there always some escape issues, when running it in Azure Cloud Shell, even if you choose PowerShell instead of Bash , it will work, as Azure Cloud Shell runs on a Linux machine Ubuntu 16.04 LTS , mentioned here .

為了解決這個問題,每次都找到一個帶有轉義字符的解決方案不是一個長期的計划,我建議你使用Windows中的 Git Bash ,然后在其中運行命令即可。

在此處輸入圖像描述

另外,如果你的環境是Windows,你可以直接使用azure powershell ,確保你已經安裝了Az模塊,然后使用下面的命令。

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

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM