إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
Azure Event Grid هي خدمة توجيه الأحداث للسحابة. Azure Functions هي واحدة من معالجات الأحداث المدعومة.
في هذا التشغيل السريع، يمكنك استخدام مدخل Microsoft Azure لإنشاء موضوع مخصص والاشتراك في الموضوع المخصص وتشغيل الحدث لعرض النتيجة. إرسال الأحداث إلى دالة Azure.
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
المتطلبات الأساسية
- Visual Studio Code مثبت على أحد الأنظمة الأساسية المدعومة
- ملحق Azure Functions
إنشاء دالة باستخدام مشغل Event Grid باستخدام Visual Studio Code
في هذا القسم، يمكنك استخدام Visual Studio Code لإنشاء دالة باستخدام مشغل Event Grid.
إنشاء وظيفة
فتح Visual Studio Code.
في الشريط الأيسر، حدد Azure.
في الجزء الأيمن، في قسم WORKSPACE ، حدد Azure Functions على شريط الأوامر. ثم حدد Create Function.
حدد مجلدا تريد حفظ التعليمات البرمجية للدالة فيه.
بالنسبة للأمر إنشاء مشروع جديد، للغة، حدد C#. حدد Enter.
بالنسبة لوقت تشغيل .NET، حدد .NET 8.0 Isolated LTS، ثم حدد Enter.
بالنسبة إلى Template للدالة، حدد مشغل Azure Event Grid. حدد Enter.
بالنسبة إلى اسم الدالة، أدخل اسما للدالة. حدد Enter.
بالنسبة لمساحة الاسم، أدخل اسما لمساحة اسم الدالة. حدد Enter.
افتح المشروع في النافذة الحالية أو نافذة جديدة، أو أضفه إلى مساحة عمل.
انتظر حتى يتم إنشاء الوظيفة. تظهر حالة إنشاء الدالة في الزاوية السفلية اليسرى.
عرض التعليمات البرمجية في ملف YourFunctionName.cs ، وتحديدا
Runالأسلوب . يقوم بطباعة المعلومات باستخدام مسجل.[Function(nameof(MyEventGridTriggerFunc))] public void Run([EventGridTrigger] CloudEvent cloudEvent) { _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject); }
نشر الدالة في Azure
حدد زر Azure على الشريط الأيسر إذا لم يكن جزء Azure مفتوحا بالفعل.
مرر مؤشر الماوس فوق مشروعك وحدد الزر Deploy to Azure .
في القائمة المنسدلة للوحة الأوامر، حدد + Create new function app، ثم حدد Enter.
بالنسبة إلى الاسم، أدخل اسما فريدا عالميا لتطبيق الوظائف الجديد. حدد Enter.
بالنسبة إلى مكدس وقت التشغيل، حدد .NET 8 Isolated.
بالنسبة إلى الموقع لموارد Azure، حدد منطقة قريبة منك.
تظهر حالة إنشاء تطبيق الوظائف في علامة التبويب AZURE في الجزء السفلي. بعد إنشاء تطبيق الوظائف، سترى حالة نشر الدالة التي قمت بإنشائها محليا إلى تطبيق الوظائف.
بعد نجاح النشر، قم بتوسيع رسالة Create Function App succeeded . حدد انقر لعرض المورد. تأكد من تحديد الدالة في قسم RESOURCES في الجزء الأيمن.
انقر بزر الماوس الأيمن فوق الدالة، ثم حدد فتح في المدخل.
سجل الدخول إلى Azure إذا لزم الأمر، وتأكد من ظهور صفحة Function App لوظيفتك.
في الجزء السفلي، حدد الدالة الخاصة بك.
قم بالتبديل إلى علامة التبويب سجلات . احتفظ بعلامة التبويب هذه مفتوحة حتى تتمكن من رؤية الرسائل المسجلة عند إرسال حدث إلى موضوع "شبكة الأحداث" لاحقا في هذه المقالة.
إنشاء موضوع مخصص
يوفر موضوع Event Grid نقطة نهاية معرّفة من قِبل المستخدم تقوم بنشر الأحداث إليها.
في علامة تبويب جديدة من نافذة مستعرض الويب، سجل الدخول إلى مدخل Microsoft Azure.
في شريط البحث في الموضوع، ابحث عن Event Grid Topics، ثم حدد Event Grid Topics.
في صفحة Topics ، حدد + Create في شريط الأوامر.
في جزء إنشاء موضوع ، اتبع الخطوات التالية:
للاشتراك: تحديد اشتراك Azure الخاص بك.
بالنسبة لمجموعة الموارد، حدد نفس مجموعة الموارد من الخطوات السابقة.
بالنسبة إلى الاسم، قم بتوفير اسم فريد للموضوع المخصص. يجب أن يكون اسم الموضوع فريدا لأن إدخال نظام أسماء المجالات (DNS) يمثله.
لا تستخدم الاسم الموضح في صورة المثال. بدلا من ذلك، قم بإنشاء اسمك الخاص. يجب أن يكون من 3 إلى 50 حرفا وأن يحتوي فقط على القيم a-z و A-Z و 0-9 و واصلة (
-).بالنسبة إلى Region، حدد موقعا لموضوع Event Grid.
حدد "Review + create".
في علامة التبويب Review + create ، راجع الإعدادات ثم حدد Create.
بعد إنشاء الموضوع المخصص، حدد Go to resource لفتح صفحة Event Grid Topic لهذا الموضوع.
الاشتراك في موضوع مخصص
يمكنك الاشتراك في موضوع Event Grid لإخبار Event Grid بالأحداث التي تريد تعقبها، ومكان إرسال الأحداث.
في صفحة Event Grid Topic لموضوعك المخصص، حدد + Event Subscription على شريط الأدوات.
في جزء إنشاء اشتراك حدث، اتبع الخطوات التالية:
بالنسبة إلى Name، أدخل اسما لاشتراك الحدث.
بالنسبة إلى Event Schema، حدد Cloud Event Schema v1.0.
تحديد «Azure Function» لنوع «Endpoint type».
حدد تكوين نقطة نهاية.
في جزء Select Azure Function ، اتبع الخطوات التالية:
بالنسبة إلى Subscription، حدد اشتراك Azure الذي يحتوي على الدالة .
بالنسبة لمجموعة الموارد، حدد مجموعة الموارد التي تحتوي على الدالة .
بالنسبة إلى Function app، حدد تطبيق الوظائف.
بالنسبة إلى Function، حدد الدالة في تطبيق الوظائف.
حدد Confirm Selection.
هذه الخطوة اختيارية، ولكن نوصي بها لسيناريوهات الإنتاج. في جزء إنشاء اشتراك حدث، انتقل إلى علامة التبويب ميزات إضافية وقم بتعيين قيم الحد الأقصى للأحداث لكل دفعة وحجم الدفعة المفضل بالكيلو بايت.
يمكن أن يمنحك الإرسال في دفعات إنتاجية عالية. بالنسبة إلى الحد الأقصى للأحداث لكل دفعة، قم بتعيين الحد الأقصى لعدد الأحداث التي يتضمنها الاشتراك في دفعة. يعين حجم الدفعة المفضل بالكيلو بايت الحد الأعلى المفضل لحجم الدفعة، ولكن يمكن تجاوزه إذا كان حدث واحد أكبر من هذا الحد.
في جزء Create Event Subscription ، حدد Create.
إرسال حدث إلى الموضوع
الآن، قم بتشغيل حدث لمعرفة كيفية توزيع Event Grid للرسالة إلى نقطة النهاية الخاصة بك. استخدم إما Azure CLI أو Azure PowerShell لإرسال حدث اختبار إلى موضوعك المخصص. عادة ما يرسل تطبيق أو خدمة Azure بيانات الحدث.
يستخدم المثال الأول Azure CLI. يحصل على عنوان URL والمفتاح للموضوع المخصص ونموذج بيانات الحدث. استخدم اسم الموضوع المخصص لـtopicname. يُنشئ نموذج بيانات الحدث.
يكون عنصر data JSON هو حمولة الحدث. يمكن لأي JSON تم تشكيله بشكل جيد أن يذهب في هذا المجال. يمكنك أيضًا استخدام حقل الموضوع للتوجيه والتصفية المتقدمين.
ترسل أداة cURL طلبات HTTP. في هذه المقالة، يمكنك استخدام cURL لإرسال الحدث إلى الموضوع المخصص.
Azure CLI
حدد في مدخل Azure Cloud Shell. إذا كنت في وضع Azure PowerShell، فحدد التبديل إلى Bash.
topicnameتعيين المتغيرات وresourcegroupnameالمستخدمة في الأوامر.استبدل
TOPICNAMEباسم موضوع Event Grid.topicname="TOPICNAME"استبدل
RESOURCEGROUPNAMEباسم مجموعة موارد Azure التي تحتوي على موضوع Event Grid.resourcegroupname="RESOURCEGROUPNAME"استخدم الأمر التالي للحصول على نقطة النهاية للموضوع. بعد نسخ الأمر ولصقه، قم بتحديث اسم الموضوع واسم مجموعة الموارد قبل تشغيله.
endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)استخدم الأمر التالي للحصول على مفتاح الموضوع المخصص. بعد نسخ الأمر ولصقه، قم بتحديث اسم الموضوع واسم مجموعة الموارد قبل تشغيله.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)انسخ العبارة التالية مع تعريف الحدث، ثم حدد Enter.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'قم بتشغيل الأمر cURL التالي لنشر الحدث:
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpointتأكد من ظهور الرسالة من الدالة في علامة التبويب Logs لوظيفتك في مدخل Microsoft Azure.
Azure PowerShell
يستخدم المثال الثاني Azure PowerShell لتنفيذ خطوات مماثلة.
في مدخل Microsoft Azure، حدد Cloud Shell أو انتقل إلى صفحة Azure Cloud Shell. في الزاوية العلوية اليمنى من نافذة Cloud Shell، حدد التبديل إلى PowerShell.
اضبط المتغيرات التالية. بعد نسخ كل أمر ولصقه، قم بتحديث اسم الموضوع واسم مجموعة الموارد قبل تشغيله.
$resourceGroupName = "RESOURCEGROUPNAME"$topicName = "TOPICNAME"أجرِ الأوامر التالية للحصول على نقطة النهايةوالمفاتيح للموضوع:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicNameقم بإعداد الحدث. انسخ هذه العبارات وقم بتشغيلها في نافذة Cloud Shell:
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct the body by using a hash table $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert the event body from a hash table to a JSON object #Append square brackets to the converted JSON payload because they're expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"Invoke-WebRequestاستخدم cmdlet لإرسال الحدث:Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}تأكد من ظهور الرسالة من الدالة في علامة التبويب Logs لوظيفتك في مدخل Microsoft Azure.
تحقق من أن الدالة تلقت الحدث
قمت بتشغيل الحدث، وأرسلت Event Grid الرسالة إلى نقطة النهاية التي قمت بتكوينها عند الاشتراك. الآن يمكنك التحقق مما إذا كانت الدالة قد تلقتها.
افتح علامة التبويب استدعاء للدالة الخاصة بك.
لعرض التفاصيل، حدد استدعاء .
يمكنك أيضا استخدام علامة التبويب Logs .
تنظيف الموارد
إذا كنت تخطط لمتابعة العمل مع هذا الحدث، فلا تنظف الموارد التي قمت بإنشائها في هذه المقالة. وإلا، احذف الموارد التي قمت بإنشائها في هذه المقالة.
في مربع البحث في مدخل Microsoft Azure، أدخل Resource groups ثم حدد Resource groups.
حدد مجموعة الموارد لفتح الجزء للحصول على تفاصيله.
على شريط الأدوات، حدد حذف مجموعة الموارد.
تأكد من الحذف عن طريق إدخال اسم مجموعة الموارد، ثم حدد حذف.
أنشأت نافذة Cloud Shell مجموعة الموارد الأخرى التي تظهر في صفحة مجموعات الموارد واستخدمتها. احذف مجموعة الموارد هذه إذا كنت لا تخطط لاستخدام نافذة Cloud Shell لاحقا.
المحتوى ذو الصلة
الآن بعد أن عرفت كيفية إنشاء مواضيع مخصصة واشتراكات الأحداث، تعرف على المزيد حول ما يمكن أن تساعدك شبكة الأحداث على القيام به:
- حول شبكة الأحداث
- توجيه أحداث Azure Blob Storage إلى نقطة نهاية ويب مخصصة
- مراقبة تغييرات الجهاز الظاهري باستخدام Azure Event Grid وLogic Apps
- نقل البيانات الكبيرة إلى مستودع البيانات
للتعرف على نشر الأحداث إلى شبكة الأحداث واستهلاكها منها باستخدام لغات برمجة مختلفة، راجع العينات التالية: