The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

Azure CLI 2.0 新手上路指南

算一算 Azure 也用了快 9 年,由於用的大多是 PaaS 服務,許多服務大多只要設定一次,然後設定完 CI/CD 就全部自動化了,因此很少有機會去學習 CLI 命令列工具使用。但最近碰 IaaS 比較多一些,所以有認真的玩了一下新版的 Azure CLI 2.0 命令列介面,本篇文章將分享幾個新手上路的注意事項與相關學習資源。

要開始上手 Azure CLI 2.0 的使用,其實最好的文件就在 Azure CLI 2.0 | Microsoft Docs 官方文件庫中,全中文的翻譯,幾乎沒有什麼進入障礙。

 

建立 Azure CLI 2.0 命令列環境

基本上目前有兩種執行 Azure CLI 2.0 的方式:

  1. 透過 Azure Cloud Shell 在瀏覽器中使用,直接登入 Azure Portal 就可以立即開始使用。
  2. 透過安裝 az 工具在命令提示字元下使用,目前支援 macOS、Linux 和 Windows 作業系統。
    • 在 Windows 平台安裝 az 我強烈建議你在 WSL ( Windows Subsystem on Linux ) 環境下安裝,會比在 Windows 命令提示字元下好用很多。
    • 在 WSL 環境下,輸入 az 之後,按下兩個 Tab 鍵都會自動顯示參數建議,非常方便喔!

查詢 az 版本

az -v

登入 Azure 身分

az login

登入 Azure 身分 (直接帳號密碼登入)

此命令不適用於微軟帳戶與已啟用二階段驗證的帳戶

az login -u <username> -p <password> 

登入 Azure 身分 (使用 Service Principal 身分登入)

az login --service-principal -u "http://my-app" -p <password> --tenant <tenant>
az login --service-principal -u "userid" -p "password" --tenant "tenantId"

查詢目前選中的訂用帳戶

az account show

列出所有訂用帳戶

az account list
az account list -o table

列出所有訂用帳戶 (重新載入清單)

如果你已經登入成功,登入之後才加入權限的訂閱不會自動更新訂用帳戶清單,你必須加上 --refresh 才會更新!

az account list -o table --refresh

設定預設訂用帳戶

az account set --subscription "SubscriptionId"

進入互動模式 ( 對初學者來說相當實用 )

az interactive

常用快速鍵:

  • F1            Layout
  • F2           Defaults
  • F3           Keys
  • Ctrl+D    Quit
  • Ctrl+L     Clear Screen

查詢 Azure 資源可以建立的所在區域

az account list-locations -o table

建立資源群組

az group create --name myResourceGroup --location eastus

刪除資源群組

az group delete --name myResourceGroup

列出所有此訂閱的使用者角色

az role assignment list --all -o table

列出所有 VM 清單

az vm list --out table

列出所有 VM 清單 ( 使用 JMESPath 查詢語法 )

az vm list --query [*].[name,resourceGroup] --out table

列出所有 VM 清單 ( 使用 JMESPath 查詢語法 ) (自訂欄位名稱)

az vm list --query "[].{RGName:resourceGroup, VMName:name}" --out table

列出所有 VM 清單 ( 使用 JMESPath 查詢語法 ) (自訂欄位名稱並選取第二層屬性顯示)

az vm list --query "[].{VMName:name,OSType:storageProfile.osDisk.osType}" --out table

列出所有 VM 清單 ( 使用 JMESPath 查詢語法 ) (使用 contains 篩選資料)

az vm list --query "[?contains(resourceGroup,'RGD')].{ resource: resourceGroup, name: name }" --out table

az vm list --query "[?contains(hardwareProfile.vmSize, 'Standard_DS1')]" --out table

 

相關連結

留言評論