【转】Azure 命令行工具大混战,都是什么,该选哪个?
導語
最近在學習 Azure 的命令行工具,發現官方有不止一種命令行工具,容易對新手產生混淆,本文將介紹各種工具都是干啥的,以及如何選擇。
目前,微軟官方有3個Azure命令行工具,分別是:
- Azure CLI
- Azure PowerShell - Az Module
- Azure PowerShell - AzureRM
它們的歷史和作用各有不同。
Azure CLI
Azure CLI 是一個跨平臺的命令行程序,可連接到 Azure 并對 Azure 資源執行管理命令。例如,若要創建 VM,可使用如下命令:
az vm create \
--resource-group CrmTestingResourceGroup \
--name CrmUnitTests \
--image UbuntuLTS
...
可通過兩種方式使用 Azure CLI:通過 Azure Cloud Shell 在瀏覽器內使用或安裝在本地 Linux、Mac 或 Windows 計算機上使用。通過這兩種方式,均可以交互方式或編寫腳本的方式使用 Azure CLI。若要以交互方式使用,請先在 Windows 上啟動 cmd.exe 等 shell 或是在 Linux 或 macOS 上啟動Bash,然后在 shell 提示符處發出命令。若要自動執行重復性任務,請使用所選 shell 腳本語法將命令配置到 shell 腳本中,然后執行該腳本。
(以上內容摘自 Microsoft Learn 官方免費學習平臺)
Azure PowerShell
Azure PowerShell 是可添加到 Windows PowerShell 或 PowerShell Core 的模塊,可用于連接 Azure 訂閱并管理資源。Azure PowerShell 需通過 PowerShell 才能運行。PowerShell 提供 shell 窗口、命令解析等服務。Azure PowerShell 可添加特定于 Azure 的命令。
例如,Azure PowerShell 提供了可在 Azure 訂閱中創建虛擬機的 New-AzVM 命令。若要使用 Azure PowerShell,請啟動 PowerShell 應用程序,然后發出如下命令:
New-AzVm `
-ResourceGroupName "CrmTestingResourceGroup" `
-Name "CrmUnitTests" `
-Image "UbuntuLTS"
...
同樣可通過兩種方式使用 Azure PowerShell:通過 Azure Cloud Shell 在瀏覽器內使用或安裝在本地 Linux、Mac 或 Windows 計算機上使用。對于這兩種方式,均有兩種模式可供選擇??稍诮换ツJ较率褂?#xff0c;一次手動發出一個命令;也可在腳本模式下使用,執行包含多個命令的腳本。
(以上內容摘自 Microsoft Learn 官方免費學習平臺)
然而,Azure PowerShell 里其實有兩種:Az模塊和AzureRM,這是兩套不同的命令行工具,但功能非常重合。這一點在 Microsoft Learn 官網上并沒有提到。
Az 模塊
此新模塊是采用 .NET Standard 從頭開始編寫的。 由于采用了 .NET Standard,Azure PowerShell 可以在 Windows 上的 PowerShell 5.1 下運行,也可以在任何平臺上的 PowerShell Core 6.x 及更高版本下運行。Az 模塊現在是通過 PowerShell 與 Azure 進行交互的首選方式。AzureRM 將繼續進行 bug 修復,但不會再收到新功能。
(摘自微軟官網文檔 https://docs.microsoft.com/zh-CN/powershell/azure/overview?view=azps-2.5.0)
AzureRM
這實際上就是多年前的 Windows Azure PowerShell,我在2014年的博客文章里介紹過。但因為已經被微軟官方遺棄,所以新學習 Azure 的讀者,現在可以完全無視 AzureRM 這套 PowerShell 工具,也不用去看使用這個工具的文章。
有關遷移到 Az 模塊的文檔和所有變更,都可以在上面的微軟官網文檔里找到。
如何選擇
現在,我們的命令行選項其實只剩下了 Azure CLI 以及 Azure PowerShell (Az 模塊),如何選擇用哪個工具呢?
依然摘錄 Microsoft Learn 官方免費學習平臺 里的說明:
就可管理的 Azure 對象及可創建的配置而言,門戶、Azure CLI 和 Azure PowerShell 大致上是相同的。三者也都是跨平臺的工具。這就意味著在選擇時,通常要考慮其他幾個因素:
- 自動化:是否需要自動執行一系列復雜的或重復性任務?Azure PowerShell 和 Azure CLI 支持自動化,而門戶則不支持。
- 學習曲線:是否需要在不學習新命令或語法的情況下快速完成任務?使用 Azure 門戶,無需學習語法或記住命令。使用 Azure PowerShell 和 Azure CLI 時,必須了解所使用的每個命令的詳細語法。
- 團隊技能組:團隊是否擁有現成的專業知識?例如,團隊可能使用過 PowerShell 來管理 Windows。若是如此,團隊成員可快速熟練使用 Azure PowerShell。
示例
回想一下,你正在選擇管理工具來為 CRM 應用程序創建測試環境。你的管理員需要執行兩項特定的 Azure 任務:
若要創建資源組,可以選擇 Azure 門戶。這些是一次性任務,無需使用腳本來執行。
確定創建 VM 的最佳工具則更具挑戰。你需要創建數個 VM 并且需要重復創建,可能每周要創建幾次。這就意味著你需要自動化,因此 Azure 門戶并非一個好的選擇。在這種情況下,Azure PowerShell 或 Azure CLI 可滿足你的需求。如果團隊成員擁有現成的 PowerShell 知識,那么 Azure PowerShell 可能就是最佳選擇。Azure PowerShell 可在管理團隊使用的各種操作系統上運行,可支持自動化,且團隊很容易上手。
大多數管理員首次接觸 Azure 時都是使用的門戶。這是一個很好的起點,因為門戶提供了一個干凈的、結構清晰的圖形界面,但限制了自動化選項。如果需要自動化,Azure 提供了兩個選項:Azure PowerShell 適用于具有 PowerShell 經驗的管理員;Azure CLI 適用于其他所有人。
在實踐中,企業通常既有一次性任務,也有重復性任務。這就意味著通常需要同時使用門戶和腳本解決方案。在我們的 CRM 示例中,通過門戶創建資源組,并使用 PowerShell 自動創建 VM,這樣做是合適的。
總結
以上是生活随笔為你收集整理的【转】Azure 命令行工具大混战,都是什么,该选哪个?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】visual studio 201
- 下一篇: 网申信用卡被拒后能马上柜台申吗