مشاركة عبر


التفاعل مع أحداث تكوين تطبيق Azure

تمكن أحداث تكوين تطبيق Azure التطبيقات من التفاعل مع التغييرات في قيم المفاتيح. يتم ذلك دون الحاجة إلى كود معقد أو خدمات اقتراع باهظة الثمن وغير فعالة. بدلا من ذلك، يتم دفع الأحداث من خلال Azure Event Grid إلى المشتركين، مثل Azure Functions أو Azure Logic Apps أو حتى إلى مستمع HTTP المخصص الخاص بك. بشكل حاسم ، أنت تدفع فقط مقابل ما تستخدمه.

يتم إرسال أحداث تكوين تطبيق Azure إلى Azure Event Grid، والتي توفر خدمات تسليم موثوقة لتطبيقاتك من خلال نهج إعادة المحاولة الغنية والتسليم بالرسائل المنسقة. لمزيد من المعلومات، راجع تسليم رسالة Event Grid وإعادة المحاولة.

تتضمن سيناريوهات أحداث تكوين التطبيق الشائعة تحديث تكوين التطبيق أو تشغيل عمليات النشر أو أي سير عمل موجه نحو التكوين. عندما تكون التغييرات نادرة، ولكن السيناريو الخاص بك يتطلب استجابة فورية، يمكن أن تكون البنية المستندة إلى الأحداث فعالة بشكل خاص.

ألق نظرة على استخدام شبكة الأحداث لإشعارات تغيير البيانات للحصول على مثال سريع.

رسم تخطيطي يوضح نموذج شبكة الحدث.

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

تستخدم Event Grid اشتراكات الأحداث لتوجيه رسائل الأحداث إلى المشتركين. يصدر تكوين تطبيق Azure أنواع الأحداث التالية:

نوع الحدث ‏‏الوصف
Microsoft.AppConfiguration.KeyValueModified يتم رفعه عند إنشاء قيمة مفتاح أو استبدالها.
Microsoft.AppConfiguration.KeyValueDeleted يتم رفعه عند حذف قيمة مفتاح.
Microsoft.AppConfiguration.SnapshotCreated مرفوعة عند إنشاء لقطة.
Microsoft.AppConfiguration.SnapshotModified يتم رفعه عند تعديل لقطة.

مخطط الحدث

يحتوي الحدث على بيانات المستوى الأعلى التالية:

Property نوع ‏‏الوصف
source string مسار المورد الكامل إلى مصدر الحدث. هذا الحقل غير قابل للكتابة. توفر Event Grid هذه القيمة.
subject string المسار المحدد من قبل الناشر لموضوع الحدث.
type string أحد أنواع الأحداث المسجلة لمصدر الحدث هذا.
time string الوقت الذي يتم فيه إنشاء الحدث استنادا إلى وقت التوقيت العالمي المنسق للمزود.
id string معرف فريد للحدث.
data كائن بيانات حدث ضبط التطبيق.
specversion string إصدار مواصفات مخطط CloudEvents.

يحتوي كائن البيانات على الخصائص التالية:

حدث القيمة الرئيسية

Property نوع ‏‏الوصف
key string مفتاح قيمة المفتاح التي تم تعديلها أو حذفها.
label string التسمية، إن وجدت، لقيمة المفتاح التي تم تعديلها أو حذفها.
etag string لعلامة KeyValueModified etag لقيمة المفتاح الجديدة. بالنسبة إلى KeyValueDeleted etag الخاص بقيمة المفتاح التي تم حذفها.
syncToken string الرمز المميز للمزامنة الذي يمثل حالة الخادم بعد حدث قيمة المفتاح.

حدث لقطة

Property نوع ‏‏الوصف
name string اسم اللقطة التي تم إنشاؤها أو تعديلها.
etag string للحصول على SnapshotCreated علامة اللقطة الجديدة. بالنسبة إلى SnapshotModified etag للقطة التي تم تعديلها.
syncToken string الرمز المميز للمزامنة الذي يمثل حالة الخادم بعد حدث اللقطة.

مثال على الحدث

يوضح المثال التالي مخطط حدث معدل لقيمة المفتاح:

[{
  "id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
  "source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 يرسل الحدث.
  • تحقق من eventType، ولا تفترض أن جميع الأحداث التي تتلقاها ستكون الأنواع التي تتوقعها.
  • استخدم etag الحقول لفهم ما إذا كانت معلوماتك حول الكائنات لا تزال up-to-date.
  • استخدم حقول التسلسل لفهم ترتيب الأحداث على أي كائن معين.
  • استخدم حقل الموضوع للوصول إلى قيمة المفتاح التي تم تعديلها.

الخطوات التالية

لمعرفة المزيد حول Event Grid ولتجربة أحداث تكوين تطبيق Azure، راجع: