استخدم Event Grid لإعلامات تغيير بيانات App Configuration

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

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

Azure Cloud Shell

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

لبدء Azure Cloud Shell:

خيار مثال/ رابط
انقر فوق ⁧⁩جربه⁧⁩ في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد ⁧⁩جربه⁧⁩ لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. لقطة شاشة تعرض مثالاً على Try It for Azure Cloud Shell.
انتقل إلى ⁧⁩⁧ https://shell.azure.com⁩⁧⁩، أو حدد زر ⁩تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. زر لتشغيل Azure Cloud Shell.
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. لقطة شاشة تعرض زر Cloud Shell في مدخل Microsoft Azure

لاستخدام 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

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

    az provider register --namespace Microsoft.EventGrid
    
  2. قد يستغرق التسجيل بعض الوقت. للتحقق من الحالة، قم بتشغيل الأمر التالي:

    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

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

عرض حدث الاشتراك

بدء حدث تكوين التطبيق

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

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

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

[{
  "id": "00000000-0000-0000-0000-000000000000",
  "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>

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

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