Omówienie: Konteneryzowana aplikacja internetowa w języku Python na platformie Azure przy użyciu bazy danych MongoDB

W tym samouczku pokazano, jak konteneryzować aplikację internetową w języku Python i wdrożyć ją na platformie Azure. Pojedyncza aplikacja internetowa kontenera jest hostowana w usłudze aplikacja systemu Azure i używa bazy danych MongoDB dla usługi Azure Cosmos DB do przechowywania danych. Usługa App Service Web App for Containers umożliwia skoncentrowanie się na tworzeniu kontenerów bez martwienia się o zarządzanie bazowym orkiestratorem kontenerów i konserwowanie go. Podczas tworzenia aplikacji internetowych usługa aplikacja systemu Azure jest dobrym rozwiązaniem do wykonywania pierwszych kroków z kontenerami. Aby uzyskać więcej informacji na temat używania kontenerów na platformie Azure, zobacz Porównanie opcji kontenera platformy Azure.

W tym samouczku wykonasz następujące elementy:

  • Kompilowanie i uruchamianie kontenera platformy Docker lokalnie. To krok jest opcjonalny.

  • Tworzenie obrazu kontenera platformy Docker bezpośrednio na platformie Azure.

  • Skonfiguruj usługę App Service, aby utworzyć aplikację internetową na podstawie obrazu kontenera platformy Docker.

W tym samouczku poznasz podstawy ciągłej integracji (CI) i ciągłego wdrażania aplikacji internetowej w języku Python na platformę Azure.

Przegląd funkcji obsługi klienta

Diagram usługi obsługujący ten samouczek przedstawia dwa środowiska (środowisko deweloperskie i platformę Azure) oraz różne usługi platformy Azure używane w tym samouczku.

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

Składniki obsługujące ten samouczek i pokazane na powyższym diagramie to:

  • Azure App Service

    • Podstawowa funkcja usługi App Service, która umożliwia konteneryzację, to Web App for Containers. usługa aplikacja systemu Azure korzysta z usługi Technologia kontenera platformy Docker do hostowania zarówno wbudowanych obrazów, jak i obrazów niestandardowych. W tym samouczku utworzysz obraz z poziomu kodu języka Python i wdrożysz go w usłudze Web App for Containers.

    • Usługa Web App for Containers używa elementu webhook w rejestrze, aby otrzymywać powiadomienia o nowych obrazach. Wypchnięcie nowego obrazu do repozytorium wyzwala usługę App Service w celu ściągnięcia obrazu i ponownego uruchomienia.

  • Azure Container Registry

    • Usługa Azure Container Registry umożliwia pracę z obrazami platformy Docker i jej składnikami na platformie Azure. Udostępnia on rejestr, który znajduje się blisko wdrożeń na platformie Azure i zapewnia kontrolę nad dostępem, co umożliwia korzystanie z grup i uprawnień firmy Microsoft Entra.

    • W tym samouczku źródłem rejestru jest usługa Azure Container Registry, ale możesz również użyć usługi Docker Hub lub prywatnego rejestru z drobnymi modyfikacjami.

  • Usługa Azure Cosmos DB dla bazy danych MongoDB

    • Usługa Azure Cosmos DB dla bazy danych MongoDB to baza danych NoSQL używana w tym samouczku do przechowywania danych.

    • Dostęp do zasobu usługi Azure Cosmos DB odbywa się za pośrednictwem parametry połączenia, która jest przekazywana jako zmienna środowiskowa do konteneryzowanej aplikacji.

Uwierzytelnianie

W tym samouczku utworzysz obraz platformy Docker (lokalnie lub bezpośrednio na platformie Azure) i wdrożysz go w usłudze aplikacja systemu Azure Service. Usługa App Service ściąga obraz kontenera z repozytorium usługi Azure Container Registry.

Usługa App Service używa tożsamości zarządzanej do ściągania obrazów z usługi Azure Container Registry. Tożsamość zarządzana umożliwia przyznawanie uprawnień do aplikacji internetowej, dzięki czemu może uzyskiwać dostęp do innych zasobów platformy Azure bez konieczności określania poświadczeń. W szczególności w tym samouczku jest używana tożsamość zarządzana przypisana przez system. Tożsamość zarządzana jest konfigurowana podczas konfigurowania usługi App Service do używania obrazu kontenera rejestru.

Przykładowa aplikacja internetowa z samouczka używa bazy danych MongoDB do przechowywania danych. Przykładowy kod łączy się z usługą Azure Cosmos DB za pośrednictwem parametry połączenia.

Wymagania wstępne

Do ukończenia tego samouczka potrzebne są następujące elementy:

Przykładowa aplikacja

Przykładowa aplikacja w języku Python to aplikacja do przeglądu restauracji, która zapisuje restaurację i przegląda dane w bazie danych MongoDB. Aby zapoznać się z przykładem aplikacji internetowej korzystającej z bazy danych PostgreSQL, zobacz Tworzenie i wdrażanie aplikacji internetowej platformy Flask na platformie Azure przy użyciu tożsamości zarządzanej.

Na końcu samouczka będziesz mieć wdrożoną i działającą na platformie Azure aplikację do przeglądu restauracji, która wygląda jak na poniższym zrzucie ekranu.

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

Następny krok