Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyedia Python Azure App Configuration mencakup kemampuan penembolokan dan refresh bawaan. Tutorial ini menunjukkan cara mengaktifkan konfigurasi dinamis dalam aplikasi Python.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun gratis.
- Penyimpanan Azure App Configuration. Buat toko.
- Python 3.8 atau yang lebih baru - untuk informasi tentang menyiapkan Python di Windows, lihat dokumentasi Python di Windows
Menambahkan nilai kunci
Tambahkan nilai kunci berikut ke penyimpanan Azure App Configuration Anda. Untuk informasi selengkapnya tentang cara menambahkan nilai kunci ke penyimpanan menggunakan portal Azure atau CLI, buka Membuat nilai kunci.
| Tombol | Nilai | Label | Jenis konten |
|---|---|---|---|
| message | Halo Dunia! | Biarkan kosong | Biarkan kosong |
| sentinel | 1 | Biarkan kosong | Biarkan kosong |
Catatan
Kunci sentinel adalah kunci yang Anda perbarui setelah menyelesaikan perubahan semua kunci lainnya. Aplikasi Anda memantau kunci sentinel. Saat perubahan terdeteksi, aplikasi Anda me-refresh semua nilai konfigurasi. Pendekatan ini membantu memastikan konsistensi konfigurasi di aplikasi Anda dan mengurangi jumlah keseluruhan permintaan yang dibuat ke penyimpanan Azure App Configuration Anda, dibandingkan dengan memantau semua kunci untuk perubahan.
Aplikasi konsol
Buat file Python baru bernama app.py dan tambahkan kode berikut:
Anda menggunakan
DefaultAzureCredentialuntuk mengautentikasi ke penyimpanan App Configuration Anda. Ikuti instruksi untuk menetapkan kredensial Anda peran Pembaca Data App Configuration. Pastikan untuk mengizinkan waktu yang memadai agar izin disebarluaskan sebelum menjalankan aplikasi Anda.from azure.appconfiguration.provider import load, WatchKey from azure.identity import DefaultAzureCredential import os import time endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT") # Connecting to Azure App Configuration using connection string # Setting up to refresh when the Sentinel key is changed. config = load( endpoint=endpoint, credential=DefaultAzureCredential(), refresh_on=[WatchKey("sentinel")], refresh_interval=10, # Default value is 30 seconds, shorted for this sample ) print("Update the `message` in your Azure App Configuration store using Azure portal or CLI.") print("First, update the `message` value, and then update the `sentinel` key value.") while (True): # Refreshing the configuration setting config.refresh() # Current value of message print(config["message"]) # Waiting before the next refresh time.sleep(5)Jalankan skrip Anda:
python app.pyVerifikasi Output:
Update the `message` in your Azure App Configuration store using Azure portal or CLI. First, update the `message` value, and then update the `sentinel` key value. Hello World!Perbarui nilai kunci berikut ke penyimpanan Azure App Configuration.
Tombol Nilai Label Jenis konten message Halo Dunia Disegarkan! Biarkan kosong Biarkan kosong sentinel 2 Biarkan kosong Biarkan kosong Setelah nilai diperbarui, nilai yang diperbarui akan dicetak ketika interval refresh telah berlalu.
Hello World Refreshed!
Aplikasi web
Contoh berikut menunjukkan cara memperbarui aplikasi web yang ada untuk menggunakan nilai konfigurasi yang dapat di-refresh. Panggilan balik dapat diberikan ke on_refresh_success argumen load kata kunci fungsi. Panggilan balik ini akan dipanggil ketika perubahan konfigurasi terdeteksi di server, dan dapat digunakan untuk memperbarui nilai konfigurasi dalam aplikasi.
Di app.py, siapkan Azure App Configuration untuk memuat nilai konfigurasi Anda. Kemudian perbarui titik akhir Anda untuk memeriksa nilai konfigurasi yang diperbarui.
from azure.appconfiguration.provider import load, WatchKey
from azure.identity import DefaultAzureCredential
azure_app_config = None # declare azure_app_config as a global variable
def on_refresh_success():
app.config.update(azure_app_config)
global azure_app_config
azure_app_config = load(endpoint=os.environ.get("AZURE_APPCONFIG_ENDPOINT"),
credential=DefaultAzureCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
)
@app.route("/")
def index():
global azure_app_config
# Refresh the configuration from Azure App Configuration service.
azure_app_config.refresh()
# Access a configuration setting directly from within Flask configuration
print("Request for index page received")
context = {}
context["message"] = app.config.get("message")
return render_template("index.html", **context)
Perbarui templat index.html Anda untuk menggunakan nilai konfigurasi baru.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
Anda dapat menemukan proyek sampel lengkap di sini.
Setiap kali titik akhir ini dipicu, pemeriksaan refresh dapat dilakukan untuk memastikan nilai konfigurasi terbaru digunakan. Pemeriksaan dapat segera kembali jika interval refresh belum berlalu atau refresh sudah berlangsung.
Saat refresh selesai, semua nilai diperbarui sekaligus, sehingga konfigurasi selalu konsisten dalam objek.
CATATAN: Jika interval refresh belum berlalu, refresh tidak akan dicoba dan dikembalikan segera.
Langkah berikutnya
Dalam tutorial ini, Anda mengaktifkan aplikasi Python untuk menyegarkan pengaturan konfigurasi secara dinamis dari Azure App Configuration. Untuk mempelajari cara menggunakan identitas terkelola Azure untuk menyederhanakan akses ke Azure App Configuration, lanjutkan ke tutorial berikutnya.