Szybki start: bezpośredni ruch internetowy za pomocą Azure Application Gateway użyciu Azure PowerShell

W tym przewodniku Szybki start użyjemy Azure PowerShell do utworzenia bramy aplikacji. Następnie przetestuj go, aby upewnić się, że działa prawidłowo.

Brama aplikacji kieruje ruch internetowy aplikacji do określonych zasobów w puli zaplecza. Odbiorniki można przypisywać do portów, tworzyć reguły i dodawać zasoby do puli zaplecza. Dla uproszczenia w tym artykule użyto prostej konfiguracji z publicznym adresem IP frontonia, podstawowym odbiornikiem do hostowania pojedynczej lokacji w bramie aplikacji, podstawową regułą routingu żądań i dwiema maszynami wirtualnymi w puli zaplecza.

Możesz również ukończyć ten przewodnik Szybki start przy użyciu interfejsu wiersza polecenia platformy Azure lub Azure Portal.

Wymagania wstępne

Używanie usługi Azure Cloud Shell

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod z tego artykułu bez konieczności instalowania narzędzi w środowisku lokalnym, można użyć wstępnie zainstalowanych poleceń środowiska Cloud Shell.

Aby uruchomić środowisko Azure Cloud Shell:

Opcja Przykład/link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu. Wybranie pozycji Wypróbuj nie spowoduje automatycznego skopiowania kodu do środowiska Cloud Shell. Przykład funkcji Wypróbuj w środowisku Azure Cloud Shell
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Uruchamianie środowiska Cloud Shell w nowym oknie
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Przycisk Cloud Shell w witrynie Azure Portal

Aby uruchomić kod z tego artykułu w środowisku Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu, aby skopiować kod.

  3. Wklej kod w sesji Cloud Shell, naciskając klawisze Ctrl+Shift+V w systemach Windows i Linux lub klawisze Cmd+Shift+V w systemie macOS.

  4. Naciśnij klawisz Enter, aby uruchomić kod.

Uwaga

Ten artykuł został zaktualizowany o korzystanie z modułu Azure Az programu PowerShell. Moduł Az programu PowerShell jest zalecanym modułem programu PowerShell na potrzeby interakcji z platformą Azure. Aby rozpocząć pracę z modułem Azure PowerShell, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Nawiązywanie połączenia z usługą Azure

Aby nawiązać połączenie z platformą Azure, Connect-AzAccount uruchom .

Tworzenie grupy zasobów

Na platformie Azure możesz przydzielić powiązane zasoby do grupy zasobów. Możesz użyć istniejącej grupy zasobów lub utworzyć nową.

Aby utworzyć nową grupę zasobów, użyj New-AzResourceGroup polecenia cmdlet :

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Tworzenie zasobów sieciowych

Do komunikacji między tworzonymi zasobami platforma Azure potrzebuje sieci wirtualnej. Podsieć bramy aplikacji może zawierać tylko bramy aplikacji. Inne zasoby nie są dozwolone. Możesz utworzyć nową podsieć dla Application Gateway lub użyć istniejącej. W tym przykładzie tworzysz dwie podsieci: jedną dla bramy aplikacji i drugą dla serwerów zaplecza. Możesz skonfigurować adres IP frontonie usługi Application Gateway jako publiczny lub prywatny zgodnie ze swoim przypadekem użycia. W tym przykładzie wybierzesz publiczny adres IP frontonia.

  1. Utwórz konfiguracje podsieci przy użyciu narzędzia New-AzVirtualNetworkSubnetConfig .
  2. Utwórz sieć wirtualną z konfiguracjami podsieci przy New-AzVirtualNetwork użyciu .
  3. Utwórz publiczny adres IP przy New-AzPublicIpAddress użyciu .

Uwaga

Zasady punktu końcowego usługi dla sieci wirtualnej nie są obecnie obsługiwane Application Gateway podsieci.

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

Tworzenie bramy aplikacji

Tworzenie konfiguracji adresów IP i portu frontonu

  1. Użyj New-AzApplicationGatewayIPConfiguration programu , aby utworzyć konfigurację, która kojarzy utworzoną podsieć z bramą aplikacji.
  2. Użyj New-AzApplicationGatewayFrontendIPConfig programu , aby utworzyć konfigurację, która przypisuje publiczny adres IP utworzony wcześniej dla bramy aplikacji.
  3. Użyj New-AzApplicationGatewayFrontendPort , aby przypisać port 80 w celu uzyskania dostępu do bramy aplikacji.
$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

Tworzenie puli zaplecza

  1. Użyj New-AzApplicationGatewayBackendAddressPool , aby utworzyć pulę zaplecza dla bramy aplikacji. Pula zaplecza jest na razie pusta. Podczas tworzenia karty sieciowej serwera zaplecza w następnej sekcji dodasz je do puli zaplecza.
  2. Skonfiguruj ustawienia dla puli zaplecza za pomocą New-AzApplicationGatewayBackendHttpSetting .
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Tworzenie odbiornika i dodawanie reguły

Platforma Azure wymaga odbiornika, aby brama aplikacji mogła właściwie kierować ruch do puli zaplecza. Platforma Azure wymaga również reguły, aby odbiornik wiedział, której puli zaplecza używać dla ruchu przychodzącego.

  1. Utwórz odbiornik przy użyciu wcześniej utworzonej konfiguracji i portu New-AzApplicationGatewayHttpListener frontendu.
  2. Użyj New-AzApplicationGatewayRequestRoutingRule , aby utworzyć regułę o nazwie rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

Tworzenie bramy aplikacji

Teraz po utworzeniu niezbędnych zasobów pomocniczych utwórz bramę aplikacji:

  1. Użyj New-AzApplicationGatewaySku polecenia , aby określić parametry bramy aplikacji.
  2. Użyj New-AzApplicationGateway , aby utworzyć bramę aplikacji.
$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

Serwery zaplecza

Teraz, po utworzeniu Application Gateway, utwórz maszyny wirtualne zaplecza, które będą hostować witryny sieci Web. Zaplecza mogą składać się z karty sieciowe, zestawy skalowania maszyn wirtualnych, publiczny adres IP, wewnętrzny adres IP, w pełni kwalifikowane nazwy domen (FQDN) i wielodostępne zaplecza, takie jak Azure App Service.

W tym przykładzie utworzysz dwie maszyny wirtualne, które będą używane jako serwery zaplecza dla bramy aplikacji. Zainstalujesz również usługi IIS na maszynach wirtualnych, aby sprawdzić, czy platforma Azure pomyślnie utworzyła bramę aplikacji.

Tworzenie dwóch maszyn wirtualnych

  1. Pobierz ostatnio utworzoną konfigurację Application Gateway zaplecza za Get-AzApplicationGatewayBackendAddressPool pomocą .
  2. Utwórz interfejs sieciowy za New-AzNetworkInterface pomocą .
  3. Utwórz konfigurację maszyny wirtualnej za pomocą programu New-AzVMConfig .
  4. Utwórz maszynę wirtualną za New-AzVM pomocą .

Po uruchomieniu następującego przykładowego kodu w celu utworzenia maszyn wirtualnych na platformie Azure zostanie wyświetlony monit o podanie poświadczeń. Wprowadź nazwę użytkownika i hasło:

$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
}

Testowanie bramy aplikacji

Chociaż usługi IIS nie są wymagane do utworzenia bramy aplikacji, zainstalowano je w tym przewodniku Szybki start, aby sprawdzić, czy platforma Azure pomyślnie utworzyła bramę aplikacji.

Użyj usług do przetestowania bramy aplikacji:

  1. Uruchom Get-AzPublicIPAddress , aby uzyskać publiczny adres IP bramy aplikacji.
  2. Skopiuj i wklej publiczny adres IP na pasku adresu przeglądarki. Po odświeżeniu przeglądarki powinna zostać wyświetlona nazwa maszyny wirtualnej. Prawidłowa odpowiedź sprawdza, czy brama aplikacji została pomyślnie utworzona i może pomyślnie nawiązać połączenie z zaplecza.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Testowanie bramy aplikacji

Czyszczenie zasobów

Jeśli nie potrzebujesz już zasobów utworzonych za pomocą bramy aplikacji, usuń grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie bramy aplikacji i wszystkich powiązanych z nią zasobów.

Aby usunąć grupę zasobów, wywołaj Remove-AzResourceGroup polecenie cmdlet :

Remove-AzResourceGroup -Name myResourceGroupAG

Następne kroki