App Service integreren met Application Gateway met behulp van CLI

Met dit voorbeeldscript maakt u een Azure App Service web-app, een virtueel Azure-netwerk en een toepassingsgateway. Vervolgens wordt het verkeer voor de web-app beperkt tot alleen afkomstig uit het subnet van de toepassingsgateway.

Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.

Vereisten

Voorbeeldscript

Azure Cloud Shell starten

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.

Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook openen in een afzonderlijk browsertabblad door naar https://shell.azure.com te gaan.

Wanneer Cloud Shell wordt geopend, controleert u of Bash is geselecteerd voor uw omgeving. Volgende sessies gebruiken Azure CLI in een Bash-omgeving, selecteer Kopiëren om de codeblokken te kopiëren, plak deze in het Cloud Shell en druk op Enter om deze uit te voeren.

Aanmelden bij Azure

Cloud Shell automatisch wordt geverifieerd onder het initiële account waarmee is aangemeld. Gebruik het volgende script om u aan te melden met een ander abonnement, waarbij u uw Azure-abonnements-id <Subscription ID> vervangt. Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Zie Voor meer informatie het instellen van een actief abonnement of het interactief aanmelden

Het script uitvoeren

# Integrate App Service with Application Gateway
# set -e # exit if error
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-app-service-rg-$randomIdentifier"
tag="integrate-with-app-gateway.sh"
vNet="msdocs-app-service-vnet-$randomIdentifier"
subnet="msdocs-app-service-subnet-$randomIdentifier"
appServicePlan="msdocs-app-service-plan-$randomIdentifier"
webapp="msdocs-web-app-$randomIdentifier"
appGateway="msdocs-app-gateway-$randomIdentifier"
publicIpAddress="msdocs-public-ip-$randomIdentifier"

# Create a resource group.
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag

# Create network resources
az network vnet create --resource-group $resourceGroup --name $vNet --location "$location" --address-prefix 10.0.0.0/16 --subnet-name $subnet --subnet-prefix 10.0.1.0/24

az network public-ip create --resource-group $resourceGroup --location "$location" --name $publicIpAddress --dns-name $webapp --sku Standard --zone 1

# Create an App Service plan in `S1` tier
echo "Creating $appServicePlan"
az appservice plan create --name $appServicePlan --resource-group $resourceGroup --sku S1

# Create a web app.
echo "Creating $webapp"
az webapp create --name $webapp --resource-group $resourceGroup --plan $appServicePlan

appFqdn=$(az webapp show --name $webapp --resource-group $resourceGroup --query defaultHostName -o tsv)

# Create an Application Gateway
az network application-gateway create --resource-group $resourceGroup --name $appGateway --location "$location" --vnet-name $vNet --subnet $subnet --min-capacity 2 --sku Standard_v2 --http-settings-cookie-based-affinity Disabled --frontend-port 80 --http-settings-port 80 --http-settings-protocol Http --public-ip-address $publicIpAddress --servers $appFqdn

az network application-gateway http-settings update --resource-group $resourceGroup --gateway-name $appGateway --name appGatewayBackendHttpSettings --host-name-from-backend-pool

# Apply Access Restriction to Web App
az webapp config access-restriction add --resource-group $resourceGroup --name $webapp --priority 200 --rule-name gateway-access --subnet $subnet --vnet-name $vNet

# Get the App Gateway Fqdn
az network public-ip show --resource-group $resourceGroup --name $publicIpAddress --query {AppGatewayFqdn:dnsSettings.fqdn} --output table

Resources opschonen

Gebruik de volgende opdracht om de resourcegroep en alle resources die eraan zijn gekoppeld te verwijderen met behulp van de opdracht az group delete , tenzij u deze resources voortdurend nodig hebt. Het kan even duren voordat een aantal van deze resources is gemaakt en dat deze kunnen worden verwijderd.

az group delete --name $resourceGroup

Voorbeeldverwijzing

In dit script worden de volgende opdrachten gebruikt voor het maken van een resourcegroep, App Service-app, Cosmos DB en alle gerelateerde resources. Elke opdracht in de tabel is een koppeling naar specifieke documentatie over de opdracht.

Opdracht Opmerkingen
az group create Hiermee maakt u een resourcegroep waarin alle resources worden opgeslagen.
az network vnet create Hiermee maakt u een virtueel netwerk.
az network public-ip create Hiermee maakt u een openbaar IP-adres.
az network public-ip show Details van een openbaar IP-adres weergeven.
az appservice plan create Hiermee maakt u een App Service-plan.
az webapp create Hiermee maakt u een App Service-web-app.
az webapp show Details van een App Service-web-app weergeven.
az webapp config access-restriction add Hiermee voegt u een toegangsbeperking toe aan de App Service-web-app.
az network application-gateway create Hiermee maakt u een toepassingsgateway.
az network application-gateway http-settings update Hiermee werkt u HTTP-instellingen van Application Gateway bij.

Volgende stappen

Raadpleeg de documentatie van Azure CLI voor meer informatie over de Azure CLI.

Meer voorbeelden van App Service CLI-scripts vindt u in de documentatie van Azure App Service.