Azure Cloud Shell 與 Azure CLI 的差別

Azure CLI 是一套指令工具。你需要把它下載並安裝在自己的電腦上。安裝後,你會使用自己電腦的處理器與記憶體來執行運算。

Azure Cloud Shell 是一個內建在 Azure 門戶網站上的線上終端機。它不需要在本地電腦安裝任何東西。它運作在微軟提供的雲端 Linux 容器中。


運作環境與資源

Azure CLI

這是在你的本地作業系統中執行。

它支援 Windows, macOS 與 Linux。

所有的指令執行都會消耗你本地電腦的硬體資源。

如果你的電腦網路斷線,你就無法連線到 Azure。

你需要手動更新版本。

Azure Cloud Shell

這是瀏覽器裡的一個虛擬環境。

微軟會幫你維護與更新。

它會自動幫你登入目前的 Azure 帳號。

它需要綁定一個 Azure 儲存體帳戶。

這個儲存體用來保存你的個人設定檔與腳本。


工具整合度

Azure CLI

它純粹就是 Azure 的管理指令。

如果你需要搭配其他工具,例如 Git 或 Terraform,你必須自己安裝到電腦上。

Azure Cloud Shell

它是一個預先配置好的工作環境。

裡面不僅包含 Azure CLI,還內建了許多熱門工具。

  • 系統工具:Git, vim, nano。
  • 部署工具:Terraform, Ansible。
  • 其他 CLI:kubectl, Helm。

它甚至內建了一個簡易的代碼編輯器。


總結與建議

兩者的核心指令語法完全相同。

az group create 在這兩個地方打出來,效果是一模一樣的。

如果你經常固定在同一台電腦工作,安裝 Azure CLI 會比較順手。

如果你臨時借用別人的電腦,或者使用平板電腦,Azure Cloud Shell 會是救星。


一個自動化建立資源的腳本範例

好的,這是一個簡單的 Azure CLI 腳本範例。它會幫你建立一個資源群組,並在裡面建立一個儲存體帳戶。

如果你是在 Azure Cloud Shell 執行,你不需要另外登入。如果你是在本地電腦的 Azure CLI 執行,請先輸入 az login 並完成驗證。

Bash

# 設定變數,方便後續修改
RESOURCE_GROUP="MyTestGroup"
LOCATION="eastus"
STORAGE_ACCOUNT="mystorage$(date +%s)"

# 1. 建立資源群組
az group create --name $RESOURCE_GROUP --location $LOCATION

# 2. 建立儲存體帳戶 (標準 LRS 等級)
az storage account create \
  --name $STORAGE_ACCOUNT \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --sku Standard_LRS

你可以直接把上面的程式碼複製並貼到終端機執行。執行完畢後,你可以到 Azure 入口網站確認資源是否出現。

這個腳本使用了變數來管理名稱。$(date +%s) 是為了讓儲存體名稱唯一。因為 Azure 的儲存體名稱必須是全球唯一的。


修改這個腳本,改為建立虛擬機或其他服務

這是一段建立 Linux 虛擬機(VM)的 Azure CLI 腳本。它會自動處理網路設定,包含虛擬網路、公用 IP 位址與安全性群組。

如果你使用 Azure Cloud Shell,可以直接貼上。如果你在本地電腦執行,記得先完成登入。

Bash

# 設定基本變數
RESOURCE_GROUP="MyVMGroup"
LOCATION="eastus"
VM_NAME="MyFirstVM"
ADMIN_USER="azureuser"

# 1. 建立資源群組
az group create --name $RESOURCE_GROUP --location $LOCATION

# 2. 建立虛擬機
# 此指令會自動產生 SSH 密鑰並開啟 22 號連接埠
az vm create \
  --resource-group $RESOURCE_GROUP \
  --name $VM_NAME \
  --image Ubuntu2204 \
  --admin-username $ADMIN_USER \
  --generate-ssh-keys \
  --public-ip-sku Standard

建立過程大約需要幾分鐘。完成後,終端機會回傳一個 JSON 格式的訊息。裡面包含 publicIpAddress。你可以直接用 SSH 連線進去。

這個腳本使用了預設的 Ubuntu 映像檔。如果你想改用 Windows Server 或者指定不同的機器規格,我也能幫你調整參數。


如何透過指令來查詢這台虛擬機的狀態

這是一個查詢虛擬機狀態的簡單腳本。它能幫你快速確認機器是否正在運行,並抓出連線所需的 IP 位址。

你可以在終端機輸入這段指令,系統會回傳目前的電源狀態與詳細資訊。

Bash

# 設定變數,對應剛才建立的資源
RESOURCE_GROUP="MyVMGroup"
VM_NAME="MyFirstVM"

# 1. 查詢虛擬機的電源狀態 (Running/Deallocating/Stopped)
az vm get-instance-view \
  --name $VM_NAME \
  --resource-group $RESOURCE_GROUP \
  --query instanceView.statuses[1].displayStatus \
  --output table

# 2. 取得公用 IP 位址
az vm list-ip-addresses \
  --resource-group $RESOURCE_GROUP \
  --name $VM_NAME \
  --output table

查詢狀態非常有幫助。如果你發現不需要用到機器了,記得輸入 az vm deallocate 來停止計費。雲端服務是按時計費的,養成不使用就關機的習慣能省下不少預算。

輸出結果會以表格呈現,看起來非常直觀。如果你想把這些資訊存成檔案,我們也可以改用 JSON 或 CSV 格式輸出。


如何把這個虛擬機的網頁埠打開,試著架設一個簡單的網頁伺服器

這是一個將虛擬機變成網頁伺服器的快速流程。我們需要先在 Azure 的網路安全群組(NSG)開啟 80 號連接埠(HTTP),然後在 Linux 裡面安裝 Nginx 服務。

你可以直接複製並依序執行這兩段指令。

Bash

# 設定變數
RESOURCE_GROUP="MyVMGroup"
VM_NAME="MyFirstVM"

# 1. 在 Azure 防火牆(NSG)開啟 HTTP 80 連接埠
az vm open-port \
  --resource-group $RESOURCE_GROUP \
  --name $VM_NAME \
  --port 80 \
  --priority 1010

# 2. 透過 Azure CLI 遠端發送指令安裝 Nginx
# 這讓你不必手動 SSH 進去,直接在外面就能下命令
az vm run-command invoke \
  --resource-group $RESOURCE_GROUP \
  --name $VM_NAME \
  --command-id RunShellScript \
  --scripts "sudo apt-get update && sudo apt-get install -y nginx"

執行完畢後,你可以再次使用 az vm list-ip-addresses 取得公用 IP。把那個 IP 貼到瀏覽器的網址列,你應該就能看到 Nginx 的預設歡迎頁面。

這種遠端執行指令的方式(run-command)非常強大。它適合用來做初步的環境配置,不需要頻繁切換視窗去處理 SSH 連線。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *