الرد على أحداث 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 لإعلامات تغيير البيانات للحصول على مثال سريع.

Diagram that shows Event Grid Model.

أنواع الأحداث المتاحة

تستخدم شبكة الأحداث اشتراكات الأحداث لتوجيه رسائل الأحداث إلى المشتركين. يقوم تكوين تطبيق 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، راجع: