Bölüm 5: Ana uygulama bağımlılıkları, içeri aktarma deyimleri ve ortam değişkenleri

Önceki bölüm: Ana uygulama uygulaması

Bu bölümde, ana uygulama tarafından içeri aktarılan Python kitaplıkları ve bağlı olduğu ortam değişkenleri incelenir. Uygulamayı Azure dağıttığınızda, Azure App Service'daki Uygulama Ayarları aracılığıyla bu ortam değişkenlerini sağlayın.

Bağımlılıklar ve içeri aktarma ifadeleri

Uygulama aşağıdaki kitaplıklara dayanır:

  • Flask – web API'sini tanımlamak için
  • requests – Giden API çağrıları yapmak için standart Python HTTP istemcisi
  • azure.identity – Microsoft Entra Id belirteç tabanlı kimlik doğrulamasını işlemek için
  • azure.keyvault.secrets – Azure Key Vault'tan sırları güvenli bir şekilde almak için
  • azure.storage.queue – Azure Kuyruk Depolama ile etkileşime geçmek için

Bu bağımlılıkları uygulamanın requirements.txt dosyasına ekleyin. Bunları dağıtım veya yerel kurulum sırasında yükleyin.

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

Uygulamayı Azure App Service'e dağıttığınızda, Azure bu gereksinimleri konak sunucusuna otomatik olarak yükler. Yerel ortamda çalıştırırken, bunları pip install -r requirements.txt ile ortamınıza yükleyin.

Kod dosyası, kodda kullanılan kitaplıkların bölümleri için gerekli içeri aktarma deyimleriyle başlar:

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

Ortam değişkenleri

Uygulama kodu şu dört ortam değişkenine bağlıdır:

Değişken Değer
THIRD_PARTY_API_ENDPOINT https://msdocs-example-api.azurewebsites.net/api/RandomNumber'nde açıklanan gibi üçüncü taraf API'sinin URL'si.
KEY_VAULT_URL Üçüncü taraf API'si için erişim anahtarını depoladığınız Azure Key Vault'un URL'si.
THIRD_PARTY_API_SECRET_NAME Key Vault'ta, üçüncü taraf API'sinin erişim anahtarını içeren gizli bilginin adı.
STORAGE_QUEUE_URL Azure'da yapılandırdığınız azure depolama kuyruğunun URL'si ( https://msdocsexamplemainapp.queue.core.windows.net/code-requests bkz . Bölüm 4). Kuyruk adı URL'nin sonuna eklendiğinden kodun herhangi bir yerinde adı görmezsiniz.

Bu değişkenleri nasıl ayarlayacağınız, kodun çalıştığı yere bağlıdır:

  • Kodu yerel olarak çalıştırırken, kullandığınız komut kabuğunda (PowerShell, Bash veya CMD gibi) bu değişkenleri oluşturun. (Uygulamayı bir sanal makineye dağıtırsanız, benzer sunucu tarafı değişkenleri oluşturursunuz.) Bir .env dosyasından anahtar-değer çiftlerini okuyan ve ortam değişkenleri olarak ayarlayan python-dotenv gibi bir kitaplık da kullanabilirsiniz.

  • Kodu bu kılavuzda gösterildiği gibi Azure App Service dağıttığınızda, sunucunun kendisine erişiminiz olmaz. Bunun yerine, App Service yapılandırmasında aynı adlarla uygulama ayarlarını tanımlayın. Bu ayarlar, uygulamayı otomatik olarak ortam değişkenleri olarak kullanıma sunar.

Sağlama betikleri, Azure CLI komutunu az webapp config appsettings setkullanarak bu ayarları oluşturur. Dört değişkenin tümünü tek bir komutla ayarlayın.

Azure portalı aracılığıyla ayarlar oluşturmak için bkz. Azure portalında App Service uygulaması yapılandırma.

Kodu yerel olarak çalıştırırken, yerel hizmet sorumlunuz hakkında bilgi içeren ortam değişkenlerini de belirtmeniz gerekir. DefaultAzureCredential bu değerleri arar. App Service'e dağıtıldığında, uygulamanın sistem tarafından atanan yönetilen kimliği kimlik doğrulaması yerine kullanıldığından bu değerleri ayarlamanız gerekmez.

Değişken Değer
AZURE_TENANT_ID Microsoft Entra kiracısı (dizin) kimliği.
AZURE_CLIENT_ID Kiracıdaki bir Uygulama Kaydının istemci (uygulama) kimliği.
AZURE_CLIENT_SECRET Uygulama Kaydı için oluşturduğunuz bir istemci parolası.

Daha fazla bilgi için, yerel geliştirme sırasında hizmet sorumlularını kullanarak Azure hizmetlerinde Python uygulamalarının kimliğini doğrulama hakkında bilgi için 'a bakın.