Sdílet prostřednictvím


Vytvoření vlastní sondy pro bránu Aplikace Azure lication pomocí PowerShellu pro Azure Resource Manager

V tomto článku přidáte vlastní sondu do existující aplikační brány pomocí PowerShellu. Vlastní testy jsou užitečné pro aplikace, které mají konkrétní stránku kontroly stavu nebo pro aplikace, které neposkytují úspěšnou odpověď na výchozí webovou aplikaci.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Požadavek: Instalace modulu Azure PowerShellu

Pokud chcete provést kroky v tomto článku, musíte nainstalovat a nakonfigurovat modul Azure PowerShellu. Ujistěte se, že dokončíte všechny pokyny. Po dokončení instalace se přihlaste do Azure a vyberte své předplatné.

Poznámka:

Účet Azure je potřeba k dokončení těchto kroků. Pokud účet Azure nemáte, můžete si zaregistrovat bezplatnou zkušební verzi.

Vytvoření aplikační brány s vlastní sondou

Přihlášení a vytvoření skupiny prostředků

  1. Slouží Connect-AzAccount k ověření.

    Connect-AzAccount
    
  2. Získejte předplatná pro účet.

    Get-AzSubscription
    
  3. Zvolte předplatné Azure, které chcete použít.

    Select-AzSubscription -Subscriptionid '{subscriptionGuid}'
    
  4. Vytvořte skupinu prostředků. Tento krok můžete přeskočit, pokud máte existující skupinu prostředků.

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

Azure Resource Manager vyžaduje, aby všechny skupiny prostředků určily umístění. Toto umístění slouží jako výchozí umístění pro prostředky v příslušné skupině prostředků. Ujistěte se, že všechny příkazy pro vytvoření aplikační brány používají stejnou skupinu prostředků.

V předchozím příkladu jsme vytvořili skupinu prostředků s názvem appgw-RG v umístění USA – západ.

Vytvoření virtuální sítě a podsítě

Následující příklad vytvoří virtuální síť a podsíť pro aplikační bránu. Application Gateway vyžaduje pro použití vlastní podsíť. Z tohoto důvodu by podsíť vytvořená pro aplikační bránu měla být menší než adresní prostor virtuální sítě, aby bylo možné vytvářet a používat jiné podsítě.

# 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]

Vytvoření veřejné IP adresy pro konfiguraci front-endu

Vytvořte prostředek veřejné IP adresy publicIP01 ve skupině prostředků appgw-rg pro oblast USA – západ. V tomto příkladu se používá veřejná IP adresa front-endové IP adresy aplikační brány. Služba Application Gateway vyžaduje, aby veřejná IP adresa měla dynamicky vytvořený název DNS, proto -DomainNameLabel se nedá zadat při vytváření veřejné IP adresy.

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

Vytvoření brány Application Gateway

Před vytvořením aplikační brány nastavíte všechny položky konfigurace. Následující příklad vytvoří položky konfigurace potřebné pro prostředek služby Application Gateway.

Součást Popis
Konfigurace IP adresy brány Konfigurace PROTOKOLU IP pro aplikační bránu
Back-endový fond Fond IP adres, plně kvalifikovaných názvů domén nebo síťových karet, které jsou na aplikačních serverech, které hostují webovou aplikaci
Sonda stavu Vlastní sonda sloužící ke sledování stavu členů back-endového fondu
Nastavení HTTP Kolekce nastavení, včetně portu, protokolu, spřažení na základě souborů cookie, sondy a časového limitu. Tato nastavení určují, jak se provoz směruje do členů back-endového fondu.
Front-endový port Port, na který aplikační brána naslouchá provozu
Naslouchací proces Kombinace protokolu, konfigurace front-endových IP adres a front-endového portu. To naslouchá příchozím požadavkům.
Pravidlo Směruje provoz do příslušného back-endu na základě nastavení 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

Přidání testu do existující služby Application Gateway

Následující fragment kódu přidá sondu do existující aplikační brány.

# 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

Odebrání testu z existující aplikační brány

Následující fragment kódu odebere sondu z existující aplikační brány.

# 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

Získání názvu DNS služby Application Gateway

Po vytvoření brány je dalším krokem konfigurace front-endu pro komunikaci. Pokud používáte veřejnou IP adresu, služba Application Gateway vyžaduje dynamicky přiřazený název DNS, který není popisný. Pokud chcete zajistit, aby se koncoví uživatelé mohli dostat ke službě Application Gateway, můžete použít záznam CNAME sloužící k odkazovaní na veřejný koncový bod služby Application Gateway. Konfigurace vlastního názvu domény pro cloudovou službu Azure. Budete muset načíst podrobnosti o službě Application Gateway a název její přidružené IP adresy nebo DNS, a to pomocí elementu PublicIPAddress připojeného ke službě Application Gateway. Název DNS služby Application Gateway byste měli použít k vytvoření záznamu CNAME, který tyto dvě webové aplikace odkazuje na tento název DNS. Použití záznamů A se nedoporučuje z toho důvodu, že virtuální IP adresa se může změnit při restartování služby Application Gateway.

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

Další kroky

Informace o konfiguraci přesměrování zpracování PROTOKOLU TLS najdete v tématu: Konfigurace přesměrování zpracování PROTOKOLU TLS