5. rész: Fő alkalmazásfüggőségek, importálási utasítások és környezeti változók

Előző rész: Fő alkalmazás-implementáció

Ez a szakasz áttekinti a fő alkalmazás által importált Python-kódtárakat, valamint azokat a környezeti változókat, amelyektől függ. Amikor üzembe helyezi az alkalmazást a Azure, adja meg ezeket a környezeti változókat a Azure App Service alkalmazásbeállításokon keresztül.

Függőségek és importálási utasítások

Az alkalmazás a következő kódtárakra támaszkodik:

  • Flask – a webes API definiálása
  • kérések – a standard Python HTTP-ügyfél kimenő API-hívások indításához
  • azure.identity – a Microsoft Entra ID tokendalapú hitelesítésének kezelésére
  • azure.keyvault.secrets – titkos kulcsok biztonságos lekérése az Azure Key Vaultból
  • azure.storage.queue – az Azure Queue Storage használata

Vegye fel ezeket a függőségeket az alkalmazás requirements.txt fájlba. Telepítse őket az üzembe helyezés vagy a helyi beállítás során.

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

Amikor üzembe helyezi az alkalmazást az Azure App Service-ben, az Azure automatikusan telepíti ezeket a követelményeket a gazdakiszolgálóra. Helyi futtatás esetén telepítse őket a környezetébe a(z) pip install -r requirements.txt paranccsal.

A kódfájl a kódtáraknak a kódban használt részeihez szükséges importálási utasításokkal kezdődik:

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

Környezeti változók

Az alkalmazáskód a következő négy környezeti változótól függ:

Változó Érték
THIRD_PARTY_API_ENDPOINT A harmadik fél API-jának URL-címe, például a https://msdocs-example-api.azurewebsites.net/api/RandomNumber-ben leírt .
KEY_VAULT_URL Annak az Azure Key Vaultnak az URL-címe, amelyben a külső API hozzáférési kulcsát tárolta.
THIRD_PARTY_API_SECRET_NAME A kulcstartóban lévő titkos kód neve, amely a külső API hozzáférési kulcsát tartalmazza.
STORAGE_QUEUE_URL Az Azure-ban konfigurált Azure Storage-üzenetsor URL-címe, például https://msdocsexamplemainapp.queue.core.windows.net/code-requests (lásd a 4. részt). Mivel az üzenetsor neve az URL-cím végén található, a kódban sehol nem látja a nevet.

A változók beállítása attól függ, hogy a kód hol fut:

  • A kód helyi futtatásakor hozza létre ezeket a változókat a használt parancshéjon belül (például PowerShell, Bash vagy CMD). (Ha az alkalmazást egy virtuális gépen helyezi üzembe, hasonló kiszolgálóoldali változókat hoz létre.) Használhat olyan kódtárat is, mint a Python-dotenv, amely egy .env fájlból olvassa be a kulcs-érték párokat, és környezeti változókként állítja be őket.

  • Amikor üzembe helyezi a kódot a Azure App Service, ahogyan az ebben az útmutatóban látható, nem rendelkezik hozzáféréssel magához a kiszolgálóhoz. Ehelyett azonos nevű alkalmazásbeállításokat definiáljon az App Service-konfigurációban. Ezek a beállítások automatikusan környezeti változókként teszik elérhetővé az alkalmazást.

A kiépítési szkriptek a Azure CLI paranccsal hozzák létre ezeket a beállításokataz webapp config appsettings set. Állítsa be mind a négy változót egyetlen paranccsal.

Ha az Azure Portalon szeretne beállításokat létrehozni, olvassa el App Service-alkalmazás konfigurálása az Azure Portalon.

A kód helyi futtatásakor olyan környezeti változókat is meg kell adnia, amelyek információkat tartalmaznak a helyi szolgáltatásnévről. DefaultAzureCredential ezeket az értékeket keresi. Az App Service-ben való üzembe helyezéskor nem kell ezeket az értékeket beállítania, mivel az alkalmazás rendszer által hozzárendelt felügyelt identitását használja a rendszer a hitelesítéshez.

Változó Érték
AZURE_TENANT_ID A Microsoft Entra-bérlő (címtár) azonosítója.
AZURE_CLIENT_ID Egy alkalmazásregisztráció ügyfél-(alkalmazás-) azonosítója a bérlőben.
AZURE_CLIENT_SECRET Az alkalmazásregisztrációhoz létrehozott ügyfélkód.

További információ: Python-alkalmazások hitelesítése az Azure-szolgáltatásokba a helyi fejlesztés során szolgáltatásnevek használatával.