Udostępnij za pośrednictwem


Tworzenie niestandardowej sondy dla bramy aplikacja systemu Azure przy użyciu programu PowerShell dla usługi Azure Resource Manager

W tym artykule dodasz sondę niestandardową do istniejącej bramy aplikacji przy użyciu programu PowerShell. Niestandardowe sondy są przydatne w przypadku aplikacji, które mają określoną stronę sprawdzania kondycji lub aplikacje, które nie zapewniają pomyślnej odpowiedzi w domyślnej aplikacji internetowej.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, 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.

Wymagania wstępne: Instalacja modułu Azure PowerShell

Aby wykonać kroki opisane w tym artykule, musisz zainstalować i skonfigurować moduł Azure PowerShell. Pamiętaj, aby wykonać wszystkie instrukcje. Po zakończeniu instalacji zaloguj się do platformy Azure i wybierz swoją subskrypcję.

Uwaga

Do wykonania tych kroków jest potrzebne konto platformy Azure. Jeśli nie masz konta platformy Azure, możesz skorzystać z bezpłatnej wersji próbnej.

Tworzenie bramy aplikacji z sondą niestandardową

Zaloguj się i utwórz grupę zasobów

  1. Użyj Connect-AzAccount polecenia , aby się uwierzytelnić.

    Connect-AzAccount
    
  2. Pobierz subskrypcje dla konta.

    Get-AzSubscription
    
  3. Wybierz subskrypcję platformy Azure do użycia.

    Select-AzSubscription -Subscriptionid '{subscriptionGuid}'
    
  4. Utwórz grupę zasobów. Jeśli masz istniejącą grupę zasobów, możesz pominąć ten krok.

    New-AzResourceGroup -Name appgw-rg -Location 'West US'
    

Usługa Azure Resource Manager wymaga, żeby wszystkie grupy zasobów miały lokalizację. Ta lokalizacja będzie używana jako domyślna lokalizacja dla zasobów w danej grupie zasobów. Upewnij się, że wszystkie polecenia do utworzenia bramy aplikacji używają tej samej grupy zasobów.

W poprzednim przykładzie utworzyliśmy grupę zasobów o nazwie appgw-RG w lokalizacji Zachodnie stany USA.

Tworzenie sieci wirtualnej i podsieci

Poniższy przykład tworzy sieć wirtualną i podsieć dla bramy aplikacji. Usługa Application Gateway wymaga własnej podsieci do użycia. Z tego powodu podsieć utworzona dla bramy aplikacji powinna być mniejsza niż przestrzeń adresowa sieci wirtualnej, aby umożliwić tworzenie i używanie innych podsieci.

# Assign the address range 10.0.0.0/24 to a subnet variable to be used to create a virtual network.
$subnet = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

# Create a virtual network named appgwvnet in resource group appgw-rg for the West US region using the prefix 10.0.0.0/16 with subnet 10.0.0.0/24.
$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $subnet

# Assign a subnet variable for the next steps, which create an application gateway.
$subnet = $vnet.Subnets[0]

Tworzenie publicznego adresu IP dla konfiguracji frontonu

Utwórz zasób publicznego adresu IP publicIP01 w grupie zasobów appgw-rg dla regionu Zachodnie stany USA. W tym przykładzie użyto publicznego adresu IP dla adresu IP frontonu bramy aplikacji. Usługa Application Gateway wymaga, aby publiczny adres IP miał dynamicznie utworzoną nazwę DNS, dlatego -DomainNameLabel nie można określić jej podczas tworzenia publicznego adresu IP.

$publicip = New-AzPublicIpAddress -ResourceGroupName appgw-rg -Name publicIP01 -Location 'West US' -AllocationMethod Dynamic

Tworzenie bramy aplikacji

Przed utworzeniem bramy aplikacji skonfigurujesz wszystkie elementy konfiguracji. Poniższy przykład tworzy elementy konfiguracji, które są wymagane dla zasobu bramy aplikacji.

Składnik Opis
Konfiguracja adresu IP bramy Konfiguracja adresu IP dla bramy aplikacji.
Pula zaplecza Pula adresów IP, nazw FQDN lub kart sieciowych, które znajdują się na serwerach aplikacji hostujących aplikację internetową
Sonda kondycji Niestandardowa sonda używana do monitorowania kondycji elementów członkowskich puli zaplecza
Ustawienia protokołu HTTP Kolekcja ustawień, w tym port, protokół, koligacja oparta na plikach cookie, sonda i limit czasu. Te ustawienia określają sposób kierowania ruchu do składowych puli zaplecza
Port frontonu Port, na który brama aplikacji nasłuchuje ruchu
Odbiornik Połączenie protokołu, konfiguracji adresu IP frontonu i portu frontonu. To właśnie nasłuchuje żądań przychodzących.
Reguła Kieruje ruch do odpowiedniego zaplecza na podstawie ustawień PROTOKOŁU HTTP.
# Creates an application gateway Frontend IP configuration named gatewayIP01
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

#Creates a backend IP address pool named pool01 with IP addresses 134.170.185.46, 134.170.188.221, 134.170.185.50.
$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221, 134.170.185.50

# Creates a probe that will check health at http://contoso.com/path/path.htm
$probe = New-AzApplicationGatewayProbeConfig -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/path.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8

# Creates the backend http settings to be used. This component references the $probe created in the previous command.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 80

# Creates a frontend port for the application gateway to listen on port 80 that will be used by the listener.
$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01 -Port 80

# Creates a frontend IP configuration. This associates the $publicip variable defined previously with the frontend IP that will be used by the listener.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip

# Creates the listener. The listener is a combination of protocol and the frontend IP configuration $fipconfig and frontend port $fp created in previous steps.
$listener = New-AzApplicationGatewayHttpListener -Name listener01  -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

# Creates the rule that routes traffic to the backend pools.  In this example we create a basic rule that uses the previous defined http settings and backend address pool.  It also associates the listener to the rule
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

# Sets the SKU of the application gateway, in this example we create a small standard application gateway with 2 instances.
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2

# The final step creates the application gateway with all the previously defined components.
$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location 'West US' -BackendAddressPools $pool -Probes $probe -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

Dodawanie sondy do istniejącej bramy aplikacji

Poniższy fragment kodu dodaje sondę do istniejącej bramy aplikacji.

# Load the application gateway resource into a PowerShell variable by using Get-AzApplicationGateway.
$getgw =  Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

# Create the probe object that will check health at http://contoso.com/path/path.htm
$probe = Add-AzApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/custompath.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8

# Set the backend HTTP settings to use the new probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 120

# Save the application gateway with the configuration changes
Set-AzApplicationGateway -ApplicationGateway $getgw

Usuwanie sondy z istniejącej bramy aplikacji

Poniższy fragment kodu usuwa sondę z istniejącej bramy aplikacji.

# Load the application gateway resource into a PowerShell variable by using Get-AzApplicationGateway.
$getgw =  Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

# Remove the probe from the application gateway configuration object
$getgw = Remove-AzApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name $getgw.Probes.name

# Set the backend HTTP settings to remove the reference to the probe. The backend http settings now use the default probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol http -CookieBasedAffinity Disabled

# Save the application gateway with the configuration changes
Set-AzApplicationGateway -ApplicationGateway $getgw

Pobieranie nazwy DNS bramy aplikacji

Po utworzeniu bramy następnym krokiem jest skonfigurowanie frontonu na potrzeby komunikacji. W przypadku korzystania z publicznego adresu IP brama aplikacji wymaga dynamicznie przypisanej nazwy DNS, która nie jest przyjazna. Aby upewnić się, że użytkownicy końcowi mogą trafić bramę aplikacji, można użyć rekordu CNAME w celu wskazania publicznego punktu końcowego bramy aplikacji. Konfigurowanie niestandardowej nazwy domeny dla platformy Azure. Aby to zrobić, pobierz szczegóły bramy aplikacji i skojarzony adres IP oraz nazwę DNS, używając elementu PublicIPAddress dołączonego do bramy aplikacji. Nazwa DNS bramy aplikacji powinna zostać użyta w celu utworzenia rekordu CNAME, który wskazuje dwóm aplikacjom internetowym tę nazwę DNS. Korzystanie z rekordów A nie jest zalecane, ponieważ adres VIP może ulec zmianie po ponownym uruchomieniu bramy aplikacji.

Get-AzPublicIpAddress -ResourceGroupName appgw-RG -Name publicIP01
Name                     : publicIP01
ResourceGroupName        : appgw-RG
Location                 : westus
Id                       : /subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag                     : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid             : 00000000-0000-0000-0000-000000000000
ProvisioningState        : Succeeded
Tags                     : 
PublicIpAllocationMethod : Dynamic
IpAddress                : xx.xx.xxx.xx
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : {
                                "Id": "/subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/applicationGateways/appgwtest/frontendIP
                            Configurations/frontend1"
                            }
DnsSettings              : {
                                "Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
                            }

Następne kroki

Dowiedz się, jak skonfigurować odciążanie protokołu TLS, odwiedzając stronę Konfigurowanie odciążania protokołu TLS