Condividi tramite


Guida introduttiva: Compilare e distribuire da codice sorgente locale in App contenitore di Azure

Questo articolo illustra come compilare e distribuire un microservizio in App contenitore di Azure dal codice sorgente locale usando il linguaggio di programmazione preferito. In questa guida introduttiva si crea un servizio API Web back-end che restituisce una raccolta statica di album musicali.

Nota

Questa applicazione di esempio è disponibile in due versioni, una in cui l'origine contiene un Dockerfile e l'altra senza Dockerfile. Selezionare la versione più adatta al codice sorgente disponibile. Se non si ha familiarità con i contenitori, selezionare l'opzione Senza Dockerfile in alto.

Lo screenshot seguente mostra l'output dell'app del servizio API album da distribuire.

Screenshot della risposta dell'endpoint API album.

Prerequisiti

Per completare il progetto, sono necessari gli elementi seguenti:

Requisito Istruzioni
Account di Azure Se non si dispone di un account, crearne uno gratuitamente. Per continuare, è necessaria l'autorizzazione collaboratore o proprietario per la sottoscrizione di Azure.

Per informazioni dettagliate, fare riferimento ad Assegnare ruoli di Azure usando il portale di Azure.
Interfaccia della riga di comando di Azure Installare l'interfaccia della riga di comando di Azure.

Attrezzaggio

Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.

az login

Assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando eseguire il comando di aggiornamento.

az upgrade

Installare o aggiornare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.

Se si ricevono errori relativi ai parametri mancanti quando si eseguono comandi az containerapp nell'interfaccia della riga di comando di Azure o nei cmdlet del modulo Az.App in Azure PowerShell, assicurarsi di avere installato la versione più recente dell'estensione App contenitore di Azure.

az extension add --name containerapp --upgrade

Nota

A partire da maggio 2024, le estensioni dell'interfaccia della riga di comando di Azure non abilitano più le funzionalità di anteprima per impostazione predefinita. Per accedere alle funzionalità di anteprima di App contenitore, installare l'estensione App contenitore con --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi Microsoft.App e Microsoft.OperationalInsights.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Creare variabili di ambiente

Dopo aver completato la configurazione dell'interfaccia della riga di comando di Azure, è possibile definire le variabili di ambiente usate in questo articolo.

Definire le variabili seguenti nella shell Bash.

export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"

Scaricare il codice di esempio

Scaricare ed estrarre l'applicazione di esempio API nel linguaggio preferito.

Scaricare il codice sorgente nel computer.

Estrarre il download nella cartella containerapps-albumapi-csharp-main/src.

Scaricare il codice sorgente nel computer.

Estrarre il download nella cartella containerapps-albumapi-csharp-buildpack/src.


Compilare e distribuire l'app contenitore

Compilare e distribuire la prima app contenitore con il comando containerapp up. Questo comando consentirà di:

  • Creare il gruppo di risorse
  • Creare un Registro Azure Container
  • Compilare l'immagine del contenitore ed eseguine il push nel registro
  • Creare un ambiente di App contenitore con un'area di lavoro Log Analytics
  • Creare e distribuire l'app contenitore usando l'immagine del contenitore compilata
  • Creare il gruppo di risorse
  • Creare un registro predefinito come parte dell'ambiente
  • Rilevare il linguaggio e il runtime dell'applicazione e compilare l'immagine usando il buildpack appropriato
  • Eseguire il push dell'immagine nel registro predefinito di App contenitore di Azure
  • Creare un ambiente di App contenitore con un'area di lavoro Log Analytics
  • Creare e distribuire l'app contenitore usando l'immagine del contenitore compilata

Il comando up usa il Dockerfile nella radice del repository per compilare l'immagine del contenitore. L'istruzione EXPOSE nel Dockerfile ha definito la porta di destinazione, ovvero la porta usata per inviare il traffico in ingresso al contenitore.

Se il comando up non trova un Dockerfile, usa automaticamente i buildpack per trasformare l'origine dell'applicazione in un contenitore eseguibile. Poiché il buildpack sta tentando di eseguire la compilazione per conto dell'utente, è necessario indicare al comando up a quale porta inviare il traffico in ingresso.

Nell'esempio di codice seguente il . (punto) indica containerapp up l'esecuzione nella directory corrente dell'applicazione API di esempio estratta.

az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --source .
az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --ingress external \
  --target-port 8080 \
  --source .

Importante

Per distribuire l'app contenitore in un gruppo di risorse esistente, includere --resource-group yourResourceGroup nel comando containerapp up.

Verificare la distribuzione

Copiare il nome di dominio completo in un Web browser. Dal Web browser passare all'endpoint /albums del nome di dominio completo.

Screenshot della risposta dell'endpoint API album.

Limiti

Le dimensioni massime per il caricamento del codice sorgente sono200 MB. Se il caricamento supera il limite, viene restituito l'errore 413.

Pulire le risorse

Se non si intende continuare con l'esercitazione Distribuire un front-end, è possibile rimuovere le risorse di Azure create durante questa guida introduttiva con il comando seguente.

Attenzione

Nell'esempio seguente, il gruppo di risorse specificato e tutte le risorse al suo interno vengono eliminati. Se il gruppo contiene risorse esterne all'ambito di questa guida introduttiva, vengono eliminate anche queste.

az group delete --name $RESOURCE_GROUP

Suggerimento

Problemi? Segnalare i problemi su GitHub aprendo un ticket nel repository App contenitore di Azure.

Passaggi successivi

Dopo aver completato questa guida introduttiva, è possibile continuare con Esercitazione: Comunicazione tra microservizi in App contenitore di Azure per informazioni su come distribuire un'applicazione front-end che chiama l'API.