[英]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.