選擇正確的命令列工具
您在 Azure 入口網站中採取的每個動作,都會轉譯為幕後對 API 執行程式碼以建立、讀取、更新或刪除 Azure 資源的行為。 Azure 命令列工具是 API 的包裝函式,可讓您大規模自動佈建 Azure 資源。
Azure 中的自動化選項
Azure 資源的自動化常會使用四種命令列工具:Azure CLI、Azure PowerShell、Bicep 和 Terraform。
這些工具有何不同?
Azure CLI、Azure PowerShell、Bicep 和 Terraform 有相似之處,但各有其不同的優勢。 由於您的工作是佈建 Azure 儲存體,哪些工具功能可在您的環境中提供最佳優勢?
下表列出各個 Azure 命令列工具的功能。 在此表格中:
- 圖示表示該功能
true
適用於指定的命令列工具。 - 圖示表示該功能
false
適用於指定的命令列工具。
功能 | Azure CLI | Azure PowerShell | Bicep | Terraform |
---|---|---|---|---|
命令式 IaC | ||||
宣告式 IaC | ||||
Azure 原生 | ||||
雲端中立 | ||||
可在 Windows、Linux 和 macOS 上執行 | ||||
可建立、編輯和刪除 Azure 儲存體資源 |
深入了解每項工具。 Azure CLI 與 Azure PowerShell 以及 Bicep 與 Terraform 的哪些功能適合在您的環境中使用?
Azure CLI 與 Azure PowerShell
Azure CLI 和 Azure PowerShell 屬於命令列工具,可讓您建立及管理 Azure 資源。
Azure CLI
- 是可在 Windows、Linux 和 macOS 上安裝的跨平台命令列介面
- 可在 Azure Cloud Shell、PowerShell、Bash、
Cmd.exe
或 Docker 容器中執行 - 以 Python 為基礎
- 預設為輸出 JSON 字串,但也有其他格式選項可用,例如資料表、YAML 和 TSV
- 可讓您使用 JMESPath 查詢語法來查詢命令輸出。
- 使用在群組 (例如
az vm
) 和子群組 (例如az vm disk
) 中組織的命令 - 具有遵循簡單
reference name -command -parameter -parameter value
模式的語法 - 支援非同步作業
Azure PowerShell
- 是在 Windows、Linux 和 macOS 上執行的跨平台 PowerShell 模組
- 可在 PowerShell、Azure Cloud Shell 或 Docker 容器中本機執行
- 以 .NET Standard 為基礎
- 提供索引標籤完成和預測性 IntelliSense
- 傳回 .NET 物件
- 使用
Verb-Noun
命令名稱以便進行探索
Bicep 與 Terraform
Bicep
Bicep 是使用宣告式語法來部署 Azure 資源的特定領域語言 (DSL)。 您會在 Bicep 檔案中定義要部署至 Azure 的基礎結構。 接著在整個開發生命週期中,使用該檔案來部署基礎結構。 您的資源會以一致的方式進行部署。
Bicep 提供簡潔的語法、可靠的類型安全,並支援程式碼重複使用。 Bicep 為您在 Azure 中的 IaC 解決方案提供了良好的製作體驗。
Terraform
HashiCorp Terraform 是開放原始碼 IaC 工具,可用來佈建和管理雲端基礎結構。 它會在描述拓撲所需狀態的組態檔中制訂基礎結構。 Terraform 可讓您使用 Terraform 提供者來管理任何基礎結構,例如公用雲端、私人雲端和軟體即服務 (SaaS) 服務。
哪一項 Azure 命令列工具適合您使用?
挑選工具時,請考量過去的經驗和目前的工作環境。 以下是您選項的摘要:
- Azure CLI 語法類似 Bash 指令碼。
- Azure PowerShell 是 PowerShell 模組。 命令遵循
Verb-Noun
命名配置,而資料以物件形式傳回。 - Bicep 是使用宣告式語法來部署 Azure 資源的 DSL。
- Terraform 是開放原始碼 IaC 工具,可用來佈建和管理雲端基礎結構。
選擇使用您所屬經驗的工具,縮短您的學習曲線。 開放思維必然能改善您的能力。 條件適當時,請使用不同的工具。