إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتضمن موفر Azure App Configuration Python إمكانات التخزين المؤقت والتحديث المضمنة. يوضح هذا البرنامج التعليمي كيفية تمكين التكوين الديناميكي في تطبيقات Python.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حسابًا مجانًا.
- مخزن Azure App Configuration. إنشاء متجر.
- Python 3.8 أو إصدار أحدث - للحصول على معلومات حول إعداد Python على Windows، راجع Python على وثائق Windows
إضافة قيم المفاتيح
أضف قيمة المفتاح التالية إلى مخزن Azure App Configuration. لمزيد من المعلومات حول كيفية إضافة قيم المفاتيح إلى مخزن باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء قيمة مفتاح.
| مفتاح | القيمة | تسمية | نوع المحتوى |
|---|---|---|---|
| رسالة | مرحبًا بالعالم! | اتركه فارغًا | اتركه فارغًا |
| الحارس | 1 | اتركه فارغًا | اتركه فارغًا |
إشعار
مفتاح sentinel هو مفتاح تقوم بتحديثه بعد إكمال تغيير جميع المفاتيح الأخرى. يراقب تطبيقك مفتاح sentinel. عند الكشف عن تغيير، يقوم تطبيقك بتحديث كافة قيم التكوين. يساعد هذا الأسلوب على ضمان تناسق التكوين في تطبيقك ويقلل من العدد الإجمالي للطلبات المقدمة إلى مخزن Azure App Configuration، مقارنة بمراقبة جميع مفاتيح التغييرات.
تطبيقات وحدة التحكم
أنشئ ملف Python جديدا باسم app.py وأضف التعليمات البرمجية التالية:
يمكنك استخدام
DefaultAzureCredentialللمصادقة على متجر App Configuration. اتبع الإرشادات لتعيين بيانات الاعتماد الخاصة بك دور قارئ بيانات تكوين التطبيق. تأكد من السماح بوقت كاف للإذن للنشر قبل تشغيل التطبيق الخاص بك.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)تشغيل البرنامج النصي الخاص بك:
python app.pyتحقق من الإخراج:
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!قم بتحديث قيم المفاتيح التالية إلى مخزن Azure App Configuration.
مفتاح القيمة تسمية نوع المحتوى رسالة تم تحديث مرحبًا بالعالم! اتركه فارغًا اتركه فارغًا الحارس 2 اتركه فارغًا اتركه فارغًا بمجرد تحديث القيم، ستتم طباعة القيمة المحدثة عند مرور الفاصل الزمني للتحديث.
Hello World Refreshed!
تطبيقات الويب
يوضح المثال التالي كيفية تحديث تطبيق ويب موجود لاستخدام قيم التكوين القابلة للتحديث. يمكن توفير رد اتصال إلى وسيطة on_refresh_success الكلمة الأساسية للدالة load . سيتم استدعاء رد الاتصال هذا عند الكشف عن تغيير التكوين على الخادم، ويمكن استخدامه لتحديث قيم التكوين في التطبيق.
في app.py، قم بإعداد Azure App Configuration لتحميل قيم التكوين الخاصة بك. ثم قم بتحديث نقاط النهاية للتحقق من وجود قيم تكوين محدثة.
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)
قم بتحديث القالب index.html لاستخدام قيم التكوين الجديدة.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
يمكنك العثور على نموذج مشروع كامل هنا.
كلما تم تشغيل نقاط النهاية هذه، يمكن إجراء فحص تحديث لضمان استخدام أحدث قيم التكوين. يمكن أن يعود الفحص على الفور إذا لم يتم تمرير الفاصل الزمني للتحديث أو إذا كان التحديث قيد التقدم بالفعل.
عند اكتمال التحديث، يتم تحديث جميع القيم في وقت واحد، لذلك يكون التكوين دائما متناسقا داخل العنصر.
ملاحظة: إذا لم يمر الفاصل الزمني للتحديث، فلن تتم محاولة التحديث وإعادته على الفور.
الخطوات التالية
في هذا البرنامج التعليمي، قمت بتمكين تطبيق Python لتحديث إعدادات التكوين ديناميكيا من Azure App Configuration. لمعرفة كيفية استخدام هوية مدارة من Azure لتبسيط الوصول إلى Azure App Configuration، تابع إلى البرنامج التعليمي التالي.