Event Grid والموثوقية

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

لمزيد من المعلومات عن استخدام Event Grid، راجع إنشاء الأحداث مخصصة وتوجيهها باستخدام Azure Event Grid.

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

تختص الأقسام التالية بـ Azure Event Grid والموثوقية:

  • اعتبارات التصميم
  • قائمة مراجعة التكوين
  • خيارات التكوين الموصى بها
  • البيانات الاصطناعية المصدر

اعتبارات التصميم

توفر Event Grid اتفاقية مستوى خدمة وقت التشغيل. لمزيد من المعلومات، راجع اتفاقية مستوى الخدمة لـ Event Grid.

قائمة الاختيار

هل كوّنت Azure Event Grid مع مراعاة الموثوقية؟

  • نشر مثيل Event Grid لكل منطقة، في حالة وجود حل Azure متعدد المناطق.
  • راقب Event Grid لمعرفة حالات فشل تسليم الحدث.
  • استخدم الأحداث المُنفَّذة على دفعات.
  • لا يمكن أن يتجاوز حجم دفعات الحدث 1MB.
  • كوِّن اختيار حجم الدفعة وحسِّنه أثناء اختبار التحميل.
  • تأكد من قبول رسائل Event Grid مع إنتاج الاستجابات HTTP200-204 في حالة الوصول إلى نقطة نهاية تحتوي على تعليمات برمجية مخصصة فقط.
  • راقب Event Grid لمعرفة حالات فشل نشر الحدث.

توصيات التكوين

انتبه إلى التوصيات التالية لتحسين الموثوقية عند تكوين Azure Event Grid:

التوصية الوصف
راقب Event Grid لمعرفة حالات فشل تسليم الحدث. سيزداد المقياس Delivery Failed في كل مرة لا يمكن فيها تسليم رسالة إلى معالج أحداث (المهلة أو التعليمة البرمجية لحالة غير 200-204 HTTP). في حالة تعذّر فقدان حدث ما، اضبط حساب تخزين قائمة انتظار غير مستخدمة (DLQ). حساب DLQ هو مكان إدخال الأحداث التي لا يمكن تسليمها بعد تجاوز الحد الأقصى لعدد إعادة المحاولة. يمكنك اختيارياً استخدام نظام إعلام في حساب تخزين DLQ، على سبيل المثال، عن طريق معالجة حدث ملف جديد من خلال Event Grid.
استخدام الأحداث المُنفَذة على دفعات في سيناريوهات معدل النقل العالية. ستقدم الخدمة صفيف json يحتوي على أحداث متعددة للمشتركين بدلاً من صفيف بحدث واحد. يجب أن يكون التطبيق المستهلك قادراً على معالجة هذه الصفائف.
لا يمكن أن يتجاوز حجم دفعات الحدث 1MB. إذا كانت البيانات الأساسية للرسالة كبيرة، فلن تُدخَل سوى رسالة واحدة أو بضع رسائل في المجموعة. ستحتاج الخدمة المستهلكة إلى معالجة مزيد من دفعات الأحداث. إذا كان الحدث يحتوي على كمية كبيرة من البيانات الأساسية، فحاول تخزينه في مكان آخر، كما هو الحال في تخزين كائن ثنائي كبير الحجم، وإدخال مرجع في الحدث. عند التكامل مع خدمات الجهات الخارجية من خلال مخطط CloudEvents، لا يُنصح بتجاوز 64KB حدث.
كوِّن اختيار حجم الدفعة وحسِّنه أثناء اختبار التحميل. يعتمد تحديد حجم الدفعة على حجم البيانات الأساسية والرسالة.
راقب Event Grid لمعرفة حالات فشل نشر الحدث. سيعرض المقياس Unmatched الرسائل المنشورة وغير المتوافقة مع أي اشتراك. حسب البنية الأساسية للتطبيق، قد يكون هذا الخيار الأخير متعمداً.

البيانات الاصطناعية المصدر

لتحديد نوع مخطط الإدخال لجميع موضوعات Event Grid المتوفرة، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

لاسترداد معرف المورد لنقاط النهاية الخاصة الموجودة لمجالات Event Grid، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/domains' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

لتعريف حالة الوصول إلى شبكة عامة لجميع مجالات Event Grid المتوفرة، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/domains' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

لتعريف قواعد جدار الحماية لجميع مجالات Event Grid العامة، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

لتعريف قواعد جدار الحماية لجميع موضوعات Event Grid العامة، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

لاسترداد معرف المورد لنقاط النهاية الخاصة الموجودة لموضوعات Event Grid، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/topics' and notnull(properties['privateEndpointConnections']) 
| mvexpand properties['privateEndpointConnections'] 
| project-rename privateEndpointConnections = properties_privateEndpointConnections 
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']

لتحديد نوع مخطط الإدخال لجميع مجالات Event Grid المتوفرة، اتبع المخطط التالي:

Resources 
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

لتعريف حالة الوصول إلى شبكة عامة لجميع موضوعات Event Grid المتوفرة، اتبع الاستعلام التالي:

Resources 
| where type == 'microsoft.eventgrid/topics' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

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