استخدام شبكة الأحداث لإعلامات تغيير بيانات تكوين التطبيق

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

المتطلبات الأساسية

استخدام Azure Cloud Shell

Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.

لبدء Azure Cloud Shell:

خيار مثال/ رابط
انقر فوق ⁧⁩جربه⁧⁩ في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. تحديد ⁧⁩جربه⁧⁩ لا يقوم بنسخ التعليمات البرمجية تلقائيًا إلى Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
انتقل إلى ⁧⁩⁧ https://shell.azure.com⁩⁧⁩، أو حدد زر ⁩تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. Screenshot that shows how to launch Cloud Shell in a new window.
حدد زر ⁧⁩Cloud Shell⁧⁩ في شريط القوائم في أعلى اليمين في ⁧⁩مدخل Azure⁧⁩. Screenshot that shows the Cloud Shell button in the Azure portal

لتشغيل التعليمة البرمجية في هذا المقال في Azure Cloud Shell:

  1. ابدأ تشغيل Cloud Shell.

  2. حدد الزر ⁧⁩نسخ⁧⁩ على كتلة التعليمات البرمجية لنسخ التعليمات البرمجية.

  3. ألصق تعليمة البرمجية في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.

  4. اكتب ⁧⁩"Enter"⁧⁩ لتشغيل الأمر.

إذا اخترت تثبيت CLI واستخدامه محليا، فتتطلب هذه المقالة تشغيل أحدث إصدار من Azure CLI (2.0.70 أو أحدث). قم بتشغيل ⁧az --version⁩ للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع ⁧⁩تثبيت Azure CLI⁧⁩.

إذا كنت لا تستخدم Cloud Shell، يجب عليك أولاً تسجيل الدخول باستخدام ⁧az login⁩.

قم بإنشاء مجموعة موارد

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

أنشئ مجموعة موارد باستخدام الأمر az group create.

ينشئ المثال التالي مجموعة موارد تُسمى ⁧<resource_group_name>⁩ في موقع ⁧⁩westus⁧⁩. استبدل ⁧<resource_group_name>⁩ باسم فريد لمجموعة الموارد:

az group create --name <resource_group_name> --location westus

إنشاء متجر App Configuration

استبدل <appconfig_name> باسم فريد لمخزن التكوين، وبمجموعة <resource_group_name> الموارد التي أنشأتها سابقا. يجب أن يكون الاسم فريدا لأنه يستخدم كاسم DNS.

az appconfig create \
  --name <appconfig_name> \
  --location westus \
  --resource-group <resource_group_name> \
  --sku free

قم بإنشاء نقطة نهاية للرسالة

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

استبدل <your-site-name> باسم فريد من أجل تطبيق الويب الخاص بك. يجب أن يكون اسم تطبيق الويب فريدًا لأنه جزء من إدخال DNS.

$sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

قد يستغرق النشر بضع دقائق حتى يكتمل. بعد نجاح عملية النشر، اطلع على تطبيق الويب الخاص بك للتأكد من تشغيله. في مستعرض ويب، انتقل إلى: https://<your-site-name>.azurewebsites.net

ينبغي أن تشاهد الموقع الذي لا توجد به رسائل معروضة حاليًا.

قم بتمكين مزود موارد Event Grid

إذا لم تكن قد استخدمت Event Grid من قبل في اشتراك Azure، فقد تحتاج إلى تسجيل موفر موارد Event Grid. قم بتشغيل الأمر التالي لتسجيل الموفر :

az provider register --namespace Microsoft.EventGrid

قد يستغرق التسجيل بعض الوقت. للتحقق من الحالة، قم بتشغيل:

az provider show --namespace Microsoft.EventGrid --query "registrationState"

عندما registrationStateيكونRegistered، كنت على استعداد للمتابعة.

اشترك في متجر تكوين التطبيقات الخاص بك

الاشتراك في موضوع لإخبار شبكة الأحداث بالأحداث التي تريد تعقبها، ومكان إرسال هذه الأحداث. يشترك المثال التالي في تكوين التطبيق الذي أنشأته، ويمرر عنوان URL من تطبيق الويب كنقطة نهاية لإعلام الحدث. استبدل ⁧<event_subscription_name>⁩ باسم اشتراك الحدث. بالنسبة لـ ⁧<resource_group_name>⁩ و ⁧<appconfig_name>⁩، استخدم القيم التي أنشأتها سابقًا.

يجب أن تتضمن نقطة النهاية لتطبيق الويب الخاص بك اللاحقة ⁧/api/updates/⁩.

appconfigId=$(az appconfig show --name <appconfig_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $appconfigId \
  --name <event_subscription_name> \
  --endpoint $endpoint

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

View subscription event

تشغيل حدث تكوين تطبيق

الآن، لنقم بتشغيل حدث لمعرفة كيف توزع شبكة الأحداث الرسالة إلى نقطة النهاية لديك. قم بإنشاء قيمة رئيسية باستخدام من <appconfig_name> وقت سابق.

az appconfig kv set --name <appconfig_name> --key Foo --value Bar --yes

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

[{
  "id": "deb8e00d-8c64-4b6e-9cab-282259c7674f",
  "topic": "/subscriptions/{subscription-id}/resourceGroups/eventDemoGroup/providers/microsoft.appconfiguration/configurationstores/{appconfig-name}",
  "subject": "https://{appconfig-name}.azconfig.io/kv/Foo",
  "data": {
    "key": "Foo",
    "etag": "a1LIDdNEIV6wCnfv3xaip7fMXD3",
    "syncToken":"zAJw6V16=Njo1IzMzMjE3MzA=;sn=3321730"
  },
  "eventType": "Microsoft.AppConfiguration.KeyValueModified",
  "eventTime": "2019-05-31T18:59:54Z",
  "dataVersion": "1",
  "metadataVersion": "1"
}]

تنظيف الموارد

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

استبدل ⁧<resource_group_name>⁩ بمجموعة الموارد التي أنشأتها أعلاه.

az group delete --name <resource_group_name>

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

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