共用方式為


概觀:使用 MongoDB 在 Azure 上容器化的 Python Web 應用程式

本教學課程系列說明如何容器化 Python Web 應用程式,然後在本機執行,或將其部署至 azure App Service 。 App Service 適用於容器的 Web 應用程式 可讓您專注於建置容器,而不必擔心管理和維護基礎容器協調器。 當您建置 Web 應用程式時,Azure App Service 是使用容器採取第一個步驟的絕佳選項。 此容器 Web 應用程式可以使用本機 MongoDB 實例或 MongoDB for Azure Cosmos DB 來儲存數據。 如需在 Azure 中使用容器的詳細資訊,請參閱 比較 Azure 容器選項

在本教學課程中,您會:

完成本教學課程系列文章之後,您將有 Python Web 應用程式持續整合 (CI) 和持續部署 (CD) 至 Azure 的基礎。

服務概觀

支援本教學課程的服務圖表會顯示兩個環境:開發人員環境和 Azure 環境。 它會醒目提示開發程式中使用的主要 Azure 服務。

Azure 上教學課程 - 容器化 Python 應用程式中使用的服務螢幕快照。

開發人員環境

本教學課程中支持開發人員環境的元件包括:

  • 本機開發系統:用於編碼、建置及測試 Docker 容器的個人電腦。

  • Docker 容器化:Docker 可用來將應用程式及其相依性封裝到可攜式容器。

  • 開發工具:包含程式代碼編輯器和其他軟體開發所需的工具。

  • 本地 MongoDB 實例:開發期間用於資料儲存的本地 MongoDB 資料庫。

  • MongoDB 連線:存取透過連接字串提供的本機 MongoDB 資料庫。

Azure 環境

本教學課程中支援 Azure 環境的元件包括:

  • Azure 應用服務

    • 在 Azure App Service 中,適用於容器的 Web 應用程式會使用 Docker 容器技術,以使用 Docker 提供內建映像和自定義映射的容器裝載。
    • 適用於容器的 Web 應用程式會使用 Azure Container Registry (ACR) 中的 Webhook 來取得新映像的通知。 當新的映像推送至登錄時,Webhook 通知會觸發 App Service 提取更新並重新啟動應用程式。
  • Azure 容器註冊表

    • Azure Container Registry 可讓您在 Azure 中儲存和管理 Docker 映射及其元件。 它提供位於 Azure 中部署附近的登錄,可讓您使用 Microsoft Entra 群組和許可權來控制存取。

    • 在本教學課程中,Azure Container Registry 是登錄來源,但您也可以使用 Docker Hub 或私人登錄進行次要修改。

  • 適用於 MongoDB 的 Azure Cosmos DB

    • 適用於 MongoDB 的 Azure Cosmos DB 是本教學課程中用於數據記憶體的 NoSQL 資料庫。

    • 容器化應用程式會使用連接字串來連線及存取 Azure Cosmos DB 資源,該連接字串會儲存為環境變數,並提供給應用程式。

認證

在本教學課程中,您會在本機或 Azure 中建置 Docker 映像,然後將其部署至 Azure App Service。 App Service 會從 Azure Container Registry 存放庫提取容器映射。

若要從存放庫安全地提取映像,App Service 會利用系統指派的受控識別。 此受控識別會授與 Web 應用程式與其他 Azure 資源互動的許可權,而不需要明確認證。 在本教學課程中,受控識別會在安裝App Service期間設定為使用登錄容器映像。

教學課程範例 Web 應用程式會使用 MongoDB 來儲存數據。 範例程式代碼會透過連接字串連線到 Azure Cosmos DB。

先決條件

若要完成本教學課程,您需要:

範例應用程式

本教學課程的最終結果是在 Azure 中部署和執行的餐館檢閱應用程式,看起來如下的螢幕快照。

用於《Azure 容器化 Python 應用程式教學》的 Python 容器化 Web 應用程式所創建的範例程式的螢幕快照。

在本教學課程中,您會建置 Python 餐廳檢閱應用程式,以利用 MongoDB 進行數據儲存。 如需使用 PostgreSQL 的範例應用程式,請參閱 使用受控識別建立和部署 Flask Web 應用程式至 Azure

下一步