التشغيل السريع: إرسال أحداث مخصصة إلى نقطة نهاية الويب باستخدام مدخل Azure وAzure Event Grid
في هذا التشغيل السريع، يمكنك إنشاء موضوع، وإنشاء اشتراك لهذا الموضوع باستخدام نقطة نهاية Webhook، وتشغيل حدث عينة، ثم عرض النتيجة. وعادةً، ما ترسل الأحداث إلى نقطة نهاية تعالج بيانات الحدث وتتخذ الإجراءات. ومع ذلك، لتبسيط هذا البرنامج التعليمي، يمكنك إرسال الأحداث إلى تطبيق ويب يقوم بجمع الرسائل وعرضها.
المتطلبات الأساسية
- إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
- إذا كنت Azure Event Grid جديدا، فشاهد نظرة عامة على Event Grid.
تسجيل موفر موارد شبكة الأحداث
ما لم تكن قد استخدمت Event Grid من قبل، فستحتاج إلى تسجيل مزود موارد Event Grid. إذا كنت قد استخدمت Event Grid من قبل، فانتقل إلى القسم التالي.
في مدخل Microsoft Azure، قم بالخطوات التالية:
في القائمة اليسرى، حدد Subscriptions.
حدد subscription الذي تريد استخدامه لـ Event Grid من قائمة الاشتراك.
في صفحة Subscription، حدد Resource providers ضمن Settings في القائمة اليسرى.
ابحث عن Microsoft.EventGrid، وتأكد من أن الحالة غير مسجلة.
حدد Microsoft.EventGrid في قائمة الموفرين.
حدد Register في شريط الأوامر.
قم بالتحديث للتأكد من تغيير حالة Microsoft.EventGrid إلى Registered.
إنشاء موضوع مخصص
يوفر موضوع Event Grid نقطة نهاية معرّفة من قِبل المستخدم تقوم بنشر الأحداث إليها.
تسجيل الدخول إلى مدخل Azure.
في شريط البحث في الموضوع، اكتب مواضيع شبكة الأحداث، ثم حدد مواضيع شبكة الأحداث من القائمة المنسدلة.
في صفحة مواضيع شبكة الأحداث حدد + إنشاء من شريط الأدوات.
في الصفحة إنشاء موضوع اتبع الخطوات التالية:
حدد اشتراك Azure الخاص بك.
حدد مجموعة موارد، أو حدد إنشاء جديد ، ثم أدخل اسمإلى مجموعة الموارد .
توفير اسم فريد للموضوع المخصص. يجب أن يكون اسم الموضوع فريدًا؛ لأنه ممثل بإدخال DNS. لا تستخدم الاسم الموضح في الصورة. بدلا من ذلك، قم بإنشاء اسمك الخاص - يجب أن يتراوح بين 3-50 حرفا وأن يحتوي فقط على قيم a-z و A-Z و 0-9 و
-
.حدد موقعا لموضوع Event Grid.
حدد مراجعة + إنشاء عند أسفل الصفحة.
في علامة التبويب مراجعة + إنشاء في صفحة إنشاء موضوع، حدد إنشاء.
بعد نجاح عملية النشر، حدد الانتقال إلى المورد للانتقال إلى صفحة موضوع شبكة الأحداث للموضوع الخاص بك. ابق هذه الصفحة مفتوحة. يمكنك استخدامه لاحقًا في البداية السريعة.
إشعار
للحفاظ على بساطة التشغيل السريع، ستستخدم صفحة الأساسيات فقط لإنشاء موضوع. للحصول على خطوات مفصلة حول تكوين إعدادات إقامة الشبكة والأمان والبيانات على صفحات أخرى من المعالج، راجع إنشاء موضوع مخصص.
قم بإنشاء نقطة نهاية للرسالة
قبل إنشاء اشتراك للموضوع المخصص، قم بإنشاء نقطة نهاية لرسالة الحدث. عادةً ما تتخذ نقطة النهاية إجراءات بناءً على بيانات الحدث. لتبسيط هذا التشغيل السريع، يمكنك نشر تطبيق ويب تم إنشاؤه مسبقا يعرض رسائل الحدث. يتضمن الحل المنشور خطة خدمة التطبيقات، وتطبيق الويب الخاص بخدمة التطبيقات، وكود المصدر من GitHub.
حدد نشر على Azure لنشر الحل إلى الاشتراك الخاص بك. في بوابة Azure، توفير قيم للمعلمات.
في الصفحة Custom deployment، بادر باتخاذ الخطوات التالية:
بالنسبة لمجموعة الموارد، حدد مجموعة موارد موجودة أو أنشئ مجموعة موارد.
بالنسبة إلى اسم الموقع، أدخل اسماً لتطبيق الويب.
بالنسبة إلى اسم خطة الاستضافة، أدخل اسماً لخطة خدمة التطبيقات لاستخدامها لاستضافة تطبيق الويب.
حدد "Review + create".
في صفحة مراجعة+ إنشاء حدد إنشاء.
قد يستغرق انتهاء النشر بضع دقائق. حدد التنبيهات (أيقونة الجرس) في المدخل، ثم حدد Go to resource group.
في صفحة مجموعة الموارد، في قائمة الموارد، حدد تطبيق الويب (contosoegriviewer في المثال التالي) الذي قمت بإنشائه.
في الصفحة App Service لتطبيق الويب الخاص بك، حدد عنوان URL للانتقال إلى موقع الويب. يجب أن يكون عنوان URL بهذا الشكل:
https://<your-site-name>.azurewebsites.net
.تأكد من رؤية الموقع مع عدم نشر أي أحداث عليه حتى الآن.
الاشتراك في موضوع مخصص
يمكنك الاشتراك في موضوع Event Grid لإخبار Event Grid بالأحداث التي تريد تعقبها، ومكان إرسال الأحداث.
الآن، على صفحة موضوع شبكة الأحداث لموضوعك المخصص، حدد + اشتراك حدث من شريط الأدوات.
في صفحة إنشاء اشتراك حدث، اتبع الخطوات التالية:
أدخل اسماً للاشتراك في الحدث.
حدد Web Hook لـنوع نقطة النهاية.
اختر تحديد نقطة نهاية .
بالنسبة إلى نقطة نهاية ربط الويب، أدخل عنوان URL لتطبيق الويب وأضفه
api/updates
إلى عنوان URL للصفحة الرئيسية. حدد Confirm Selection.بالعودة إلى صفحة «Create Event Subscription»، حدد «Create».
اعرض تطبيق الويب خاصتك مرةً أخرى، ولاحظ إرسال حدث التحقق من صحة الاشتراك إليه. حدد أيقونة العين لتوسيع بيانات الحدث. ترسل Event Grid حدث التحقق؛ بحيث تتمكن نقطة النهاية من التحقق من رغبتها في تلقي بيانات الحدث. يتضمن تطبيق الويب رمزًا للتحقق من صحة الاشتراك.
إرسال حدث إلى الموضوع
الآن، لنبادر بتشغيل حدث لمعرفة كيف توزع Event Grid الرسالة إلى نقطة النهاية لديك. استخدم إما Azure CLI أو PowerShell لإرسال حدث اختبار إلى الموضوع المخصص. بشكل عام، يُرسل التطبيق أو خدمة Azure بيانات الحدث.
يستخدم المثال الأول Azure CLI. إنه يحصل على عنوان URL والمفتاح للموضوع المخصص، ونماذج بيانات الحدث. استخدم اسم الموضوع المخصص لـ<topic name>
. يُنشئ نموذج بيانات الحدث. يكون عنصر data
JSON هو حمولة الحدث. يمكن لأي JSON تم تشكيله بشكل جيد أن يذهب في هذا المجال. يمكنك أيضًا استخدام حقل الموضوع للتوجيه والتصفية المتقدمين. CURL هي أداة مساعدة ترسل طلبات HTTP.
Azure CLI
حدد في مدخل Azure Cloud Shell. يفتح Cloud Shell في الجزء السفلي من مستعرض الويب.
إذا فتح Cloud Shell جلسة عمل PowerShell، فحدد التبديل إلى Bash في الزاوية العلوية اليمنى من نافذة Cloud Shell. إذا لم يكن الأمر كما هو، فتابع إلى الخطوة التالية.
تشغيل الأمر التالي للحصول على نقطة النهاية للموضوع: بعد نسخ الأمر ولصقه، قم بتحديث اسم الموضوع واسم مجموعة الموارد قبل تشغيل الأمر. يمكنك نشر نماذج الأحداث إلى نقطة نهاية هذا الموضوع.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
تشغيل الأمر التالي للحصول على المفتاح للموضوع المخصص: بعد نسخ ولصق الأمر قم بتحديث اسم الموضوع واسم مجموعة الموارد قبل تشغيل الأمر. إنه المفتاح الأساسي لموضوع Event Grid. للحصول على هذا المفتاح من بوابة Azure، قم بالتبديل إلى علامة التبويب مفاتيح الوصول في صفحة موضوع شبكة الأحداث. لتتمكن من نشر حدث على موضوع مخصص، تحتاج إلى مفتاح الوصول.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --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 التالي لنشر الحدث: في الأمر،
aeg-sas-key
يتم تعيين عنوان إلى مفتاح الوصول الذي حصلت عليه في وقت سابق.curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Azure PowerShell
يستخدم المثال الثاني PowerShell للقيام بخطوات مماثلة.
حدد في مدخل Microsoft Azure Cloud Shell (بدلاً من ذلك انتقل إلى
https://shell.azure.com/
). يفتح Cloud Shell في الجزء السفلي من مستعرض الويب.في Cloud Shellحدد PowerShell في الزاوية العلوية اليسرى من نافذة Cloud Shell. راجع نموذج صورة نافذة Cloud Shell في قسم Azure CLI.
اضبط المتغيرات التالية. بعد نسخ ولصق كل أمر، تحديث اسم الموضوعواسم مجموعة الموارد قبل إجراء الأمر:
مجموعة الموارد:
$resourceGroupName = "<resource group name>"
مواضيع شبكة الحدث:
$topicName = "<topic name>"
أجرِ الأوامر التالية للحصول على نقطة النهايةوالمفاتيح للموضوع:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
قم بإعداد الحدث. نسخ وتشغيل العبارات في نافذة Shell.
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct body using Hashtable $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert event body from Hashtable to JSON Object #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"
استخدم Invoke-WebRequest لإرسال الحدث.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
تحقق في عارض شبكة الأحداث
لقد قمت بتشغيل الحدث، وأرسلت شبكة الأحداث الرسالة إلى نقطة النهاية التي قمت بتهيئتها عند الاشتراك. عرض تطبيق الويب الخاص بك لمشاهدة الحدث الذي أرسلته للتو.
تنظيف الموارد
إذا كنت تخطط لمتابعة العمل مع هذا الحدث، فلا تنظف الموارد التي جرى إنشاؤها في هذه المقالة. وإلا، فاحذف الموارد التي أنشأتها في هذه المقالة.
من القائمة اليُسرى، حدد مجموعات الموارد . إذا لم تر الخيار في القائمة اليسرى، حدد جميع الخدمات في القائمة اليسرى، وحدد مجموعات الموارد .
حدد مجموعة الموارد لفتح صفحة مجموعة الموارد .
حدد حذف مجموعة الموارد من شريط الأدوات.
قم بتأكيد الحذف بإدخال اسم مجموعة الموارد، وحدد حذف .
تم إنشاء مجموعة الموارد الأخرى التي تراها في الصورة، واستخدامها بواسطة نافذة Cloud Shell. احذفها إذا لم تكن تخطط لاستخدام نافذة Cloud Shell لاحقًا.
المحتوى ذو الصلة
الآن بعد أن عرفت كيفية إنشاء مواضيع مخصصة واشتراكات الأحداث، تعرف على المزيد حول ما يمكن أن تساعدك شبكة الأحداث على القيام به: