第5部分:主要應用程式相依性、匯入語句和環境變數

上一個部分:主要應用程式實作

本節會檢閱主要應用程式所匯入的 Python 連結庫及其相依的環境變數。 當你將應用程式部署到 Azure 時,請透過 Azure App 服務 中的應用程式設定提供這些環境變數。

相依性和匯入語句

應用程式依賴下列連結庫:

  • Flask – 定義 Web API
  • requests – 用於進行輸出 API 呼叫的標準 Python HTTP 用戶端
  • azure.identity – 用於處理 Microsoft Entra ID 基於令牌的驗證
  • azure.keyvault.secrets – 從 Azure Key Vault 安全地擷取秘密
  • azure.storage.queue – 與 Azure 佇列記憶體互動

將這些相依性納入應用程式的 requirements.txt 檔案中。 在部署或本地設定時安裝。

flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue

當您將應用程式部署至 Azure App 服務 時,Azure 會自動在主機伺服器上安裝這些需求。 在本機執行時,請使用 pip install -r requirements.txt 將它們安裝到您的環境中。

程式代碼檔案會從程式代碼中使用的連結庫部分所需的匯入語句開始:

from flask import Flask, request, jsonify
import requests, random, string, os
from datetime import datetime
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
from azure.storage.queue import QueueClient

環境變數

應用程式程式代碼取決於這四個環境變數:

變數 價值
THIRD_PARTY_API_ENDPOINT 第三方 API 的 URL,例如 https://msdocs-example-api.azurewebsites.net/api/RandomNumber中所述的 。
KEY_VAULT_URL 您在其中儲存第三方 API 存取金鑰的 Azure Key Vault URL。
THIRD_PARTY_API_SECRET_NAME 金鑰保存庫 中包含第三方 API 存取金鑰的秘密名稱。
STORAGE_QUEUE_URL 您在 Azure 中設定的 Azure 記憶體佇列 URL,例如 https://msdocsexamplemainapp.queue.core.windows.net/code-requests (請參閱 第 4 部分)。 因為佇列名稱會包含在 URL 的結尾,因此您不會在程式代碼中的任何位置看到名稱。

設定這些變數的方式取決於程式碼的執行位置:

  • 在本地執行程式碼時,請在你使用的指令殼(例如 PowerShell、Bash 或 CMD)中建立這些變數。 (如果你將應用程式部署到虛擬機,則會建立類似的伺服器端變數。)你也可以用像 python-dotenv 這樣的函式庫,它會從 .env 檔案讀取鍵值對,並設定為環境變數。

  • 當你將程式碼部署到 Azure App 服務 時,如本導覽所示,你無法直接存取伺服器本身。 相反地,請在 App Service 設定中定義與名稱相同的 應用程式設定 。 這些設定會自動將應用程式暴露為環境變數。

這些配置腳本透過使用 Azure CLI 指令建立這些設定。 az webapp config appsettings set 用一個指令設定所有四個變數。

若要透過 Azure 入口網站建立設定,請參閱在 Azure 入口網站中 設定 App Service 應用程式。

在本機執行程式代碼時,您也需要指定包含本機服務主體相關信息的環境變數。 DefaultAzureCredential 查找這些值。 部署至 App Service 時,您不需要設定這些值,因為應用程式會使用系統指派的受控識別來進行驗證。

變數 價值
AZURE_TENANT_ID Microsoft Entra 租戶目錄識別碼。
AZURE_CLIENT_ID 租用戶中應用程式註冊的用戶端(應用程式)標識碼。
AZURE_CLIENT_SECRET 一個你為應用程式註冊產生的客戶端秘密。

如需詳細資訊,請參閱在本機開發期間使用服務主體讓 Azure 服務驗證 Python 應用程式。