Egyéni mintavétel létrehozása Azure-alkalmazás Gatewayhez az Azure Resource Managerhez készült PowerShell használatával

Ebben a cikkben egyéni mintavételt ad hozzá egy meglévő alkalmazásátjáróhoz a PowerShell használatával. Az egyéni mintavételek olyan alkalmazások esetében hasznosak, amelyek egy adott állapot-ellenőrzési oldallal rendelkeznek, vagy olyan alkalmazások esetében, amelyek nem adnak sikeres választ az alapértelmezett webalkalmazásban.

Megjegyzés:

We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

Előfeltétel: az Azure PowerShell modul telepítése

A cikkben leírt lépések elvégzéséhez telepítenie és konfigurálnia kell az Azure PowerShell modult. Ügyeljen arra, hogy kövesse az összes utasítást. A telepítés befejezése után jelentkezzen be az Azure-ba, és válassza ki az előfizetését.

Megjegyzés:

A lépések elvégzéséhez szüksége lesz egy Azure-fiókra. Ha nincs Azure-fiókja, regisztráljon egy ingyenes próbaverzióra.

Application Gateway létrehozása egyéni mintavétellel

Bejelentkezés és erőforráscsoport létrehozása

  1. Hitelesítésre használható Connect-AzAccount .

    Connect-AzAccount
    
  2. Szerezze be a fiók előfizetéseit.

    Get-AzSubscription
    
  3. Válassza ki, hogy melyek Azure-előfizetését használja.

    Select-AzSubscription -Subscriptionid '{subscriptionGuid}'
    
  4. Hozzon létre egy erőforráscsoportot. Ezt a lépést kihagyhatja, ha van egy meglévő erőforráscsoportja.

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

Az Azure Resource Manager megköveteli, hogy minden erőforráscsoport adjon meg egy helyet. Ez a hely lesz az erőforráscsoport erőforrásainak alapértelmezett helye. Győződjön meg arról, hogy az application gateway létrehozásához használt összes parancs ugyanazt az erőforráscsoportot használja.

Az előző példában létrehoztunk egy appgw-RG nevű erőforráscsoportot az USA nyugati régiójában.

Hozzon létre egy virtuális hálózatot és egy alhálózatot

Az alábbi példa létrehoz egy virtuális hálózatot és egy alhálózatot az Application Gateway számára. Az Application Gateway használatához saját alhálózat szükséges. Ezért az Application Gateway számára létrehozott alhálózatnak kisebbnek kell lennie, mint a virtuális hálózat címtere, hogy más alhálózatokat is létre lehessen hozni és használni.

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

Nyilvános IP-cím létrehozása az előtérbeli konfigurációhoz

Hozzon létre egy publicIP01 nevű, nyilvános IP-címhez tartozó erőforrást az appgw-rg nevű erőforráscsoportban, az USA nyugati régiójában. Ez a példa egy nyilvános IP-címet használ az application gateway előtérbeli IP-címéhez. Az Application Gateway megköveteli, hogy a nyilvános IP-cím dinamikusan létrehozott DNS-névvel rendelkezzen, ezért a -DomainNameLabel nyilvános IP-cím létrehozásakor nem adható meg.

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

Application Gateway létrehozása

Az application gateway létrehozása előtt minden konfigurációelemet be kell állítania. Az alábbi példa az Application Gateway-erőforráshoz szükséges konfigurációelemeket hozza létre.

Komponens Ismertetés
Átjáró IP-konfigurációja Egy alkalmazásátjáró IP-konfigurációja.
Háttérkészlet A webalkalmazást üzemeltető alkalmazáskiszolgálók ip-címeinek, teljes tartományneveinek vagy hálózati adaptereinek készlete
Állapotteszt A háttérkészlet tagjainak állapotának figyelésére szolgáló egyéni mintavétel
HTTP-beállítások Beállítások gyűjteménye, beleértve a portot, a protokollt, a cookie-alapú affinitást, a mintavételt és az időtúllépést. Ezek a beállítások határozzák meg, hogy a rendszer hogyan irányítja a forgalmat a háttérkészlet tagjaihoz
Előtérbeli port Az a port, amelyen az Application Gateway figyeli a forgalmat
Figyelő A protokoll, az előtérbeli IP-konfiguráció és az előtérbeli port kombinációja. Ez figyeli a bejövő kéréseket.
Szabály A forgalmat a HTTP-beállítások alapján a megfelelő háttérrendszerre irányítja.
# 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

Mintavétel hozzáadása meglévő alkalmazásátjáróhoz

Az alábbi kódrészlet egy mintavételt ad hozzá egy meglévő application Gatewayhez.

# 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

Mintavétel eltávolítása egy meglévő application gatewayről

Az alábbi kódrészlet eltávolít egy mintavételt egy meglévő application Gatewayből.

# 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

Az Application Gateway DNS-nevének beszerzése

Az átjáró létrehozása után a következő lépés a kommunikációra szolgáló előtér konfigurálása. Nyilvános IP-cím használata esetén az Application Gateway dinamikusan hozzárendelt DNS-nevet igényel, ami nem barátságos. Ha szeretné, hogy a végfelhasználók elérjék az Application Gatewayt, használjon egy Application Gateway nyilvános végpontjára mutató CNAME-rekordot. Egyéni tartománynév konfigurálása az Azure-ban. A művelet végrehajtásához az Application Gateway részleteinek beszerzésére és a kapcsolódó IP/DNS-név lekérésére van szükség az Application Gatewayhez csatolt PublicIPAddress használatával. Az Application Gateway DNS-nevének használatával létrehozhat egy CNAME rekordot, amely a két webalkalmazást erre a DNS-névre irányítja. Az A-bejegyzések használata nem javasolt, mivel a virtuális IP-cím változhat az Application Gateway újraindításakor.

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

Következő lépések

További információ a TLS-kiszervezés konfigurálásához: TLS-kiszervezés konfigurálása