Share via


Distribuire un'app Web Go in App Azure Container

In questa guida introduttiva si apprenderà come distribuire un'app Web Go in contenitori in App Contenitore di Azure.

App Contenitore di Azure consente di eseguire il codice dell'applicazione in un pacchetto in qualsiasi contenitore senza dover gestire complesse infrastrutture cloud o agenti di orchestrazione di contenitori complessi e senza preoccuparsi del runtime o del modello di programmazione. Gli usi comuni delle app contenitore di Azure includono: distribuzione di endpoint API, hosting di applicazioni di elaborazione in background, gestione dell'elaborazione guidata dagli eventi ed esecuzione di microservizi.

Seguire questa esercitazione per completare la creazione di un'immagine Docker, la distribuzione di tale immagine in Registro Azure Container e la distribuzione di un'app Web Go in App Contenitore di Azure.

Prerequisiti

  • Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Scaricare l'app di esempio

Per seguire questa esercitazione, è necessaria un'applicazione di esempio da inserire in contenitori. Un'app Web Go di esempio è disponibile nel repository GitHub msdocs-go-webapp-quickstart . Scaricare o clonare l'applicazione di esempio nella workstation locale.

git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git

cd msdocs-go-webapp-quickstart

Creare un Registro Azure Container

Registro Azure Container consente di compilare, archiviare e gestire immagini del contenitore. Verrà usato per archiviare l'immagine Docker che contiene l'app Web Go di esempio fornita nel repository di esempio indicato in precedenza.

Eseguire i comandi seguenti per creare un Registro Azure Container:

  1. Crea gruppo di risorse di Azure.

    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Creare un Registro Azure Container.

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic \
        --admin-enabled true
    
  3. Accedere all'istanza del contenitore di Azure.

    az acr login --name <azureContainerRegistryName>  
    

Sostituire <resourceGroupName> e <azureContainerRegistryName> con i valori appropriati. Si noti che il nome Registro Azure Container deve essere univoco a livello globale.

Compilare ed eseguire il push dell'immagine Docker

Dopo aver creato un Registro Azure Container, compilare ed eseguire il push dell'immagine Docker dell'app Web Go di esempio.

Eseguire i comandi seguenti per compilare ed eseguire il push dell'immagine nel Registro di sistema:

  1. Ottenere le informazioni sul server di accesso.

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Compilare l'immagine Docker in locale.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Eseguire il push dell'immagine Docker nel Registro Azure Container.

    docker push <loginServer>/<imageName>:latest
    
  4. Verificare che il push dell'immagine sia stato eseguito correttamente in Registro Azure Container.

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

Sostituire loginServer, imageNamee azureContainerRegistryName con i valori appropriati. Il nome dell'immagine è l'immagine Docker di cui viene eseguito il push in Registro Azure Container e successivamente usata per la distribuzione in App Contenitore di Azure.

Ora che è disponibile un'immagine in Registro Azure Container, è possibile distribuire l'app Contenitore di Azure e il relativo ambiente.

Creare un ambiente di App Azure Container

App Contenitore di Azure non ha la complessità di un agente di orchestrazione dei contenitori, ma ha ancora bisogno di un modo per stabilire limiti sicuri, che è il punto in cui sono disponibili gli ambienti di App Contenitore di Azure. App contenitore distribuite nello stesso ambiente condividono la stessa rete virtuale e scrivono i log nella stessa area di lavoro Log Analytics. Prima di poter distribuire un'app Contenitore di Azure, è necessario un ambiente in cui eseguire la distribuzione.

Eseguire i comandi seguenti per creare un ambiente di App Azure Container:

  1. Ottenere la password dell'amministratore Registro Azure Container.

    ACR_PASSWORD=$(az acr credential show \
        --name <azureContainerRegistryName> \
        --query 'passwords[0].value' \
        --out tsv)
    
  2. Creare un ambiente app contenitore.

    az containerapp env create \
        --name <containerAppEnvName> \
        --resource-group <resourceGroupName> \
        --location "East US"
    

Eseguire la distribuzione in App Azure Container

A questo punto, è stato creato un Registro Azure Container, compilato ed è stato eseguito il push di un'immagine Docker e si è creato un ambiente di App Contenitore di Azure. Tutto ciò che rimane è distribuire l'applicazione.

Eseguire il comando seguente per distribuire l'app Web Go in App Contenitore di Azure:

az containerapp create \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --environment <containerAppEnvName> \
    --image "<loginServer>/<imageName>:latest" \
    --registry-server "<loginServer>" \
    --registry-username "<azureContainerRegistryName>" \
    --registry-password "$ACR_PASSWORD" \
    --target-port 8080 \
    --ingress 'external'

Verificare l'URL dell'app Web

Eseguire il comando seguente dell'interfaccia della riga di comando di Azure per ottenere il nome di dominio completo (nome di dominio completo) dell'ingresso dell'applicazione Web.

APP_FQDN=$(az containerapp show \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --query properties.configuration.ingress.fqdn \
    --output tsv)

Eseguire quindi il comando curl sull'FQDN e verificare che l'output rifletta il codice HTML del sito Web.

curl "https://$APP_FQDN"

Pulire le risorse

Al termine dell'app di esempio, è possibile rimuovere tutte le risorse per l'app da Azure. In questo modo si evitano addebiti in corso e la sottoscrizione di Azure non è ordinata. La rimozione del gruppo di risorse rimuove anche tutte le risorse nel gruppo di risorse ed è il modo più rapido per rimuovere tutte le risorse di Azure per l'app.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Passaggi successivi