Condividi tramite


Distribuire App contenitore di Azure con il comando az containerapp up

Il comando az containerapp up (o up) è il modo più rapido per distribuire un'app in App contenitore di Azure da un'immagine esistente, da codice sorgente locale o da un repository GitHub. Con questo singolo comando, è possibile usare l'app contenitore in pochi minuti.

Il comando az containerapp up è un modo semplificato per creare e distribuire app contenitore che usano principalmente le impostazioni predefinite. Tuttavia, è necessario eseguire altri comandi dell'interfaccia della riga di comando per configurare impostazioni più avanzate:

Per personalizzare le impostazioni di ridimensionamento o risorse dell'app contenitore, è possibile usare il comando up quindi quello az containerapp update per modificare queste impostazioni. Il comando az containerapp up non è un'abbreviazione del comando az containerapp update.

Il comando up può creare o usare risorse esistenti, tra cui:

  • Gruppo di risorse
  • Registro Azure Container
  • Ambiente app contenitore e area di lavoro Log Analytics
  • L'app contenitore

Il comando può compilare ed eseguire il push di un'immagine del contenitore in un Registro Azure Container quando si specifica il codice sorgente locale o un repository GitHub. Quando si lavora da un repository GitHub, viene creato un flusso di lavoro di GitHub Actions che compila ed esegue automaticamente il push di una nuova immagine del contenitore quando si esegue il commit delle modifiche nel repository GitHub.

Se è necessario personalizzare l'ambiente App contenitore, creare prima di tutto l'ambiente usando il comando az containerapp env create. Se non si specifica un ambiente esistente, il comando up cerca uno nel gruppo di risorse e, se presente, usa tale ambiente. Se non viene trovato, crea un ambiente con un'area di lavoro Log Analytics.

Per altre informazioni sul comando az containerapp up e sulle relative opzioni, vedere az containerapp up.

Prerequisiti

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.
Account GitHub Se si usa un repository GitHub, registrarsi per gratuito.
Interfaccia della riga di comando di Azure Installare l'interfaccia della riga di comando di Azure.
Codice sorgente locale Se si usa il codice sorgente locale, è necessario disporre di una directory del codice sorgente locale.
Immagine esistente Se si usa un'immagine esistente, è necessario il server del Registro di sistema, il nome dell'immagine e il tag. Se si usa un registro privato, sono necessarie le credenziali.

Impostazione

  1. Accedere ad Azure con l'interfaccia della riga di comando di Azure.

    az login
    
  2. Installare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.

    az extension add --name containerapp --upgrade
    
  3. Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi Microsoft.App.

    az provider register --namespace Microsoft.App
    
  4. Registrare il provider di Microsoft.OperationalInsights per l'area di lavoro Log Analytics di Monitoraggio di Azure.

    az provider register --namespace Microsoft.OperationalInsights
    

Eseguire la distribuzione da un'immagine esistente

È possibile distribuire un'app contenitore che usa un'immagine esistente in un registro contenitori pubblico o privato. Se si esegue la distribuzione da un registro privato, è necessario fornire le credenziali usando le opzioni --registry-server, --registry-usernamee --registry-password.

Nell'esempio il comando az containerapp up esegue le azioni seguenti:

  1. Creazione di un gruppo di risorse.
  2. Crea un ambiente e un'area di lavoro Log Analytics.
  3. Crea e distribuisce un'app contenitore che esegue il pull dell'immagine da un registro pubblico.
  4. Imposta l'ingresso dell'app contenitore su esterno con una porta di destinazione impostata sul valore specificato.

Eseguire il comando seguente per distribuire un'app contenitore da un'immagine esistente. Sostituire i <SEGNAPOSTO> con i valori.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

È possibile usare il comando up per ridistribuire un'app contenitore. Se si desidera ridistribuire con una nuova immagine, usare l'opzione --image per specificare una nuova immagine. Assicurarsi che le opzioni --resource-group e environment siano impostate sullo stesso valore della distribuzione originale.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Eseguire la distribuzione dal codice sorgente locale

Quando si usa il comando up per eseguire la distribuzione da un'origine locale, compila l'immagine del contenitore, lo inserisce in un registro e distribuisce l'app contenitore. Crea il registro in Registro Azure Container, se non ne viene fornito uno.

Il comando può compilare l'immagine con o senza un Dockerfile. Se la compilazione senza un Dockerfile sono supportate le lingue seguenti:

  • .NET
  • Node.JS
  • PHP
  • Python

L'esempio seguente illustra come distribuire un'app contenitore dal codice sorgente locale.

Nell'esempio il comando az containerapp up esegue le azioni seguenti:

  1. Creazione di un gruppo di risorse.
  2. Crea un ambiente e un'area di lavoro Log Analytics.
  3. Crea un registro in Registro Azure Container.
  4. Compila l'immagine del contenitore (usando il Dockerfile, se esistente).
  5. Esegue il push dell'immagine nel registro.
  6. Crea e distribuisce l'App contenitore.

Eseguire il comando seguente per distribuire un'app contenitore dal codice sorgente locale:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

Quando il Dockerfile include l'istruzione EXPOSE, il comando up configura l'ingresso e la porta di destinazione dell'app contenitore usando le informazioni nel Dockerfile.

Se si configura l'ingresso tramite il Dockerfile o l'app non richiede l'ingresso, è possibile omettere l'opzione ingress.

L'output del comando include l'URL per l'app contenitore.

In caso di errore, è possibile eseguire di nuovo il comando con l'opzione --debug per ottenere altre informazioni sull'errore. Se la compilazione non riesce senza un Dockerfile, è possibile provare ad aggiungere un Dockerfile ed eseguire di nuovo il comando.

Per usare il comando az containerapp up per ridistribuire l'app contenitore con un'immagine aggiornata, includere gli argomenti --resource-group e --environment. L'esempio seguente illustra come ridistribuire un'app contenitore dal codice sorgente locale.

  1. Apportare modifiche al codice sorgente.

  2. Esegui questo comando:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

Eseguire la distribuzione da un repository GitHub

Quando si usa il comando az containerapp up per eseguire la distribuzione da un repository GitHub, viene generato un flusso di lavoro di GitHub Actions che compila l'immagine del contenitore, lo inserisce in un registro e distribuisce l'app contenitore. Il comando crea il registro in Registro Azure Container, se non ne viene specificato uno.

Per compilare l'immagine è necessario un Dockerfile. Quando il Dockerfile include l'istruzione EXPOSE, il comando configura l'ingresso e la porta di destinazione dell'app contenitore usando le informazioni contenute nel Dockerfile.

L'esempio seguente illustra come distribuire un'app contenitore da un repository GitHub.

Nell'esempio il comando az containerapp up esegue le azioni seguenti:

  1. Creazione di un gruppo di risorse.
  2. Crea un ambiente e un'area di lavoro Log Analytics.
  3. Crea un registro in Registro Azure Container.
  4. Compila l'immagine del contenitore usando il Dockerfile.
  5. Esegue il push dell'immagine nel registro.
  6. Crea e distribuisce l'App contenitore.
  7. Crea un flusso di lavoro di GitHub Actions per compilare l'immagine del contenitore e distribuire l'app contenitore quando viene eseguito il push delle modifiche future nel repository GitHub.

Per distribuire un'app da un repository GitHub, eseguire il comando seguente:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GitHub repository URL> \
  --ingress external 

Se si configura l'ingresso tramite il Dockerfile o l'app non richiede l'ingresso, è possibile omettere l'opzione ingress.

Poiché il comando up crea un flusso di lavoro di GitHub Actions, riesecuzione per distribuire le modifiche all'immagine dell'app ha l'effetto indesiderato della creazione di più flussi di lavoro. Eseguire invece il push delle modifiche nel repository GitHub e il flusso di lavoro GitHub compila e distribuisce automaticamente l'app. Per modificare il flusso di lavoro, modificare il file del flusso di lavoro in GitHub.

Passaggi successivi