Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa serie di esercitazioni illustra come inserire in contenitori un'app Web Python e quindi eseguirla in locale o distribuirla nel servizio app di Azure. App Web del servizio App per contenitori consente di concentrarsi sullo sviluppo dei contenitori senza doversi preoccupare della gestione di un orchestratore di contenitori sottostante. Quando si creano app Web, il servizio app di Azure è un'ottima opzione per eseguire i primi passaggi con i contenitori. Questa app Web contenitore può utilizzare un'istanza locale di MongoDB oppure MongoDB per Azure Cosmos DB per archiviare i dati. Per altre informazioni sull'uso dei contenitori in Azure, vedere Confronto delle opzioni dei contenitori di Azure.
In questa esercitazione:
Compilare ed eseguire un contenitore docker in locale. Vedere Compilare ed eseguire un'app Web Python in contenitori in locale.
Creare un'immagine di contenitore Docker direttamente in Azure. Consulta Creare un'app web Python containerizzata su Azure.
Configurare un servizio app per creare un'app Web basata sull'immagine del contenitore Docker. Consultare Distribuire un'app Python in contenitori nel Servizio App.
Dopo aver completato gli articoli di questa serie di esercitazioni, si avrà la base per l'integrazione continua (CI) e la distribuzione continua (CD) di un'app Web Python in Azure.
Il diagramma del servizio che supporta questa esercitazione illustra due ambienti: ambiente per sviluppatori e ambiente Azure. Evidenzia i principali servizi di Azure usati nel processo di sviluppo.
I componenti che supportano l'ambiente di sviluppo in questa esercitazione includono:
sistema di sviluppo locale: un personal computer usato per scrivere codice, compilazione e test del contenitore Docker.
docker containerization: Docker viene usato per creare il pacchetto dell'app e le relative dipendenze in un contenitore portabile.
Strumenti di sviluppo: include un editor di codice e altri strumenti necessari per lo sviluppo di software.
'istanza locale di MongoDB: un database MongoDB locale usato per l'archiviazione dei dati durante lo sviluppo.
Connessione MongoDB: accesso al database MongoDB locale fornito tramite una stringa di connessione.
I componenti che supportano l'ambiente Azure in questa esercitazione includono:
-
- Nel servizio app di Azure l'app Web per contenitori usa la tecnologia contenitore Docker per fornire l'hosting di contenitori sia di immagini predefinite che di immagini personalizzate usando Docker.
- Web App per contenitori utilizza un webhook nel Registro di Contenitori di Azure (ACR) per essere notificato delle nuove immagini. Quando viene eseguito il push di una nuova immagine nel registro, la notifica del webhook attiva il Servizio app affinché esegua il pull dell'aggiornamento e riavvii l'app.
Registro dei container di Azure
Registro Azure Container consente di archiviare e gestire immagini Docker e i relativi componenti in Azure. Fornisce un registro situato nelle vicinanze delle distribuzioni in Azure che consente di controllare l'accesso usando i gruppi e le autorizzazioni di Microsoft Entra.
In questa esercitazione Registro Azure Container è l'origine del registro, ma è anche possibile usare Docker Hub o un registro privato con modifiche minime.
-
Azure Cosmos DB per MongoDB è un database NoSQL usato in questa esercitazione per l'archiviazione dei dati.
L'applicazione in contenitori si connette e accede alla risorsa di Azure Cosmos DB usando una stringa di connessione, archiviata come variabile di ambiente e fornita all'app.
In questa esercitazione si compila un'immagine Docker, in locale o in Azure, e quindi la si distribuisce nel servizio app di Azure. Il servizio app estrae l'immagine del contenitore da un repository di Azure Container Registry.
Per eseguire il pull sicuro delle immagini dal repository, il servizio app usa un'identità gestita assegnata dal sistema. Questa identità gestita concede all'app Web le autorizzazioni per interagire con altre risorse di Azure, eliminando la necessità di credenziali esplicite. Per questa esercitazione, l'identità gestita viene configurata durante la configurazione di App Service per utilizzare un'immagine di contenitore del registro.
L'app Web di esempio per l'esercitazione usa MongoDB per archiviare i dati. Il codice di esempio si connette ad Azure Cosmos DB tramite una stringa di connessione.
Per completare questa esercitazione, è necessario:
Un account Azure in cui è possibile creare:
- Registro dei container di Azure
- Servizio App di Azure
- Azure Cosmos DB per MongoDB (o l'accesso a un equivalente). Per creare un database Azure Cosmos DB per MongoDB, seguire la procedura descritta nella parte 2 di questa esercitazione.
Visual Studio Code o Azure CLI, a seconda dello strumento scelto. Se usi Visual Studio Code, sono necessari l'estensione Docker e l'estensione Azure App Service .
Questi pacchetti Python:
- MongoDB Shell (mongosh) per la connessione a MongoDB.
- Flask o Django come framework Web.
Docker installato localmente.
Il risultato finale di questa esercitazione è un'app di revisione del ristorante, distribuita e in esecuzione in Azure, simile allo screenshot seguente.
In questa esercitazione si crea un'app di revisione del ristorante Python che usa MongoDB per l'archiviazione dei dati. Per un'app di esempio che usa PostgreSQL, vedere Creare e distribuire un'app Web Flask in Azure con un'identità gestita.
Compilare e testare in locale