Event domains in Azure Event Grid

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

تمنحك نطاقات الأحداث أيضا المصادقة والسيطرة على التفويض على كل موضوع حتى تتمكن من تقسيم المستأجرين لديك. توضح هذه المقالة كيفية استخدام مجالات الأحداث لإدارة تدفق الأحداث المخصصة إلى مختلف مؤسسات الأعمال أو العملاء أو التطبيقات. استخدم مجالات الأحداث من أجل:

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

مثال على حالة استخدام مجال الأحداث

يتم شرح مجالات الأحداث بسهولة باستخدام مثال. لنفترض أنك تدير شركة Contoso Construction Machinery، حيث تقوم بتصنيع الجرارات ومعدات الحفر والآلات الثقيلة الأخرى. كجزء من إدارة الأعمال، فإنك ترسل معلومات في الوقت الفعلي للعملاء حول صيانة المعدات، وصحة الأنظمة، وتحديثات العقود. تنتقل كل هذه المعلومات إلى نقاط نهاية مختلفة بما في ذلك التطبيق ونقاط نهاية العميل والبنية الأساسية الأخرى التي أعدها عملاؤك.

تسمح لك مجالات الأحداث بنمذجة Contoso Construction Machinery ككيان واحد لشبكة الأحداث. يتم تمثيل كل عميل من عملائك كموضوع داخل المجال. تتم معالجة المصادقة والتخويل باستخدام معرف Microsoft Entra. يمكن لكل عميل من عملائك الاشتراك في موضوعهم، وتسليم أحداثهم إليهم. يضمن الوصول المُدار من خلال مجال الحدث أنه يمكنهم فقط الوصول إلى موضوعهم.

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

صورة تعرض مثال حالة استخدام لاستخدام مجالات شبكة الأحداث.

إدارة الوصول لنطاقات الأحداث

توفر نطاقات الأحداث تفويضا دقيقا وتحكما في المصادقة على كل موضوع من خلال التحكم في الوصول القائم على الأدوار في Azure (Azure RBAC). استخدم أدوار Azure RBAC لتقييد كل مستأجر في تطبيقك بالمواضيع التي تريد منحه الوصول إليها فقط. يعمل Azure RBAC في مجالات الأحداث بنفس الطريقة التي يعمل بها التحكم في الوصول المُدار في بقية Event Grid وAzure. استخدم Azure RBAC لإنشاء تعريفات الأدوار المخصصة وفرضها في مجالات الأحداث.

الأدوار المدمجة لنطاقات الأحداث

تحتوي شبكة الأحداث على تعريفين مدمجين للدور يجعلان Azure RBAC أسهل للعمل مع نطاقات الأحداث:

  • EventGrid Event Event مساهم في الاشتراك
  • قارئ الاشتراك في EventGrid

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

اشترك في مواضيع ضمن نطاق الحدث

الاشتراك في أحداث لموضوع داخل مجال حدث هو نفس إنشاء اشتراك حدث في موضوع مخصص أو الاشتراك في حدث من خدمة Azure.

هام

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

اشتراكات نطاق النطاق

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

النشر إلى مجال الحدث

عند إنشاء نطاق أحداث، يوفر Event Grid نقطة نهاية نشر مشابهة لنقطة النهاية لموضوع مخصص. لنشر الأحداث لأي موضوع في مجال الأحداث، ادفع الأحداث إلى نقطة نهاية مجال الأحداث بنفس الطريقة التي تفعل بها لموضوع مخصص. الفرق الوحيد هو أنه يجب عليك تحديد الموضوع الذي يجب أن يلقى عليه الحدث. على سبيل المثال، نشر المجموعة التالية من الأحداث يرسل الحدث مع "id": "1111" إلى الموضوع foo والحدث مع "id": "2222" إلى الموضوع bar.

إشعار

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

عند استخدام مخطط الأحداث السحابية، حدد اسم موضوع شبكة الأحداث في مجال الأحداث كقيمة source للخاصية. في المثال التالي، يتم تعيين source الخاصية إلى foo للحدث الأول وto bar للحدث الثاني.

لاستخدام حقل مختلف لتحديد الموضوع المستهدف في مجال الحدث، قم بتكوين تعيين مخطط الإدخال عند إنشاء مجال الحدث. بالنسبة لواجهة برمجة تطبيقات REST، استخدم خاصية properties.inputSchemaMapping لتعيين ذلك الحقل إلى properties.topic. بالنسبة لمجموعة تطوير .NET، استخدم EventGridJsonInputSchemaMapping. تدعم مجموعات SDK أخرى أيضا تعيين المخططات.

[{
  "source": "foo",
  "id": "1111",
  "type": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "time": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
  "specversion": "1.0"
},
{
  "source": "bar",
  "id": "2222",
  "type": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "time": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
  "specversion": "1.0"
}]

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

تسعير نطاق الأحداث

تستخدم نطاقات الأحداث نفس تسعير العمليات كما في ميزات أخرى في شبكة الأحداث. تعمل العمليات بنفس الطريقة في نطاقات الأحداث كما تعمل في المواضيع المخصصة:

  • كل دخول لحدث إلى مجال حدث هو عملية واحدة.
  • كل محاولة تسليم لحدث ما هي عملية واحدة.

للتعرف على إعداد مجالات الأحداث وإنشاء الموضوعات وإنشاء اشتراكات الأحداث ونشر الأحداث، راجع إدارة مجالات الأحداث .