公開容器群組的靜態 IP 位址

本文說明如何使用 Azure 應用程式閘道公開容器群組的靜態公用 IP 位址。 請遵循以下步驟,在 Azure Container Instances 中執行外部對向容器化應用程式的靜態進入點。

在本文中,您會使用 Azure CLI 來建立此案例的資源:

  • Azure 虛擬網路
  • 部署在虛擬網路中且裝載小型 Web 應用程式的容器群組
  • 具有公用前端 IP 位址、在閘道上裝載網站的接聽程式,以及後端容器群組路由的應用程式閘道

只要應用程式閘道執行,而且容器群組會在網路的委派子網路中公開穩定的私人 IP 位址,容器群組即可在此公用 IP 位址存取。

注意

Azure 應用程式閘道 支援 HTTP、HTTPS、HTTP/2 和 WebSocket 通訊協定

應用程式閘道的 Azure 費用,取決於閘道佈建和可用的時間量,以及其處理的資料量。 請參閱定價

建立虛擬網路

在一般情況下,您可能已經有 Azure 虛擬網路。 如果您沒有,請依下列範例命令所示建立一個。 虛擬網路需要應用程式閘道和容器群組的個別子網路。

如果您有需要,請建立 Azure 資源群組。 例如:

az group create --name myResourceGroup --location eastus

請使用 az network vnet create 命令來建立虛擬網路。 此命令會在網路中建立 myAGSubnet 子網路。

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroup \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24

使用 az network vnet subnet create 命令來建立後端容器群組的子網路。 在這裡,其名稱為 myACISubnet

az network vnet subnet create \
  --name myACISubnet \
  --resource-group myResourceGroup \
  --vnet-name myVNet   \
  --address-prefix 10.0.2.0/24

使用 az network public-ip create 命令建立靜態公用 IP 資源。 在後續步驟中,此位址會設定為應用程式閘道的前端。

az network public-ip create \
  --resource-group myResourceGroup \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

建立容器群組

執行下列 az container create,在您上一個步驟設定的虛擬網路中建立容器群組。

群組會部署在 myACISubnet 子網路中,並包含名為 appcontainer 的單一執行個體來提取aci-helloworld映像。 如文件中其他文章所示,此映像會封裝以 Node.js 撰寫並提供靜態 HTML 網頁的小型 Web 應用程式。

az container create \
  --name appcontainer \
  --resource-group myResourceGroup \
  --image mcr.microsoft.com/azuredocs/aci-helloworld \
  --vnet myVNet \
  --subnet myACISubnet

成功部署時,容器群組會在虛擬網路中受指派為私人 IP 位址。 例如,執行下列 az container show 命令來擷取群組的 IP 位址:

az container show \
  --name appcontainer --resource-group myResourceGroup \
  --query ipAddress.ip --output tsv

輸出如下:10.0.2.4

若要在稍後的步驟中使用,請將 IP 位址儲存在環境變數中:

ACI_IP=$(az container show \
  --name appcontainer \
  --resource-group myResourceGroup \
  --query ipAddress.ip --output tsv)

重要

如果容器群組已停止、啟動或重新啟動,則容器群組的私人 IP 可能變更。 如果發生這種情況,您必須更新應用程式閘道設定。

建立應用程式閘道

遵循應用程式閘道快速入門中的步驟,在虛擬網路中建立應用程式閘道。 下列 az network application-gateway create 命令會建立具有公用前端 IP 位址和後端容器群組路由的閘道。 如需閘道設定詳細資訊,請參閱應用程式閘道文件

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroup \
  --capacity 2 \
  --sku Standard_v2 \
  --http-settings-protocol http \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$ACI_IP" \ 
  --priority 100

Azure 建立應用程式閘道最多可能需要 15 分鐘。

測試公用 IP 位址

現在,您可以測試應用程式閘道後方容器群組中執行的 Web 應用程式存取權。

執行 az network public-ip show 命令來擷取閘道的前端公用 IP 位址:

az network public-ip show \
--resource-group myresourcegroup \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv

輸出是公用 IP 位址,類似於:52.142.18.133

若要在成功設定時檢視執行中的 Web 應用程式,請在瀏覽器中瀏覽至閘道的公用 IP 位址。 成功的存取會類似:

顯示在 Azure 容器執行個體中執行之應用程式的瀏覽器螢幕擷取畫面

下一步

  • 請參閱快速入門範本 (英文),建立具有 WordPress 容器執行個體的容器群組,作為應用程式閘道後方的後端伺服器。
  • 您也可以設定包含 SSL 終止憑證的應用程式閘道。 請參閱概觀教學課程
  • 根據您的情節,也可以考慮使用其他 Azure 負載平衡解決方案搭配 Azure 容器執行個體。 例如使用 Azure 流量管理員將流量分散到跨區域的多個容器執行個體。 請參閱此 部落格文章