Panoramica: App Web Python in contenitori in Azure con MongoDB

Questa esercitazione illustra come inserire in contenitori un'app Web Python e distribuirla in Azure. L'app Web a contenitore singolo è ospitata nel servizio app Azure e usa MongoDB per Azure Cosmos DB per archiviare i dati. servizio app'app Web per contenitori consente di concentrarsi sulla composizione dei contenitori senza doversi preoccupare della gestione e della gestione di un agente di orchestrazione dei contenitori sottostante. Quando si creano app Web, app Azure Servizio è un'ottima opzione per eseguire i primi passaggi con i contenitori. Per altre informazioni sull'uso dei contenitori in Azure, vedere Confronto delle opzioni dei contenitori di Azure.

In questa esercitazione si apprenderà come:

  • Compilare ed eseguire un contenitore Docker in locale. Questo passaggio è facoltativo.

  • Creare un'immagine del contenitore Docker direttamente in Azure.

  • Configurare un servizio app per creare un'app Web basata sull'immagine del contenitore Docker.

Dopo questa esercitazione, si avrà la base per l'integrazione continua (CI) e la distribuzione continua (CD) di un'app Web Python in Azure.

Panoramica del servizio

Il diagramma dei servizi che supporta questa esercitazione illustra due ambienti (ambiente per sviluppatori e Azure) e i diversi servizi di Azure usati nell'esercitazione.

A screenshot of the services using in the Tutorial - Containerized Python App on Azure.

I componenti che supportano questa esercitazione e illustrati nel diagramma precedente sono:

  • Servizio app di Azure

    • La funzionalità di servizio app sottostante che abilita la containerizzazione è App Web per contenitori. app Azure Servizio usa Tecnologia del contenitore Docker per ospitare immagini predefinite e immagini personalizzate. In questa esercitazione si creerà un'immagine dal codice Python e la si distribuirà nell'app Web per contenitori.

    • App Web per contenitori usa un webhook nel Registro di sistema per ricevere una notifica delle nuove immagini. Un push di una nuova immagine nel repository attiva servizio app per eseguire il pull dell'immagine e riavviare.

  • Registro Azure Container

    • Registro Azure Container consente di usare immagini Docker e i relativi componenti in Azure. Fornisce un registro vicino alle distribuzioni in Azure e che consente di controllare l'accesso, consentendo di usare i gruppi e le autorizzazioni di Microsoft Entra.

    • In questa esercitazione l'origine del Registro di sistema è Registro Azure Container, ma è anche possibile usare Docker Hub o un registro privato con modifiche secondarie.

  • Azure Cosmos DB for MongoDB

    • Azure Cosmos DB per MongoDB è un database NoSQL usato in questa esercitazione per archiviare i dati.

    • L'accesso alla risorsa di Azure Cosmos DB avviee tramite un stringa di connessione, che viene passato come variabile di ambiente all'app in contenitori.

Autenticazione

In questa esercitazione si creerà un'immagine Docker (in locale o direttamente in Azure) e la si distribuirà nel servizio app Azure. Il servizio app esegue il pull dell'immagine del contenitore da un repository di Registro Azure Container.

Il servizio app usa l'identità gestita per eseguire il pull delle immagini da Registro Azure Container. L'identità gestita consente di concedere autorizzazioni all'app Web in modo che possa accedere ad altre risorse di Azure senza la necessità di specificare le credenziali. In particolare, questa esercitazione usa un'identità gestita assegnata dal sistema. L'identità gestita viene configurata durante l'installazione di servizio app per l'uso di un'immagine del contenitore del Registro di sistema.

L'app Web di esempio dell'esercitazione usa MongoDB per archiviare i dati. Il codice di esempio si connette ad Azure Cosmos DB tramite un stringa di connessione.

Prerequisiti

Per completare questa esercitazione, sono necessari gli elementi seguenti:

Esempio di app

L'app di esempio Python è un'app di revisione del ristorante che salva i dati del ristorante ed esamina i dati in MongoDB. Per un esempio di app Web con PostgreSQL, vedere Creare e distribuire un'app Web Flask in Azure con un'identità gestita.

Alla fine dell'esercitazione si avrà un'app di revisione del ristorante distribuita e in esecuzione in Azure simile allo screenshot seguente.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Passaggio successivo