Creare un gateway applicazione con l'interfaccia della riga di comando di AzureCreate an application gateway using the Azure CLI

È possibile usare l'interfaccia della riga di comando di Azure per creare o gestire i gateway applicazione dalla riga di comando o in script.You can use the Azure CLI to create or manage application gateways from the command line or in scripts. In questa guida introduttiva viene illustrato come creare risorse di rete, server back-end e un gateway applicazione.This quickstart shows you how to create network resources, backend servers, and an application gateway.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.It has common Azure tools preinstalled and configured to use with your account. È sufficiente fare clic su Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Esistono alcuni modi per avviare Cloud Shell:There are a few ways to launch the Cloud Shell:

Fare clic su Prova nell'angolo superiore destro di un blocco di codice.Click Try It in the upper right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/bashhttps://shell.azure.com/bash
Fare clic sul pulsante Cloud Shell nel menu in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper right of the Azure portal. Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa guida introduttiva è necessario eseguire l'interfaccia della riga di comando di Azure versione 2.0.4 o successiva.If you choose to install and use the CLI locally, this quickstart requires that you run the Azure CLI version 2.0.4 or later. Per trovare la versione, eseguire az --version.To find the version, run az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Creare un gruppo di risorseCreate a resource group

Creare un gruppo di risorse usando az group create.Create a resource group using az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.An Azure resource group is a logical container into which Azure resources are deployed and managed.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroupAG nella località eastus.The following example creates a resource group named myResourceGroupAG in the eastus location.

az group create --name myResourceGroupAG --location eastus

Creare risorse di reteCreate network resources

Creare la rete virtuale e la subnet usando il comando az network vnet create.Create the virtual network and subnet using az network vnet create. Creare l'indirizzo IP pubblico usando il comando az network public-ip create.Create the public IP address using az network public-ip create.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24
az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet   \
  --address-prefix 10.0.2.0/24
az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress

Creare i server back-endCreate backend servers

In questo esempio vengono create due macchine virtuali da usare come server back-end per il gateway applicazione.In this example, you create two virtual machines to be used as backend servers for the application gateway. È inoltre possibile installare NGINX nelle macchine virtuali per verificare l'avvenuta creazione del gateway applicazione.You also install NGINX on the virtual machines to verify that the application gateway was successfully created.

Creare due macchine virtualiCreate two virtual machines

È possibile usare un file di configurazione cloud-init per installare NGINX ed eseguire un'app Node.js "Hello World" in una macchina virtuale Linux.You can use a cloud-init configuration file to install NGINX and run a 'Hello World' Node.js app on a Linux virtual machine. Nella shell corrente creare un file denominato cloud-init.txt e incollare la configurazione seguente.In your current shell, create a file named cloud-init.txt and copy and paste the following configuration into the shell. Assicurarsi che l'intero file cloud-init venga copiato correttamente, in particolare la prima riga:Make sure that you copy the whole cloud-init file correctly, especially the first line:

#cloud-config
package_upgrade: true
packages:
  - nginx
  - nodejs
  - npm
write_files:
  - owner: www-data:www-data
  - path: /etc/nginx/sites-available/default
    content: |
      server {
        listen 80;
        location / {
          proxy_pass http://localhost:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
      }
  - owner: azureuser:azureuser
  - path: /home/azureuser/myapp/index.js
    content: |
      var express = require('express')
      var app = express()
      var os = require('os');
      app.get('/', function (req, res) {
        res.send('Hello World from host ' + os.hostname() + '!')
      })
      app.listen(3000, function () {
        console.log('Hello world app listening on port 3000!')
      })
runcmd:
  - service nginx restart
  - cd "/home/azureuser/myapp"
  - npm init
  - npm install express -y
  - nodejs index.js

Creare l'interfaccia di rete con il comando az network nic create.Create the network interfaces with az network nic create. Creare le macchine virtuali con il comando az vm create.Create the virtual machines with az vm create.

for i in `seq 1 2`; do
  az network nic create \
    --resource-group myResourceGroupAG \
    --name myNic$i \
    --vnet-name myVNet \
    --subnet myBackendSubnet
  az vm create \
    --resource-group myResourceGroupAG \
    --name myVM$i \
    --nics myNic$i \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys \
    --custom-data cloud-init.txt
done

Creare il gateway applicazioneCreate the application gateway

Creare un gateway applicazione con il comando az network application-gateway create.Create an application gateway using az network application-gateway create. Quando si crea un gateway applicazione usando l'interfaccia della riga di comando di Azure, specificare le informazioni di configurazione, ad esempio le impostazioni relative a capacità, SKU e HTTP.When you create an application gateway using the Azure CLI, you specify configuration information, such as capacity, sku, and HTTP settings. Gli indirizzi IP privati delle interfacce di rete vengono aggiunti come server nel pool back-end del gateway applicazione.The private IP addresses of the network interfaces are added as servers in the backend pool of the application gateway.

address1=$(az network nic show --name myNic1 --resource-group myResourceGroupAG | grep "\"privateIpAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
address2=$(az network nic show --name myNic2 --resource-group myResourceGroupAG | grep "\"privateIpAddress\":" | grep -oE '[^ ]+$' | tr -d '",')
az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --capacity 2 \
  --sku Standard_Medium \
  --http-settings-cookie-based-affinity Enabled \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$address1" "$address2"

Il processo di creazione del gateway applicazione può richiedere alcuni minuti.It may take several minutes for the application gateway to be created. Dopo aver creato il gateway applicazione, saranno disponibili le funzionalità seguenti:After the application gateway is created, you can see these features of it:

  • appGatewayBackendPool: un gateway applicazione deve avere almeno un pool di indirizzi back-end.appGatewayBackendPool - An application gateway must have at least one backend address pool.
  • appGatewayBackendHttpSettings: specifica che per le comunicazioni vengono usati la porta 80 e il protocollo HTTP.appGatewayBackendHttpSettings - Specifies that port 80 and an HTTP protocol is used for communication.
  • appGatewayHttpListener: il listener predefinito associato ad appGatewayBackendPool.appGatewayHttpListener - The default listener associated with appGatewayBackendPool.
  • appGatewayFrontendIP: assegna myAGPublicIPAddress ad appGatewayHttpListener.appGatewayFrontendIP - Assigns myAGPublicIPAddress to appGatewayHttpListener.
  • rule1: regola di routing predefinita associata ad appGatewayHttpListener.rule1 - The default routing rule that is associated with appGatewayHttpListener.

Testare il gateway applicazioneTest the application gateway

Per ottenere l'indirizzo IP pubblico del gateway applicazione, usare az network public-ip show.To get the public IP address of the application gateway, use az network public-ip show. Copiare l'indirizzo IP pubblico e quindi incollarlo nella barra degli indirizzi del browser.Copy the public IP address, and then paste it into the address bar of your browser.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Testare il gateway applicazione

Pulire le risorseClean up resources

Quando non sono più necessari, è possibile eliminare il gruppo di risorse, il gateway applicazione e tutte le risorse correlate con il comando az group delete.When no longer needed, you can use the az group delete command to remove the resource group, application gateway, and all related resources.

az group delete --name myResourceGroupAG

Passaggi successiviNext steps

In questa guida introduttiva sono stati creati un gruppo di risorse, le risorse di rete e i server back-end.In this quickstart, you created a resource group, network resources, and backend servers. Tali risorse sono state quindi usate per creare un gateway applicazione.You then used those resources to create an application gateway. Per altre informazioni sui gateway applicazione e sulle risorse associate, continuare con le procedure dettagliate.To learn more about application gateways and their associated resources, continue to the how-to articles.