Bagikan melalui


Bagian 5: Dependensi aplikasi utama, pernyataan impor, dan variabel lingkungan

Bagian sebelumnya: Implementasi aplikasi utama

Bagian ini meninjau pustaka Python yang diimpor oleh aplikasi utama dan variabel lingkungan yang bergantung padanya. Saat aplikasi disebarkan ke Azure, variabel lingkungan ini disediakan melalui Pengaturan Aplikasi di Azure App Service.

Dependensi dan pernyataan impor

Aplikasi bergantung pada pustaka berikut:

  • Flask – untuk menentukan API web
  • requests – klien HTTP Python yang standar untuk melakukan panggilan API eksternal
  • azure.identity – untuk menangani autentikasi berbasis token ID Microsoft Entra
  • azure.keyvault.secrets – untuk mendapatkan informasi rahasia secara aman dari Azure Key Vault
  • azure.storage.queue – untuk berinteraksi dengan Azure Queue Storage

Dependensi ini disertakan dalam file requirements.txt aplikasi dan diinstal selama penyebaran atau penyiapan lokal.

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

Saat Anda menyebarkan aplikasi ke Azure App Service, Azure secara otomatis menginstal persyaratan ini di server host. Saat berjalan secara lokal, Anda menginstalnya di lingkungan Anda dengan pip install -r requirements.txt.

File kode dimulai dengan pernyataan impor yang diperlukan untuk bagian pustaka yang digunakan dalam kode:

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

Variabel lingkungan

Kode aplikasi tergantung pada empat variabel lingkungan ini:

Variabel Nilai
TITIK_AKHIR_API_PIHAK_KETIGA URL API pihak ketiga, seperti https://msdocs-example-api.azurewebsites.net/api/RandomNumber yang dijelaskan dalam Bagian 3.
KEY_VAULT_URL URL Azure Key Vault tempat Anda menyimpan kunci akses untuk API pihak ketiga.
Nama Rahasia API Pihak Ketiga (THIRD_PARTY_API_SECRET_NAME) Nama rahasia di Key Vault yang berisi kunci akses untuk API pihak ketiga.
STORAGE_QUEUE_URL URL Antrean Azure Storage yang Anda konfigurasi di Azure, seperti https://msdocsexamplemainapp.queue.core.windows.net/code-requests (lihat Bagian 4). Karena nama antrean disertakan di akhir URL, Anda tidak melihat nama di mana pun dalam kode.

Cara Anda mengatur variabel ini bergantung pada tempat kode berjalan:

  • Saat menjalankan kode secara lokal, Anda membuat variabel ini dalam shell perintah apa pun yang Anda gunakan (seperti PowerShell, Bash, atau CMD). (Jika Anda menyebarkan aplikasi ke komputer virtual, Anda akan membuat variabel sisi server serupa.) Anda juga dapat menggunakan pustaka seperti python-dotenv, yang membaca pasangan kunci-nilai dari file .env dan mengaturnya sebagai variabel lingkungan

  • Saat kode disebarkan ke Azure App Service, seperti yang ditunjukkan dalam panduan ini, Anda tidak memiliki akses ke server itu sendiri. Sebagai gantinya, Anda menentukan pengaturan aplikasi dengan nama yang sama dalam konfigurasi App Service. Pengaturan ini secara otomatis diekspos ke aplikasi sebagai variabel lingkungan.

Skrip provisi membuat pengaturan ini menggunakan perintah Azure CLI, az webapp config appsettings set. Keempat variabel diatur dengan satu perintah.

Untuk membuat pengaturan melalui portal Microsoft Azure, lihat Mengonfigurasi aplikasi App Service di portal Microsoft Azure.

Saat menjalankan kode secara lokal, Anda juga perlu menentukan variabel lingkungan yang berisi informasi tentang perwakilan layanan lokal Anda. DefaultAzureCredential mencari nilai-nilai ini. Saat disebarkan ke App Service, Anda tidak perlu mengatur nilai-nilai ini karena identitas terkelola yang ditetapkan sistem aplikasi digunakan sebagai gantinya untuk mengautentikasi.

Variabel Nilai
AZURE_TENANT_ID (ID Penyewa Azure) ID penyewa (direktori) Microsoft Entra.
AZURE_CLIENT_ID ID klien (aplikasi) Pendaftaran Aplikasi di penyewa.
AZURE_CLIENT_SECRET Rahasia klien yang dihasilkan untuk Pendaftaran Aplikasi.

Untuk informasi selengkapnya, lihat Mengautentikasi aplikasi Python dengan layanan Azure selama pengembangan lokal melalui perwakilan layanan.