Esercizio: Creare un sito Web di Azure usando l'interfaccia della riga di comando

Completato

Successivamente, si userà l'interfaccia della riga di comando di Azure per creare un gruppo di risorse e quindi distribuire un'app Web in tale gruppo di risorse.

La sandbox gratuita consente di creare risorse in un subset delle aree globali di Azure. Selezionare un'area nell'elenco durante la creazione delle risorse:

  • westus2
  • Stati Uniti centro-meridionali
  • centralus
  • eastus
  • westeurope
  • Asia sud-orientale
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia

Usare un gruppo di risorse

Quando si usano il proprio computer e la propria sottoscrizione di Azure, è necessario accedere ad Azure tramite il comando az login. Non è invece necessario eseguire l'accesso quando si usa l'ambiente sandbox Cloud Shell basato sul browser.

A questo punto, normalmente si creerebbe un gruppo di risorse per tutte le risorse di Azure correlate con un comando az group create, ma per questo esercizio è stato creato il gruppo di risorse seguente: [nome gruppo di risorse sandbox].

Nota

Per questo esercizio si usa l'area Stati Uniti orientali. Se si verifica un problema durante la creazione del piano di servizio dell’app, selezionare un'area diversa dall'elenco precedente.

  1. Il primo passaggio di questo esercizio consiste nel creare diverse variabili da utilizzare nei comandi successivi:

    export RESOURCE_GROUP=<rgn>[sandbox resource group name]</rgn>
    export AZURE_REGION=eastus
    export AZURE_APP_PLAN=popupappplan-$RANDOM
    export AZURE_WEB_APP=popupwebapp-$RANDOM
    
  2. È possibile elencare tutti i gruppi di risorse presenti in una tabella usando l'interfaccia della riga di comando di Azure. Poiché si usa un ambiente sandbox di Azure gratuito, dovrebbe essere presente un solo gruppo di risorse:

    az group list --output table
    

    Suggerimento

    È possibile usare il pulsante Copia per copiare i comandi negli Appunti. Per incollare, fare clic con il pulsante destro del mouse su una nuova riga nel terminale di Cloud Shell e scegliere Incolla oppure usare i tasti di scelta rapida MAIUSC+INS (⌘+V in macOS).

  3. Con lo sviluppo di altri elementi di Azure è possibile che vengano aggiunti vari gruppi di risorse. Se nell'elenco di gruppi sono presenti vari elementi, è possibile filtrare i valori restituiti aggiungendo un'opzione --query. Provare il comando riportato di seguito:

    az group list --query "[?name == '$RESOURCE_GROUP']"
    

    La query viene formattata usando JMESPath, che è un linguaggio di query standard per richieste JSON. Altre informazioni su questo linguaggio di filtro avanzato si possono trovare all'indirizzo http://jmespath.org/. Nel modulo Gestire macchine virtuali con l'interfaccia della riga di comando di Azure vengono analizzate le query in modo più approfondito.

Procedura per creare un piano di servizio

Quando si eseguono app Web usando il servizio app di Azure, si paga per le risorse di calcolo di Azure usate dall'app e i costi delle risorse dipendono dal piano di servizio app associato alle app Web. I piani di servizio determinano l'area usata per il data center dell'app, il numero di macchine virtuali usate e il piano tariffario.

  1. Creare un piano di servizio app per eseguire l'app. Il comando seguente specifica il piano tariffario gratuito, ma è possibile eseguire az appservice plan create --help per visualizzare gli altri piani tariffari.

    Nota

    I nomi delle app e dei piani devono essere univoci in tutto Azure. Le variabili create in precedenza assegneranno valori casuali come suffissi per assicurare che siano univoci. Tuttavia, se si riceve un errore durante la creazione di una o più risorse, occorre eseguire i comandi elencati in precedenza per reimpostare tutte le variabili con i nuovi valori casuali.

    Se viene visualizzato un errore relativo al gruppo di risorse, eseguire i comandi elencati in precedenza con un valore del gruppo di risorse diverso.

    az appservice plan create --name $AZURE_APP_PLAN --resource-group $RESOURCE_GROUP --location $AZURE_REGION --sku FREE
    

    Il completamento di questo comando può richiedere alcuni minuti.

  2. Verificare che il piano di servizio sia stato creato correttamente elencando tutti i piani in una tabella:

    az appservice plan list --output table
    

    Si dovrebbe ottenere una risposta simile all'esempio seguente:

    Kind    Location    MaximumNumberOfWorkers    Name                NumberOfSites    ResourceGroup                               Status
    ------  ----------  ------------------------  ------------------  ---------------  ------------------------------------------  --------
    app     East US     3                         popupappplan-54321  0                Learn-12345678-1234-1234-1234-123456789abc  Ready
    

Creare un'app Web

A questo punto occorre creare l'app Web nel piano di servizio. È possibile distribuire il codice allo stesso tempo, ma per questo esempio la creazione dell'app Web e la distribuzione del codice verranno eseguiti come passaggi distinti.

  1. Per creare l'app Web, specificare il nome dell'app Web e il nome del piano dell'app creato in precedenza. Allo stesso modo del nome del piano dell'app, il nome dell'app Web deve essere univoco. Le variabili create in precedenza assegnano valori casuali che dovrebbero essere sufficienti per questo esercizio. Il completamento del comando può richiedere alcuni minuti.

    az webapp create --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --plan $AZURE_APP_PLAN
    
  2. Verificare che l'app sia stata creata correttamente elencando tutte le app in una tabella:

    az webapp list --output table
    

    Si dovrebbe ottenere una risposta simile all'esempio seguente:

    Name               Location    State    ResourceGroup                               DefaultHostName                      AppServicePlan
    -----------------  ----------  -------  ------------------------------------------  -----------------------------------  ------------------
    popupwebapp-12345  East US  Running  Learn-12345678-1234-1234-1234-123456789abc  popupwebapp-12345.azurewebsites.net  popupappplan-54321
    

    Prendere nota dell'elemento DefaultHostName elencato nella tabella perché si tratta dell'URL per il nuovo sito Web. Azure rende disponibile il sito Web tramite il nome app univoco nel dominio azurewebsites.net. Se ad esempio il nome del sito è "popupwebapp-12345", l'URL del sito Web sarà: http://popupwebapp-12345.azurewebsites.net. Si può anche usare lo script seguente per restituire l'indirizzo HTTP:

    site="http://$AZURE_WEB_APP.azurewebsites.net"
    echo $site
    
  3. Per ottenere il codice HTML predefinito dell'app di esempio, usare CURL con DefaultHostName:

    curl $AZURE_WEB_APP.azurewebsites.net
    

    Si dovrebbe ottenere una risposta simile all'esempio seguente:

    <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Microsoft Azure App Service - Welcome</title><link rel="shortcut icon" href="https://appservice.azureedge.net/images/app-service/v4/favicon.ico" type="image/x-icon"/><link href="https://appservice.azureedge.net/css/app-service/v4/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"/><style>html, body{height: 100%; background-color: #ffffff; color: #000000; font-size: 13px;}*{border-radius: 0 !important;}</style> ... (continued)
    

Distribuire il codice da GitHub

  1. Il passaggio finale consiste nel distribuire il codice da un repository GitHub all'app Web. Si userà una pagina PHP di base disponibile nel repository GitHub di esempi di Azure che visualizza "HelloWorld!" quando viene eseguita. Assicurarsi di usare il nome dell'app Web creata. Il completamento del comando può richiedere alcuni minuti.

    az webapp deployment source config --name $AZURE_WEB_APP --resource-group $RESOURCE_GROUP --repo-url "https://github.com/Azure-Samples/php-docs-hello-world" --branch master --manual-integration
    
  2. Dopo la distribuzione, accedere nuovamente al sito con un browser o tramite CURL:

    curl $AZURE_WEB_APP.azurewebsites.net
    

    Nella pagina viene visualizzato "Hello World!"

    Hello World!
    

In questo esercizio è stato dimostrato un criterio tipico per una sessione interattiva dell'interfaccia della riga di comando di Azure. È stato prima di tutto usato un comando standard per creare un nuovo gruppo di risorse. È stato quindi usato un set di comandi per distribuire una risorsa (in questo esempio, un'app Web) in questo gruppo di risorse. Questo set di comandi può essere facilmente combinato in uno script della shell da eseguire ogni volta che è necessario creare la stessa risorsa.