分享方式:


快速入門:使用 Azure PowerShell 藉由 Azure 應用程式閘道引導網路流量

在本快速入門中,您會使用 Azure PowerShell 來建立應用程式閘道。 然後,您會進行測試以確定能正常運作。

應用程式閘道會將應用程式 Web 流量導向至後端集區中的特定資源。 您可以將接聽程式指派給連接埠、建立規則,並將資源新增至後端集區。 為了簡單起見,本文使用簡單的設定,包括公用前端 IP 位址、在此應用程式閘道上裝載單一網站的基本接聽程式、基本的要求路由規則,以及後端集區中的兩部虛擬機器。

快速入門設定的概念圖。

您也可以使用 Azure CLIAzure 入口網站完成本快速入門。

注意

應用程式閘道前端現在可支援雙堆疊 IP 位址 (預覽版)。 您現在可以建立最多四個前端 IP 位址,包括兩個 IPv4 位址 (公用和私人) 與兩個 IPv6 位址 (公用和私人)。

必要條件

Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 Enter 鍵執行程式碼或命令。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

連接到 Azure

若要與 Azure 連線,請執行 Connect-AzAccount

建立資源群組

在 Azure 中,您可以將相關資源配置到資源群組。 您可以使用現有的資源群組,或建立一個新的群組。

使用 New-AzResourceGroup Cmdlet 建立新的資源群組:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

建立網路資源

Azure 需要虛擬網路才能在您所建立的資源之間進行通訊。 應用程式閘道子網路只能包含應用程式閘道。 不允許任何其他資源。 您可以為應用程式閘道建立新的子網路,或使用現有的子網路。 在此範例中您會建立兩個子網路:一個用於應用程式閘道,另一個用於後端伺服器。 您可以根據自己的使用案例,將應用程式閘道的前端 IP 位址設定為「公用」或「私人」。 在此範例中,您會選擇公用前端 IP 位址。

  1. 使用 New-AzVirtualNetworkSubnetConfig 建立子網路組態。
  2. 使用 New-AzVirtualNetwork 以子網路組態建立虛擬網路。
  3. 使用 New-AzPublicIpAddress 建立公用 IP 位址。

注意

應用程式閘道子網路中目前不支援虛擬網路服務端點原則

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

建立應用程式閘道

此範例會使用標準 v2 SKU。

建立 IP 設定與前端連接埠

  1. 使用 New-AzApplicationGatewayIPConfiguration,建立讓您先前建立的子網路與應用程式閘道產生關聯的組態。
  2. 使用 New-AzApplicationGatewayFrontendIPConfig,建立會將您先前建立的公用 IP 位址指派給應用程式閘道的組態。
  3. 使用 New-AzApplicationGatewayFrontendPort 指派連接埠 80 來存取應用程式閘道。
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip    = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress 
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

注意

應用程式閘道前端現在可支援雙堆疊 IP 位址 (公開預覽)。 您現在可以建立最多四個前端 IP 位址,包括兩個 IPv4 位址 (公用和私人) 與兩個 IPv6 位址 (公用和私人)。

建立後端集區

  1. 使用 New-AzApplicationGatewayBackendAddressPool 來建立應用程式閘道的後端集區。 後端集區現在空白。 您在下一節中建立後端伺服器 NIC 時,會將其新增至後端集區。
  2. 使用 New-AzApplicationGatewayBackendHttpSetting 設定後端集區的各項設定。
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

建立接聽程式並新增規則

Azure 需要接聽程式才能讓應用程式閘道將流量適當地路由到後端集區。 Azure 也需要接聽程式的規則,以得知要對傳入的流量使用哪個後端集區。

  1. 使用 New-AzApplicationGatewayHttpListener 以及您先前建立的前端設定和前端連接埠,來建立接聽程式。
  2. 使用 New-AzApplicationGatewayRequestRoutingRule 建立名為 rule1 的規則。
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

建立應用程式閘道

您已建立必要的支援資源,接著請建立應用程式閘道:

  1. 使用 New-AzApplicationGatewaySku 指定應用程式閘道的參數。
  2. 使用 New-AzApplicationGateway 建立應用程式閘道。
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

提示

您可以修改 NameTier 參數的值,以使用不同的 SKU。 例如: Basic

後端伺服器

現在您已建立應用程式閘道,接著請建立將裝載網站的後端虛擬機器。 後端可以包含 NIC、虛擬機器擴展集、公用 IP 位址、內部 IP 位址、完整網域名稱 (FQDN),以及多租用戶後端,例如 Azure App Service。

在此範例中,您會建立兩個虛擬機器,作為應用程式閘道的後端伺服器。 您也可以在虛擬機器上安裝 IIS,以確認 Azure 已成功建立應用程式閘道。

建立兩部虛擬機器

  1. 使用 Get-AzApplicationGatewayBackendAddressPool 取得最近建立的應用程式閘道後端集區設定。
  2. 使用 New-AzNetworkInterface 建立網路介面。
  3. 使用 New-AzVMConfig 建立虛擬機器組態。
  4. 使用 New-AzVM 建立虛擬機器。

當您執行下列程式碼範例以建立虛擬機器時,Azure 會提示您輸入認證。 輸入使用者名稱和密碼:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

測試應用程式閘道

雖然不需要 IIS 即可建立應用程式閘道,但您仍會在本快速入門中加以安裝,以確認 Azure 是否已成功建立應用程式閘道。

使用 IIS 測試應用程式閘道:

  1. 執行 Get-AzPublicIPAddress 以取得應用程式閘道的公用 IP 位址。
  2. 將公用 IP 位址複製並貼到瀏覽器的網址列中。 當您重新整理瀏覽器時,應該會看到虛擬機器的名稱。 有效的回應會確認應用程式閘道已成功建立,並可與後端順利連線。
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

測試應用程式閘道

清除資源

當您不再需要先前為應用程式閘道建立的資源時,請刪除資源群組。 當您刪除資源群組時,也可以刪除應用程式閘道及其所有相關資源。

呼叫 Remove-AzResourceGroup Cmdlet 以刪除資源群組:

Remove-AzResourceGroup -Name myResourceGroupAG

下一步