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.
Składniki obsługujące ten samouczek i pokazane na powyższym diagramie to:
-
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.
-
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:
Konto platformy Azure, na którym można utworzyć:
- Azure Container Registry
- Azure App Service
- Usługa Azure Cosmos DB dla bazy danych MongoDB (lub dostęp do równoważnej). Aby utworzyć bazę danych usługi Azure Cosmos DB dla bazy danych MongoDB, zalecamy wykonanie kroków opisanych w części 2 tego samouczka.
Program Visual Studio Code lub interfejs wiersza polecenia platformy Azure, w zależności od narzędzia, którego będziesz używać.
- W przypadku programu Visual Studio Code potrzebne jest rozszerzenie platformy Docker i rozszerzenie usługi aplikacja systemu Azure.
Pakiety języka Python:
- PyMongo do nawiązywania połączenia z bazą danych MongoDB.
- Platforma Flask lub Django jako platforma internetowa.
Platforma Docker zainstalowana lokalnie, jeśli chcesz uruchomić kontener lokalnie.
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.