الرد على أحداث Azure App Configuration
تعمل أحداث Azure App Configuration على تمكين التطبيقات من الاستجابة للتغييرات في قيم المفاتيح. يتم ذلك دون الحاجة إلى كود معقد أو خدمات اقتراع باهظة الثمن وغير فعالة. بدلاً من ذلك، يتم دفع الأحداث عبر Azure Event Grid إلى المشتركين مثل Azure Functions أو Azure Logic Apps أو حتى إلى مستمع HTTP المخصص الخاص بك. بشكل حاسم، أنت تدفع فقط مقابل ما تستخدمه.
يتم إرسال أحداث Azure App Configuration إلى Azure Event Grid، والتي توفر خدمات تسليم موثوقة لتطبيقاتك من خلال نُهج إعادة المحاولة الثرية وتسليم الرسائل المهملة. لمزيد من المعلومات، راجع تسليم رسالة Event Grid، وإعادة المحاولة.
تتضمن سيناريوهات أحداث App Configuration الشائعة تحديث App Configuration أو تشغيل عمليات التوزيع أو أي سير عمل موجه نحو التكوين. عندما تكون التغييرات نادرة، ولكن السيناريو الخاص بك يتطلب استجابة فورية، يمكن أن تكون البنية القائمة على الأحداث فعالة على نحو خاص.
ألقِ نظرة على استخدام Event Grid لإعلامات تغيير البيانات للحصول على مثال سريع.
أنواع الأحداث المتاحة
تستخدم شبكة الأحداث اشتراكات الأحداث لتوجيه رسائل الأحداث إلى المشتركين. يقوم تكوين تطبيق Azure بإصدار أنواع الأحداث التالية:
نوع الحدث | الوصف |
---|---|
Microsoft.AppConfiguration.KeyValueModified | العرض عند إنشاء قيمة مفتاح أو استبدالها. |
Microsoft.AppConfiguration.KeyValueDeleted | العرض عند حذف قيمة مفتاح. |
Microsoft.AppConfiguration.SnapshotCreated | يرفع عند إنشاء لقطة. |
Microsoft.AppConfiguration.SnapshotModified | يرفع عند تعديل لقطة. |
Event schema
ويحتوي الحدث على بيانات المستوى الأعلى التالية:
الخاصية | نوع | الوصف |
---|---|---|
source |
سلسلة | مسار المورد الكامل إلى مصدر الحدث. هذا الحقل غير قابل للكتابة. توفر شبكة الأحداث هذه القيمة. |
subject |
سلسلة | مسار يحدده الناشر لموضوع الحدث. |
type |
سلسلة | أحد أنواع الأحداث المسجلة لمصدر الحدث الماثل. |
time |
سلسلة | الوقت الذي يتم إنشاء الحدث استناداً إلى وقت UTC الموفر. |
id |
سلسلة | المعرف الفريد للحدث. |
data |
كائن | بيانات حدث تكوين التطبيق. |
specversion |
سلسلة | إصدار مواصفات مخطط CloudEvents. |
كائن البيانات له الخصائص التالية:
حدث قيمة المفتاح
الخاصية | نوع | الوصف |
---|---|---|
key |
سلسلة | مفتاح قيمة المفتاح الذي تم تعديله أو حذفه. |
label |
سلسلة | التسمية، إن وجدت، لقيمة المفتاح التي تم تعديلها أو حذفها. |
etag |
سلسلة | للحصول KeyValueModified على etag قيمة المفتاح الجديد. للحصول KeyValueDeleted على etag قيمة المفتاح التي تم حذفها. |
syncToken |
سلسلة | رمز المزامنة الذي يمثل حالة الخادم بعد حدث قيمة المفتاح. |
حدث اللقطة
الخاصية | نوع | الوصف |
---|---|---|
name |
سلسلة | اسم اللقطة التي تم إنشاؤها أو تعديلها. |
etag |
سلسلة | للحصول SnapshotCreated على etag للقطة الجديدة. للحصول SnapshotModified على etag للقطة التي تم تعديلها. |
syncToken |
سلسلة | رمز المزامنة الذي يمثل حالة الخادم بعد حدث اللقطة. |
مثال حدث
يوضح المثال التالي مخطط حدث تعديل قيمة المفتاح:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueModified",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
يوضح المثال التالي مخطط حدث حذف قيمة المفتاح:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueDeleted",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
يوضح المثال التالي مخطط حدث تم إنشاؤه للقطة:
[{
"source": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kvsnapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotCreated",
"time": "2023-09-02T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
يوضح المثال التالي مخطط حدث معدل للقطة:
[{
"source": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/snapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotModified",
"time": "2023-09-03T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
لمزيد من المعلومات، راجع مخطط أحداث Azure App Configuration.
ممارسات لاستهلاك الأحداث
يجب أن تتبع التطبيقات التي تتعامل مع أحداث App Configuration هذه الممارسات الموصى بها:
- يمكن تكوين اشتراكات متعددة لتوجيه الأحداث إلى نفس معالج الأحداث، لذلك لا تفترض أن الأحداث من مصدر معين. بدلاً من ذلك، تحقق من موضوع الرسالة للتأكد من إرسال مثيل App Configuration للحدث.
- تحقق من
eventType
ولا تفترض أن جميع الأحداث التي تتلقاها هي الأنواع التي تتوقعها. - استخدم حقول
etag
لفهم ما إذا كانت معلوماتك حول العناصر لا تزال محدثة. - استخدم حقول جهاز التسلسل لفهم ترتيب الأحداث على أي عنصر معين.
- استخدم حقل الموضوع للوصول إلى قيمة المفتاح التي تم تعديلها.
الخطوات التالية
للتعرف على المزيد حول Event Grid وتجربة أحداث Azure App Configuration، راجع: