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

本教學課程系列說明如何容器化 Python Web 應用程式,然後在本機執行,或將其部署至 azure App Service 。 App Service 適用於容器的 Web 應用程式 可讓您專注於建置容器,而不必擔心管理和維護基礎容器協調器。 當你在建置網頁應用程式時,Azure App 服務 是個不錯的選擇,可以作為容器的第一步。 這個容器網頁應用程式可以使用本地的 MongoDB 實例或 Azure DocumentDB(具備 MongoDB 相容性) 來儲存資料。 如需在 Azure 中使用容器的詳細資訊,請參閱 比較 Azure 容器選項

在本教學課程中,您會:

完成本教學系列文章後,你就建立了持續整合(CI)與持續部署(CD)將 Python 網頁應用移植到 Azure 的基礎。

服務概觀

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

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

開發人員環境

本教學的開發者環境包含以下元件:

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

  • Docker 容器化:Docker 用於將應用程式及其相依性打包成可攜式容器。

  • 開發工具:程式碼編輯器及其他軟體開發必需工具。

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

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

Azure 環境

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

  • Azure 應用服務

    • 在 Azure App 服務 中,容器專用網頁應用程式使用 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 或私人登錄進行次要修改。

  • Azure DocumentDB(支援 MongoDB 相容性)

    • Azure DocumentDB 是本教學中用於資料儲存的 MongoDB 相容資料庫。

    • 容器化應用程式使用連線字串連線至並存取 Azure DocumentDB 資源,而您會將此連線字串儲存為環境變數,並提供給該應用程式。

認證

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

為了安全從儲存庫擷取映像檔,App Service 使用系統指派的管理身份。 這個管理身份會授權網頁應用程式與其他 Azure 資源互動,因此不需要明確的憑證。 在此教學中,請在設定 App Service 時設定管理身份以使用登錄容器映像。

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

先決條件

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

範例應用程式

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

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

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

下一步