開始使用 Azure 上的 Python

當您開始開發將裝載於雲端中的 Python 應用程式,或使用雲端服務時,請使用這份檔作為檢查清單和指南。 如果您遵循本檔案中的連結和指示,您將:

  • 瞭解雲端是什麼,以及您以雲端設計應用程式的方式。
  • 設定本機開發環境,包括建置雲端式應用程式所需的工具和連結庫。
  • 了解開發雲端式應用程式時的工作流程。

階段 1:學習概念

如果您不熟悉開發適用於雲端的應用程式,此簡短系列影片文章將協助您快速快速上手。

了解開發雲端應用程式的基本概念之後,您會想要設定開發環境,並遵循快速入門或教學課程來建置您的第一個應用程式。

階段 2:設定 Azure 開發的本機 Python 環境

若要使用 Azure 開發 Python 應用程式,您必須先設定本機開發環境。 設定包括建立 Azure 帳戶、安裝適用於 Azure 開發的工具,以及將這些工具連線到您的 Azure 帳戶。

在 Azure 上進行開發需要 Python 3.8 或更高版本。 若要確認工作站上的 Python 版本,請在控制台視窗中輸入 macOS/Linux 或 py --version Windows 的命令python3 --version

建立 Azure 帳戶

若要使用 Azure 開發 Python 應用程式,您需要 Azure 帳戶。 您的 Azure 帳戶是您用來登入 Azure 的認證,以及您用來建立 Azure 資源的認證。

如果您在工作時使用 Azure,請與公司的雲端系統管理員交談,以取得用來登入 Azure 的認證。

否則,您可以免費建立 Azure 帳戶,並免費接收 12 個月的熱門服務,以及 200 美元的點數,以探索 Azure 30 天。

使用 Azure 入口網站

取得認證之後,您可以在 登入 Azure 入口網站https://portal.azure.com。 Azure 入口網站 通常是開始使用 Azure 的最簡單方式,特別是當您不熟悉 Azure 和雲端開發時。 在 Azure 入口網站 中,您可以執行各種管理工作,例如建立和刪除資源。

如果您已經體驗過 Azure 和雲端開發,您可能會開始使用 Visual Studio Code 和 Azure CLI 等工具。 Python 開發人員中心的文章會示範如何使用 Azure 入口網站、Visual Studio Code 和 Azure CLI。

使用 Visual Studio Code

您可以在開發 Azure 時,使用任何編輯器或 IDE 來撰寫 Python 程式代碼。 不過,您可能想要考慮使用 Visual Studio Code 進行 Azure 和 Python 開發。 Visual Studio Code 提供許多適用於 Azure 和 Python 的延伸模組和自定義,讓您的開發週期和從本機環境部署至 Azure 更容易。

針對使用 Visual Studio Code 的 Python 開發,請安裝:

  • Python 延伸模組。 此延伸模組包含 IntelliSense (Pylance)、Linting、偵錯(多線程、遠端)、Jupyter Notebook、程式代碼格式設定、重構、單元測試等等。

  • Azure Tools 擴充功能套件。 擴充功能套件包含擴充功能,可用來在一個方便的套件中使用 Azure App 服務、Azure Functions、Azure 儲存體、Azure Cosmos DB 和 Azure 虛擬機器。 Azure 延伸模組可讓您輕鬆地探索及與 Azure 互動。

若要從 Visual Studio Code 安裝延伸模組:

  1. Ctrl+Shift+X 以開啟 [ 延伸模組 ] 視窗。
  2. 搜尋 Azure Tools 擴充功能。
  3. 選取 [安裝] 按鈕。

Screenshot of the Visual Studio Code showing extensions panel searching for the Azure Tools extension pack.

若要深入瞭解如何在Visual Studio Code 中安裝延伸模組,請參閱 Visual Studio Code 網站上的擴充功能 Marketplace 檔。

安裝 Azure Tools 擴充功能之後,請使用您的 Azure 帳戶登入。 在左側面板上,您會看到 Azure 圖示。 選取此圖示,隨即會出現 Azure 服務的控制面板。 選擇 [登入 Azure... ] 來完成驗證程式。

Screenshot of the Visual Studio Code showing how to sign-in the Azure tools to Azure.

注意

如果您看到「找不到名稱為 [訂用帳戶標識符]的訂用帳戶」錯誤,可能是因為您位於 Proxy 後方且無法連線到 Azure API。 HTTP_PROXY在終端機中使用 Proxy 資訊設定和HTTPS_PROXY環境變數:

# Windows
set HTTPS_PROXY=https://username:password@proxy:8080
set HTTP_PROXY=http://username:password@proxy:8080
# macOS/Linux
export HTTPS_PROXY=https://username:password@proxy:8080
export HTTP_PROXY=http://username:password@proxy:8080

使用 Azure CLI

除了 Azure 入口網站 和 Visual Studio Code 之外,Azure 也提供 Azure CLI 命令行工具來建立和管理 Azure 資源。 Azure CLI 提供效率、可重複性,以及編寫週期性工作腳本的能力。 在實務上,大部分開發人員都會使用 Azure 入口網站 和 Azure CLI。

安裝 Azure CLI 之後,請在工作站的終端機視窗中輸入 命令az login,從 Azure CLI 登入您的 Azure 帳戶。

az login

Azure CLI 會開啟您的預設瀏覽器,以完成登入程式。

設定 Python 虛擬環境

建立適用於 Azure 的 Python 應用程式時,建議為每個應用程式建立 虛擬環境 。 虛擬環境是特定 Python 版本的獨立目錄,以及該應用程式所需的其他套件。

若要建立虛擬環境,請遵循下列步驟。

  1. 開啟終端機或命令提示字元。

  2. 為您的專案建立資料夾。

  3. 建立虛擬環境:

    # py -3 uses the global python interpreter. You can also use python3 -m venv .venv.
    py -3 -m venv .venv
    

    此命令會執行 Python venv 模組,並在資料夾 「.venv」 中建立虛擬環境。 一般而言, .gitignore 檔案有 “.venv” 專案,因此虛擬環境不會使用您的程式代碼簽入來簽入。

  4. 啟動虛擬環境:

    .venv\Scripts\activate
    

    注意

    如果您使用 Windows 命令殼層,請使用 .venv\Scripts\activate來啟用虛擬環境。 如果您在 Windows 上的 Visual Studio Code 中使用 Git Bash,請改用 命令 source .venv/Scripts/activate

啟用該環境之後(Visual Studio Code 會自動執行),執行 pip install 只會將連結庫安裝至該環境。 在虛擬環境中執行的 Python 程式代碼會使用安裝至該虛擬環境的特定套件版本。 使用不同的虛擬環境可讓不同的應用程式使用不同的套件版本,有時是必要的。 若要深入瞭解虛擬環境,請參閱 Python 檔中的虛擬環境和套件

例如,如果您的需求位於 requirements.txt 檔案中,則在啟用的虛擬環境中,您可以使用下列專案加以安裝:

pip install -r requirements.txt

階段 3:瞭解 Azure 開發工作流程

上一篇文章:布建、存取和管理資源

既然您已瞭解 Azure 的服務和資源模型,您可以瞭解使用 Azure 開發雲端應用程式的整體流程:布建、程式代碼測試部署和管理

步驟 主要工具 活動
佈建 Azure CLI、Azure 入口網站、VS Code Azure Tools 擴充功能、Cloud Shell、Python 腳本,使用 Azure SDK 管理連結庫 建立資源群組,並在這些群組中建立資源;設定要準備好從應用程式程式代碼使用的資源,以及/或準備好在部署中接收 Python 程式代碼。
代碼 程式代碼編輯器(例如 Visual Studio Code 和 PyCharm)、Azure SDK 用戶端連結庫、參考檔 使用 Azure SDK 用戶端連結庫撰寫 Python 程式代碼,以與布建的資源互動。
Test Python 運行時間、調試程式 在本機針對作用中的雲端資源執行 Python 程式代碼(通常是開發或測試資源,而不是生產資源)。 程序代碼本身尚未裝載於 Azure 上,可協助您快速偵錯和反覆運算。
部署 VS Code、Azure CLI、GitHub Actions、Azure Pipelines 在本機測試程式代碼之後,請將它部署到適當的 Azure 主控服務,讓程式代碼本身可以在雲端中執行。 部署的程式代碼通常會針對預備或生產資源執行。
管理 Azure CLI, Azure 入口網站, VS Code, Python 腳本, Azure 監視器 監視應用程式效能和回應性、在生產環境中進行調整、將改進移回開發環境,以進行下一輪布建和開發。

步驟 1:布建和設定資源

如本系列前一篇文章所述,開發任何應用程式的第一個步驟是布建和設定組成應用程式目標環境的資源。

布建一開始是在適當的 Azure 區域中建立資源群組。 您可以透過 Azure 入口網站、VS Code 搭配 Azure 工具擴充功能、Azure CLI 或使用使用 Azure SDK 管理連結庫的自定義腳本來建立資源群組(或 REST API)。

在該資源群組內,您會使用入口網站、VS Code、CLI 或 Azure SDK,再次布建及設定所需的個別資源。 (再次,檢閱 適用於可用資源類型概觀的 Azure 開發人員指南

組態包括設定存取原則,以控制哪些身分識別(服務主體和/或應用程式識別符)能夠存取這些資源。 存取原則是透過 Azure 角色型 存取控制 (RBAC)來管理;有些服務也有更具體的訪問控制。 身為使用 Azure 的雲端開發人員,請務必熟悉 Azure RBAC,因為您只搭配任何有安全性考慮的資源使用它。

在大部分的應用程式案例中,您通常會使用 Azure SDK 管理連結庫,使用 Azure CLI 和/或 Python 程式代碼來建立布建腳本。 這類文稿描述應用程式資源需求的總計(基本上定義您要部署應用程式的自定義雲端計算機)。 腳本可讓您輕鬆地在不同的環境中重新建立同一組資源,例如開發、測試、預備和生產環境。 自動化時,您可以避免在 Azure 入口網站 或 VS Code 中手動執行許多重複的步驟。 這類腳本也可讓您輕鬆地在不同的區域中布建環境,或使用不同的資源群組。 如果您也會在原始檔控制存放庫中維護這些腳本,您也有完整的稽核和變更歷程記錄。

步驟 2:撰寫您的應用程式程式代碼以使用資源

布建應用程式所需的資源之後,您可以撰寫應用程式程式代碼來處理這些資源的運行時間層面。

例如,在布建步驟中,您可能已建立 Azure 記憶體帳戶、在該帳戶內建立 Blob 容器,以及為該容器上的應用程式設定存取原則。 此布建程式示範於範例 - 布建 Azure 儲存體。 接著,您可以從程式代碼使用該儲存體帳戶進行驗證,然後在該容器內建立、更新或刪除 Blob。 此運行時間程式示範於範例 - 使用 Azure 儲存體。 同樣地,您可能已布建具有架構和適當許可權的資料庫(如範例 - 布建資料庫所示),讓應用程式程式碼可以連線到資料庫,並執行一般的 create-read-update-delete 查詢。

應用程式程式代碼通常會使用環境變數來識別要使用的資源名稱和URL。 環境變數可讓您輕鬆地在雲端環境之間切換(開發、測試、預備和生產環境),而不需要變更程序代碼。 裝載應用程式程式代碼的各種 Azure 服務會提供定義必要變數的方法。 例如,在 Azure App 服務 中(裝載 Web 應用程式)和 Azure Functions(適用於 Azure 的無伺服器計算),您可以透過 Azure 入口網站、VS Code 或 Azure CLI 定義應用程式設定,然後以環境變數的形式出現在您的程式代碼中。

身為 Python 開發人員,您可能會使用適用於 Python 的 Azure SDK 用戶端連結庫,在 Python 中撰寫應用程式程式代碼。 也就是說,雲端應用程式的任何獨立部分都可以以任何支援的語言撰寫。 如果您使用多個程式設計語言來處理小組,則應用程式的某些部分可能會使用 Python、某些 JavaScript、某些 Java 和其他 C#。

應用程式程式代碼可以使用 Azure SDK 管理連結庫,視需要執行布建和管理作業。 同樣地,布建腳本也可以使用 SDK 用戶端連結庫,以特定數據初始化資源,或在雲端資源上執行管家工作,即使這些腳本是在本機執行也一樣。

步驟 3:在本機測試及偵錯您的應用程式程式代碼

開發人員通常會想要在本機工作站上測試應用程式程式代碼,再將該程式代碼部署至雲端。 在本機測試應用程式程式代碼表示您通常會存取已在雲端中布建的其他資源,例如記憶體、資料庫等等。 差別在於您尚未在雲端服務內執行應用程式程式代碼本身。

在本機執行程式代碼,您也可以充分利用 Visual Studio Code 等工具所提供的偵錯功能,並在原始檔控制存放庫中管理程式碼。

您完全不需要修改程式代碼以進行本機測試:Azure 完全支援使用您部署至雲端的相同程式代碼進行本機開發和偵錯。 環境變數再次成為金鑰:在雲端中,您的程式代碼可以存取裝載資源的設定作為環境變數。 當您在本機建立這些相同的環境變數時,相同的程式代碼會在不修改的情況下執行。 此模式適用於驗證認證、資源 URL、連接字串,以及任何其他設定,一旦程式代碼部署至雲端,即可在本機執行程式代碼和生產資源時,輕鬆地在開發環境中使用資源。

步驟 4:將您的應用程式程式代碼部署至 Azure

在本機測試程式代碼之後,即可將程式代碼部署至您已布建以裝載該程式代碼的 Azure 資源。 例如,如果您要撰寫 Django Web 應用程式,您可以將該程式代碼部署至虛擬機(其中您提供自己的網頁伺服器)或 Azure App 服務(為您提供網頁伺服器)。 部署之後,該程式代碼就會在伺服器上執行,而不是在本機計算機上執行,而且可以存取其授權的所有 Azure 資源。

如上一節所述,在一般開發程式中,您會先將程式代碼部署到您在開發環境中布建的資源。 一輪測試之後,您會將程式代碼部署至預備環境中的資源,讓應用程式可供測試小組使用,並可能預覽客戶。 一旦您對應用程式的效能感到滿意,您可以將程式代碼部署至生產環境。 所有這些部署也可以透過使用 Azure Pipelines 和 GitHub Actions 的持續整合和持續部署來自動化。

不過,一旦程式代碼部署至雲端,它就會真正成為雲端應用程式,完全在 Azure 資料中心的伺服器電腦上執行。

步驟 5:管理、監視和修訂

部署之後,您想要確定應用程式執行時應該執行,回應客戶要求,並有效率地使用資源(且成本最低)。 您可以管理 Azure 視需要自動調整部署的方式,以及使用 azure SDK 連結庫撰寫的 Azure 入口網站、VS Code、Azure CLI 或自定義腳本來收集和監視效能數據。 然後,您可以使用任何相同的工具,對布建的資源進行實時調整,以將效能優化。

監視可讓您深入瞭解如何重組雲端應用程式。 例如,您可能會發現 Web 應用程式的某些部分(例如 API 端點群組)只會偶爾使用,與主要元件比較。 然後,您可以選擇將這些 API 個別部署為無伺服器 Azure Functions。 作為函式,他們有自己的備份計算資源,不會與主要應用程式競爭,但每月只需花費一分錢。 然後,您的主要應用程式會更回應更多客戶,而不需要相應增加至較高的成本層。

下一步

您現在已熟悉 Azure 的基本結構和整體開發流程:布建資源、撰寫和測試程式代碼、將程式代碼部署至 Azure,然後監視和管理這些資源。