مقدمة إلى حدث أزور غريد

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

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

" فهم المظاهرات - الهيكلات الأثرية "

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

إن هذا الدور يُعدّ تظاهرة الزوري لأنه مصمم على نطاق واسع وموثوقية، ويدعم كل من أحداث النظام (مثلاً في إنشاء المزلاجات أو تغيير مجموعات الموارد) والأحداث العرفية من تطبيقاتك الخاصة، وتعالج الدائرة تلقائياً عمليات التقشف والتفريغ المميت، والتصفير، بحيث يمكن التركيز على منطق الأعمال بدلاً من التركيز على سباك الهياكل الأساسية.

المفاهيم الرئيسية لمناسبة أزور غريد

الأحداث

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

مواضيع

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

المناسبات التي تشارك فيها

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

مناسبة نشر

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

المبشرون

وعامل الحدث هو العنصر الذي يُعالج الحدث القادم، أما منظمة " إيزور إيميت غريد " فيدعم عدة أنواع من المتعاملين: على الشبكة العالمية التي تستجيب للشركة HTTP POST، و " Azure Functions " ، و " لوجيت " ، و " لوجيك " ، فبالنسبة للشبكة، فإن " إيفيت غريد " تحتاج إلى مصافحة يدوية للتحقق من نقطة النهاية قبل إنجاز الأحداث.

مجموعة من الأحداث المزروعة

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

1 - إنشاء حدث يُدعى " غريد توبيك "

Navigate to the Azure gate (portal.azure.com) and search for “Event Grid.” Click Create and choose Topic from the options.

  • الاشتراك : اشتراك Azure الذي سينشأ بموجبه الموضوع.
  • Resource group]: إما استخدام مجموعة قائمة أو إنشاء فريق جديد لتنظيم الموارد.
  • Name]: اسم فريد من نوعه عالمياً لهذا الموضوع، ويصبح هذا جزءاً من نقطة النهاية في نقطة الاتحاد الأوروبي.
  • Region]: Select an Azure region close to your services.

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

2- إنشاء حدث للمشاركة

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

  • Name]: اسم وصفي للاشتراك.
  • Event Schema]: Choose between Event Grid schema or CloudEvents v1.0 schema. CloudEvents is becoming the industry standard for interoperability.
  • Endpoint Type]: Select the type of handler. For testing, choose ]Webhook and provide the URL of your endpoint. For production, you might use an Azure Function or Logic App.
  • Filters: يمكنك أن تمكّن من التصفير على أنواع الأحداث، أو أن يبدأ أو ينهي مع مرشحات متقدمة (مثل حقول البيانات) وهذا يقلل من الأحداث غير المرغوب فيها التي تصل إلى معالجك.
  • Retry Policy]: تحديد العدد الأقصى لمحاولات التسليم والوقت حتى الحياة للأحداث، والتأخر هو 30 يوما و4 عمليات إعادة.
  • Dead-Lettering]: Specify a storage blob container where undeliverable events are sent after exhausting retries. This is critical for debugging and reliable.

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

3 - مناسبات النشر

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

az eventgrid event submit \
 --endpoint https://your-topic.westus-1.eventgrid.azure.net/api/events \
 --subject "custom/test" \
 --event-type "MyApp.NewRecord" \
 --data '{"id":123,"name":"test"}' \
 --key aabbccdd...

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

4 - تنظيم مناسبات مع وظائف أزور

ومن أكثر الأنماط شيوعا استخدام وظيفة أزور كعامل للحدث، وإنشاء برنامج جديد للتصريف المسمى " Azure Function App " ، وإضافة مشغل للحدث، وستتلقى هذه المهمة أحداثاً كورقة مشتركة بين اليابان واليابان، وهذا مثال بسيط على " C#:

[FunctionName("ProcessEvent")]
public static void Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log)
{
 log.LogInformation($"Received event: {eventGridEvent.EventType} with subject {eventGridEvent.Subject}");
 // Process the event data
}

المهمة تُثبت تلقائياً المصافحة الويبية إذا استخدمتِ مُحفز (الحدث) المُلزم، هذا النهج يمنحكِ مُعالجة مُقَدَّرة، لا تُحصى.

السيناريوهات المتقدمة والنباتات

بالإضافة إلى التجهيز الأساسي، يدعم برنامج " أكزور خضر " هياكل متطورة، وهناك عدة حالات استخدام متقدمة:

التصوير والروث

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

Event Grid Domains

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

التكامل الهجين والمتعدد الكيلومترات

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

التكامل مع التطبيقات الزورية

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

أفضل الممارسات في نشرات الإنتاج

لضمان حلّكَ للحدثِ الغريدي موثوقٌ به، وآمنُ، وفعال من حيث التكلفة، إتباع هذه الممارسات الفضلى:

  • Always enable dead-lettering]. Without it, undelivered events are silently dropped after retries. A dead-letter destination (blob storage) helps you diagnose delivery failures and reprocess events if needed.
  • (ب) استخدام هويات مُدارة للتوثيق . وبدلاً من تخزين المفاتيح، يمكن من تحديد هوية مُدارة على ناشرك (مثل وظيفة أزور) ويمنحها الإذن بنشرها في الموضوع، ويستخدم المشتركون هويات مُدارة لتجنب الإدارة الرئيسية.
  • ] تصفية الأشغال على مستوى الاشتراك ، وهذا يقلل من عدد المناقصات على معالجيك، ويوفّر التكاليف ويحسن الأداء، ويستخدم مرشحات متقدمة لضبط دقيق.
  • Design idempotent handlers. Because Event Grid guarantees at least once delivery, your handler may receive the same event multiple times. Ensure your processing logical can handle duplicates Gracely (e.g., by check a unique event ID or using a deduplication store).
  • Monitor with Azure Monitor . Track metrics like delivery success rate, dropped events, latency, and dead-lettered count. Set up alerts for anomalies. Use diagnostic settings to send logs to Log Analytics for deeper analysis.
  • Plan for geo-disaster recovery].() وتتناول المواضيع الإقليمية، إذا احتجت إلى المرونة العالمية، وتنشر مواضيع في مناطق متعددة وتستخدم آلية تحديد مسارات العرف.() والنظر في استخدام أحداث شريكة في أحداث أزور غريد أو تكرارها عبر الحدود بالنسبة للسيناريوهات الحرجة.
  • Keep event payloads small]. Events are delivered as HTTP POST bodies. Large payloads increase latency and cost. Include only a reference URL or ID in the event, and let the handler fetch additional data from a repository.

الاعتبارات الأمنية

وللأمن في النظم القائمة على الأحداث عدة طبقات:

  • Authentication for publishers]: Use SAS keys, managed identities, or Azure AD authentication to secure the topic endpoint. Avoid embedding keys in code; use key vault or service principal accreditation.
  • Endpoint validation for participantrs: عند استخدام هوكات الشبكة، يرسل الحدث غريد مصافحة مثبتة للتأكد من أن المشترك يتحكم في نقطة النهاية، ويجب أن يستجيب جهازك على الإنترنت على النحو المناسب لتجنب حدوث حدث غير مأذون به.
  • Network security]: Use private endpoints to access Event Grid over a VNet. This ensures traffic never traverses the public internet. For hybrid scenarios, use Azure VPN or ExpressRoute.
  • Data encryption: المناسبات مشفرة في الراحة وفي العبور (TLS 1.2+) ويمكنك أيضاً أن تجلب مفتاحك الخاص (BYOK) للسيطرة الإضافية على مفاتيح التشفير.

إدارة التكاليف

ويستند تسعير التظاهر إلى عدد العمليات (الأحداث المنشورة ومحاولات التسليم) وعدد موارد المواضيع/الاشتراكات، من أجل تحقيق أقصى قدر من التكاليف:

  • (ج) تجميع أنواع الأحداث المتعددة في موضوع واحد ومرشح على مستوى الاشتراك، مما يقلل من عدد المواضيع اللازمة.
  • استخدام تصفية الأحداث بشكل عدواني لتجنب عمليات التسليم غير الضرورية، وكل عملية تسليم تعتبر عملية.
  • Leverage Event Grid Domains for multi-tenant scenarios -they share infrastructure and can be cheaper than separate topics.
  • وضع سياسات ملائمة لإعادة التجريب - قد تكون الخزائن (30 يوما) طويلة جدا؛ وتعديل فترات الراحة والارتفاع القصوى استنادا إلى نظام المساعدة القانونية الخاص بك.

رصد استخدامك عن طريق إدارة تكاليف أزور ووضع الميزانيات أو الإنذارات لتجنب فواتير غير متوقعة.

الرصد والتشويش

يوفر مرصد أزور مقاييس شاملة للحدث الذي يُحتضن فيه، وتشمل القياسات الرئيسية ما يلي:

  • Publish Succeeded]: عدد الأحداث التي نُشرت بنجاح.
  • Publish Failed]: Events that could not be published (e.g., authentication errors).
  • Delivery Succeeded]: Events successfully delivered to participantrs.
  • Delivery Failed]: Events that could not be delivered (e.g., endpoint not reachable).
  • Dead Lettered]: Events that completed retry attempts.

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

خطوات مشتركة لرد المشاكل:

  • وإذا لم تصل الأحداث إلى معالجكم، تحققوا من صحة نقطة الانتساب، واستخدموا قدرة " الاختبار " في البوابة لإرسال حدث لعينة.
  • إذا فشل التصديق في موقع شبكي، تأكد من أن نقطة النهاية تعود إلى (هاتف) بـ200 مع قانون المصادقة، وبالنسبة للمهام الزامية، فإن الملزم يتعامل مع هذا تلقائياً.
  • إذا كانت الأحداث قد تم تلفيقها فتفحص حاوية الحزم المميتة من أجل حمولة الحدث الأصلية وتفاصيل الخطأ

التكامل مع الخدمات الأخرى

(الحدث الأزوري (غريد يعمل محلياً مع العديد من خدمات (أزور هنا بعض التكاملات المشتركة

  • Azure Blob Storage]: Automatically sends events when blobs are created, removed, or updated. Useful for triggering processing pipelines.
  • Azure DevOps]: React to build completions, draw request events, and more to automate CI/CD.
  • Azure Machine Learning]: Trigger retraining jobs or deployment pipelines when new data arrives.
  • Azure IoT Hub]: مقياس جهاز الطريق عن بعد وأحداث دورة الحياة في مرحلة المعالجة النهائية.
  • Azure Kubernetes Service (AKS)]: Use Event Grid to watch AKS events for cluster autoscaling or application deployment.

قوة الحدث (غريد) تكمن في قدرتها على ربط هذه الخدمات المتفرقة بالحد الأدنى من الشفرة

معرض العالم الحقيقي: تجهيز النظام العديم التسلسل

تخيل منصة التجارة الإلكترونية التي تُنفذ الأوامر، وعندما يضع الزبائن أمراً، ينشر تطبيق الشبكة حدثاً لموضوع " حدث غريد: مع بيانات مثل ترتيب الهوية، ومعلومات العملاء، والأصناف.

  1. Inventory Service] (Azure Function): Reserves stock and updates inventory database.
  2. دائرة الرسوب ] (Logic App): تجهيزات الدفع عبر بوابة طرف ثالث.
  3. دائرة التأشيرات ] (Webhook to SendGrid): أرسل رسالة تأكيد إلى العميل.

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

القيود والبدائل

بينما (أزور جريم) قوي، لديه بعض القيود:

  • Event size limit]: الحد الأقصى لحجم الحدث هو 1 ميغابايت (بما في ذلك المرؤوسين) - بالنسبة للحمولات الكبيرة، تستخدم إشارة إلى تخزين العصيان.
  • Throughput]: بالرغم من ارتفاعه، هناك حدود للمعدلات المحيطة بالمناطق، وبالنسبة للمنتجات العالية للغاية (ملايين الأحداث في الثانية)، النظر في مهابط أحداث أزور لحرق الأحداث والحدث الذي يُحتج به لشن أحداث محددة.
  • Ordering]: Event Grid does not guarantee per-topic ordering; events may arrive out of order. If ordering is critical, use Event Hubs or Service Bus.
  • At-least-once delivery]: يمكن أن يكون التسليم المزدوج، ويجب أن يكون الميسرون مُحققين.

اختر (أزور) الحدث عندما تحتاج إلى مُدرب مُبسط لا يُمكنه التكهن بسيارات مُحتضنية أو مُجرّمة، لتُبثّ الأحداث أو تُأمر بتسليمها، تجمعها مع خدمات إرسال (أزور) أخرى.

خاتمة

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

وسواء كنت تُؤمّن البنية التحتية، أو تربط الخدمات الصغرى، أو بناء نظام إبلاغ آني، فإنّ الحدث (غريد) يوفر طبقة قوية وفعالة من حيث التكلفة لربط مسار الأحداث، وتبدأ بصغرها، وتراعي العقليات التي تحركها الأحداث، وتوسّع تدريجياً سير العمل القائم على الرسائل، وتجعل المرونة والتكامل مع النظام الإيكولوجي الأزوري (Azure) الكبير (Ge-to choice) للمطورين والمهندسين المعماريين على حد سواء.

For further reading, explore the official Azure Event Grid documentation] and the ]event schema reference.