إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا التشغيل السريع، ستقوم بإنشاء علامة ميزة في Azure App Configuration واستخدامها للتحكم ديناميكيا في تطبيقات Python لإنشاء تنفيذ شامل لإدارة الميزات.
يوسع دعم إدارة الميزات ميزة التكوين الديناميكي في تكوين التطبيق. تعتمد هذه الأمثلة في التشغيل السريع على تطبيق python المقدم في البرنامج التعليمي للتكوين الديناميكي. قبل المتابعة، قم بإنهاء التشغيل السريع والبرنامج التعليمي لإنشاء تطبيقات python مع التكوين الديناميكي أولا.
لا تعتمد هذه المكتبة على أي مكتبات Azure. وهي تتكامل بسلاسة مع App Configuration من خلال موفر تكوين Python الخاص بها.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حسابًا مجانًا.
- متجر App Configuration، كما هو موضح في البرنامج التعليمي لإنشاء متجر.
- Python 3.8 أو أحدث - للحصول على معلومات حول إعداد Python على Windows، راجع Python على وثائق Windows، وإلا راجع تنزيلات python.
- azure-appconfiguration-provider library 1.2.0 أو أحدث.
إضافة علامة ميزة
أضف علامة ميزة تسمى Beta إلى متجر App Configuration واترك Label and Description بقيمها الافتراضية. لمزيد من المعلومات حول كيفية إضافة علامات الميزات إلى متجر باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء علامة ميزة. في هذه المرحلة، يجب إلغاء تحديد خانة الاختيار تمكين علامة الميزة.
تطبيقات وحدة التحكم
تثبيت إدارة الميزات باستخدام
pip installالأمر .pip install featuremanagementإنشاء ملف python جديد يسمى
app.pyوإضافة التعليمات البرمجية التالية:from featuremanagement import FeatureManager from azure.identity import InteractiveBrowserCredential from azure.appconfiguration.provider import load import os from time import sleep endpoint = os.environ["APP_CONFIGURATION_ENDPOINT"] # Connecting to Azure App Configuration using an endpoint # credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes). # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True) feature_manager = FeatureManager(config) # Is always false print("Beta is ", feature_manager.is_enabled("Beta")) while not feature_manager.is_enabled("Beta"): sleep(5) config.refresh() print("Beta is ", feature_manager.is_enabled("Beta"))
عند بدء تشغيل التطبيق، سيتم فتح نافذة مستعرض لمصادقة المستخدم. يجب أن يكون لدى المستخدم على الأقل الدور للوصول App Configuration Data Reader إلى متجر App Configuration، راجع أدوار تكوين التطبيق لمزيد من المعلومات.
قم بتعيين متغير بيئة يسمى APP_CONFIGURATION_ENDPOINT، وقم بتعيينه إلى نقطة النهاية إلى متجر App Configuration. في سطر الأوامر، قم بتشغيل الأمر التالي وأعد تشغيل موجه الأوامر للسماح بتنفيذ التغيير:
- واجهة أوامر Windows
- بوويرشيل
-
macOS - Linux
لإنشاء التطبيق وتشغيله محليًا باستخدام موجه أوامر Windows، قم بتشغيل الأمر التالي:
setx APP_CONFIGURATION_ENDPOINT "<endpoint-of-your-app-configuration-store>"أعد تشغيل موجه الأمر للسماح بالتغيير لأن يكون حيز التنفيذ. تحقق من أنه تم تعيينه بشكل صحيح عن طريق طباعة قيمة متغير البيئة.
تشغيل تطبيق python.
python app.pyفي مدخل App Configuration، حدد Feature Manager، وغير حالة علامة ميزة Beta إلى On، باستخدام التبديل في العمود Enabled .
مفتاح المنطقة الإصدار بيتا تشغيل بعد حوالي 30s، وهو الفاصل الزمني للتحديث للموفر، سيقوم التطبيق بطباعة ما يلي:
Beta is True
تطبيقات الويب
يوضح المثال التالي كيفية تحديث تطبيق ويب موجود، باستخدام Azure App Configuration مع تحديث ديناميكي لاستخدام علامات الميزات أيضا. راجع Python Dynamic Configuration للحصول على مثال أكثر تفصيلا حول كيفية استخدام التحديث الديناميكي لقيم التكوين. قبل المتابعة، تأكد من تمكين علامة ميزة Beta في متجر App Configuration.
في app.py، قم بإعداد أسلوب تحميل Azure App Configuration لتحميل علامات الميزات بالإضافة إلى ذلك، جنبا إلى جنب مع تمكين تحديث علامات الميزات.
from featuremanagement import FeatureManager
...
global azure_app_config, feature_manager
# Connecting to Azure App Configuration using an endpoint
# credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
# feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
# feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered
azure_app_config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
feature_flag_enabled=True,
feature_flag_refresh_enabled=True,
)
feature_manager = FeatureManager(config)
قم أيضا بتحديث المسارات للتحقق من وجود علامات ميزات محدثة.
@app.route("/")
def index():
...
context["message"] = azure_app_config.get("message")
context["beta"] = feature_manager.is_enabled("Beta")
...
قم بتحديث القالب index.html لاستخدام علامات الميزات الجديدة.
...
<body>
<main>
<div>
<h1>{{message}}</h1>
{% if beta %}
<h2>Beta is enabled</h2>
{% endif %}
</div>
</main>
</body>
بمجرد تحديث التطبيق وتشغيله، يمكنك رؤية علامة الميزة قيد التنفيذ، حيث Beta is enabled ستظهر الرسالة على الصفحة، ولكن فقط إذا تم تمكين علامة الميزة في متجر App Configuration.
يمكنك العثور على نموذج مشروع كامل هنا.
كلما تم تشغيل نقاط النهاية هذه، يمكن إجراء فحص تحديث لضمان استخدام أحدث قيم التكوين. يمكن أن يعود الفحص على الفور إذا لم يتم تمرير الفاصل الزمني للتحديث أو إذا كان التحديث قيد التقدم بالفعل.
عند اكتمال التحديث، يتم تحديث جميع القيم في وقت واحد، لذلك يكون التكوين دائما متناسقا داخل العنصر.
تنظيف الموارد
إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.
هام
حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.
- سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
- في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
- في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
- حدد Delete resource group.
- يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".
بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء متجر App Configuration جديد واستخدمته لإدارة الميزات في تطبيق Python عبر مكتبة إدارة الميزات.
- تعرف على المزيد حول feature management.
- إدارة علامات الميزات.