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:
- Dapr:
az containerapp dapr enable
- Segreti:
az containerapp secret set
- Protocolli di trasporto:
az containerapp ingress update
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
Accedere ad Azure con l'interfaccia della riga di comando di Azure.
az login
Installare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.
az extension add --name containerapp --upgrade
Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi
Microsoft.App
.az provider register --namespace Microsoft.App
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-username
e --registry-password
.
Nell'esempio il comando az containerapp up
esegue le azioni seguenti:
- Creazione di un gruppo di risorse.
- Crea un ambiente e un'area di lavoro Log Analytics.
- Crea e distribuisce un'app contenitore che esegue il pull dell'immagine da un registro pubblico.
- 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:
- Creazione di un gruppo di risorse.
- Crea un ambiente e un'area di lavoro Log Analytics.
- Crea un registro in Registro Azure Container.
- Compila l'immagine del contenitore (usando il Dockerfile, se esistente).
- Esegue il push dell'immagine nel registro.
- 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.
Apportare modifiche al codice sorgente.
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:
- Creazione di un gruppo di risorse.
- Crea un ambiente e un'area di lavoro Log Analytics.
- Crea un registro in Registro Azure Container.
- Compila l'immagine del contenitore usando il Dockerfile.
- Esegue il push dell'immagine nel registro.
- Crea e distribuisce l'App contenitore.
- 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.