Del 5: Huvudappberoenden, importinstruktioner och miljövariabler

Föregående del: Implementering av huvudappar

Det här avsnittet granskar De Python-bibliotek som importeras av huvudprogrammet och de miljövariabler som det är beroende av. När du distribuerar appen till Azure anger du dessa miljövariabler via Programinställningar i Azure App Service.

Beroenden och importsatser

Programmet förlitar sig på följande bibliotek:

  • Flask – för att definiera webb-API:et
  • requests – standardklient för HTTP i Python för att göra utgående nätverksanrop
  • azure.identity – för hantering av Tokenbaserad autentisering baserad på Microsoft Entra-ID
  • azure.keyvault.secrets – för att på ett säkert sätt hämta hemligheter från Azure Key Vault
  • azure.storage.queue – för att interagera med Azure Queue Storage

Inkludera dessa beroenden i appens requirements.txt-fil . Installera dem under distributionen eller den lokala installationen.

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

När du distribuerar appen till Azure App Service installerar Azure automatiskt dessa krav på värdservern. När du kör lokalt installerar du dem i din miljö med pip install -r requirements.txt.

Kodfilen börjar med nödvändiga importinstruktioner för de delar av biblioteken som används i koden:

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

Miljövariabler

Appkoden beror på dessa fyra miljövariabler:

Variabel Värde
THIRD_PARTY_API_ENDPOINT URL:en för API:et från tredje part, till exempel https://msdocs-example-api.azurewebsites.net/api/RandomNumber som beskrivs i del 3.
KEY_VAULT_URL URL:en för Azure Key Vault där du lagrade åtkomstnyckeln för API:et från tredje part.
THIRD_PARTY_API_SECRET_NAME Namnet på hemligheten i Key Vault som innehåller åtkomstnyckeln för API:et från tredje part.
STORAGE_QUEUE_URL URL:en för en Azure Storage-kö som du konfigurerar i Azure, till exempel https://msdocsexamplemainapp.queue.core.windows.net/code-requests (se del 4). Eftersom köens namn ingår i slutet av URL:en ser du inte namnet någonstans i koden.

Hur du anger dessa variabler beror på var koden körs:

  • När du kör koden lokalt skapar du dessa variabler i det kommandogränssnitt som du använder (till exempel PowerShell, Bash eller CMD). (Om du distribuerar appen till en virtuell dator skapar du liknande variabler på serversidan.) Du kan också använda ett bibliotek som python-dotenv, som läser nyckel/värde-par från en .env-fil och anger dem som miljövariabler.

  • När du distribuerar koden till Azure App Service, som du ser i den här genomgången, har du inte åtkomst till själva servern. Definiera i stället programinställningar med samma namn i App Service-konfigurationen. De här inställningarna exponerar automatiskt programmet som miljövariabler.

Etableringsskripten skapar dessa inställningar med hjälp av kommandot Azure CLI, az webapp config appsettings set. Ange alla fyra variablerna med ett enda kommando.

Information om hur du skapar inställningar via Azure-portalen finns i Konfigurera en App Service-app i Azure-portalen.

När du kör koden lokalt måste du också ange miljövariabler som innehåller information om ditt lokala tjänsthuvudnamn. DefaultAzureCredential söker efter dessa värden. När appen distribueras till App Service behöver du inte ange dessa värden eftersom appens systemtilldelade hanterade identitet i stället används för autentisering.

Variabel Värde
AZURE_TENANT_ID Microsoft Entra-klientorganisationens (katalog)-ID.
AZURE_CLIENT_ID Klientens (programmets) ID för en appregistrering i klientorganisationen.
AZURE_CLIENT_SECRET En klienthemlighet som du genererade för appregistreringen.

Mer information finns i Autentisera Python-appar till Azure-tjänster under lokal utveckling med hjälp av tjänstens huvudnamn.