Condividi tramite


Creare un'app Web Python containerizzata in Azure

In questa parte della serie di esercitazioni si apprenderà come creare un'app Web Python in contenitori direttamente in Registro Azure Container senza installare Docker in locale. La compilazione dell'immagine Docker in Azure è spesso più veloce e semplice rispetto alla creazione dell'immagine in locale e quindi al push nel Registro Azure Container. Inoltre, la creazione di immagini basate sul cloud elimina la necessità di eseguire Docker nell'ambiente di sviluppo.

Il servizio app consente di eseguire app Web in contenitori e di distribuirle tramite le funzionalità di integrazione continua/distribuzione continua (CI/CD) dell'hub Docker, del Registro Azure Container e di Visual Studio Team Services. Questo articolo è la parte 3 di una serie di esercitazioni in 5 parti su come inserire e distribuire un'app Web Python nel servizio app di Azure. In questa parte dell'esercitazione si apprenderà come compilare l'app Web Python in contenitori in Azure.

Il servizio app di Azure consente di distribuire ed eseguire app Web in contenitori usando pipeline CI/CD da piattaforme come l'hub Docker, Registro Azure Container e Azure DevOps. Questo articolo è la parte 3 di una serie di esercitazioni in 5 parti.

Nella parte 2 di questa serie di esercitazioni è stata creata ed eseguita l'immagine del contenitore in locale. In questa parte dell'esercitazione, invece, si compila (in contenitori) la stessa app Web Python direttamente in un'immagine Docker nel Registro Azure Container. La compilazione dell'immagine in Azure è in genere più veloce e semplice rispetto alla compilazione in locale e quindi al push dell'immagine in un registro. Inoltre, la compilazione nel cloud non richiede che Docker sia in esecuzione nell'ambiente di sviluppo.

Quando l'immagine Docker si trova in Registro Azure Container, può essere distribuita nel servizio app di Azure.

Questo diagramma dei servizi evidenzia i componenti trattati in questo articolo.

Screenshot dei servizi utilizzati nel tutorial - App Python containerizzata su Azure con il percorso di compilazione nel cloud evidenziato.

Creare un Registro Container di Azure

Se si ha un Registro Azure Container esistente che si vuole usare, ignorare questo passaggio successivo e procedere con il passaggio successivo. In caso contrario, creare un nuovo Registro Azure Container usando l'interfaccia della riga di comando di Azure.

I comandi dell'interfaccia della riga di comando di Azure possono essere eseguiti in Azure Cloud Shell o nell'ambiente di sviluppo locale con l'interfaccia della riga di comando di Azure installata.

Nota

Usare gli stessi nomi della parte 2 di questa serie di esercitazioni.

  1. Creare un registro Azure Container con il comando az acr create .

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    Nell'output JSON del comando individuare il loginServer valore. Questo valore rappresenta il nome completo del Registro di sistema (tutte minuscole) e contiene il nome del Registro di sistema.

  2. Se si usa l'interfaccia della riga di comando di Azure nel computer locale, eseguire il comando az acr login per accedere al registro contenitori.

    az acr login -n $REGISTRY_NAME
    

    Il comando aggiunge "azurecr.io" al nome per creare il nome completo del registro. In caso di esito positivo, viene visualizzato il messaggio "Login Succeeded".

    Nota

    In Azure Cloud Shell il comando az acr login command non è necessario, perché l'autenticazione viene gestita automaticamente tramite la sessione di Cloud Shell. Tuttavia, se si verificano problemi di autenticazione, è comunque possibile usarlo.

Creare un'immagine nell'Azure Container Registry

È possibile generare l'immagine del contenitore direttamente in Azure tramite diversi approcci:

  • Azure Cloud Shell consente di costruire l'immagine interamente nel cloud, indipendentemente dall'ambiente locale.
  • In alternativa, è possibile usare VS Code o l'interfaccia della riga di comando di Azure per crearla in Azure dalla configurazione locale, senza dover eseguire Docker in locale.

I comandi dell'interfaccia della riga di comando di Azure possono essere eseguiti nell'ambiente di sviluppo locale con l'interfaccia della riga di comando di Azure installata o in Azure Cloud Shell.

  1. Passando alla console, naviga alla cartella radice del tuo repository clonato dalla parte 2 di questo tutorial.

  2. Compilare l'immagine del contenitore usando il comando az acr build .

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    # When using Azure Cloud Shell, run one of the following commands instead:
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    L'ultimo argomento nel comando è il percorso completo del repository. Quando si esegue in Azure Cloud Shell, usare https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git per l'app di esempio Django e https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git per l'app di esempio Flask.

  3. Verificare che l'immagine del contenitore sia stata creata con il comando az acr repository list .

    az acr repository list -n $REGISTRY_NAME
    

Passaggio successivo