إعداد معالجة الحدث التوأم إلى التوأم
توضح هذه المقالة كيفية إرسال الأحداث من توأم إلى توأم، بحيث عند تحديث توأم رقمي واحد في الرسم البياني، يمكن أيضا تحديث التوائم ذات الصلة في الرسم البياني المتأثر بهذه المعلومات. ستساعدك معالجة الحدث هذه على إنشاء رسم بياني ل Azure Digital Twins متصل بالكامل، حيث يتم نشر البيانات التي تصل إلى Azure Digital Twins من مصادر خارجية مثل IoT Hub من خلال الرسم البياني بأكمله.
لإعداد معالجة الأحداث المزدوجة إلى التوأم هذه، ستقوم بإنشاء دالة Azure التي تراقب أحداث دورة حياة التوأم. تتعرف الدالة على الأحداث التي يجب أن تؤثر على التوائم الأخرى في الرسم البياني، وتستخدم بيانات الحدث لتحديث التوائم المتأثرة وفقا لذلك.
المتطلبات الأساسية
لإعداد المعالجة المزدوجة إلى المزدوجة، ستحتاج إلى مثيل Azure Digital Twins للعمل معه. للحصول على إرشادات حول كيفية إنشاء مثيل، راجع إعداد مثيل Azure Digital Twins والمصادقة. يجب أن يحتوي المثيل على توأمين على الأقل تريد إرسال البيانات بينهما.
اختياريا، قد ترغب في إعداد الاستيعاب التلقائي لبيانات تتبع الاستخدام من خلال IoT Hub للتوائم الخاصة بك أيضا. هذه العملية غير مطلوبة لإرسال البيانات من توأم إلى توأم، ولكنها جزء مهم من حل كامل حيث يتم تشغيل الرسم البياني المزدوج بواسطة بيانات تتبع الاستخدام للجهاز المباشر.
إرسال أحداث مزدوجة إلى نقطة نهاية
لإعداد معالجة الأحداث المزدوجة إلى المزدوجة، ابدأ بإنشاء نقطة نهاية في Azure Digital Twins ومسار إلى نقطة النهاية هذه. سيستخدم التوائم الذين يخضعون للتحديث المسار لإرسال معلومات حول أحداث التحديث الخاصة بهم إلى نقطة النهاية (حيث يمكن لشبكة الأحداث التقاطها لاحقا وتمريرها إلى وظيفة Azure للمعالجة).
إنشاء موضوع Event Grid
Event Grid هي خدمة Azure تساعد على توجيه الأحداث وتسليمها من خدمات Azure إلى أماكن أخرى داخل Azure. يمكنك إنشاء موضوع Event Grid لتجميع أحداث معينة من مصدر، ومن ثم يمكن للمشتركين الاستماع إلى الموضوع لتلقي الأحداث أثناء مرورها.
في Azure CLI، قم بتشغيل الأمر التالي لإنشاء موضوع Event Grid:
az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>
الإخراج من هذا الأمر هو معلومات حول موضوع Event Grid الذي قمت بإنشائه. احفظ الاسم الذي أعطيته لموضوع Event Grid، لأنك ستستخدمه لاحقا.
أنشئ نقطة النهاية
بعد ذلك، قم بإنشاء نقطة نهاية Event Grid في Azure Digital Twins، والتي ستربط المثيل الخاص بك بموضوع Event Grid الخاص بك. استخدم الأمر أدناه، واملأ اسم موضوع Event Grid من الخطوة السابقة وحقول العنصر النائب الأخرى حسب الحاجة.
az dt endpoint create eventgrid --dt-name <Azure-Digital-Twins-instance> --eventgrid-resource-group <your-resource-group> --eventgrid-topic <your-event-grid-topic> --endpoint-name <name-for-your-Azure-Digital-Twins-endpoint>
الإخراج من هذا الأمر هو معلومات حول نقطة النهاية التي قمت بإنشائها.
ابحث عن provisioningState
الحقل في المخرجات، وتحقق من أن القيمة "نجحت".
قد يشير أيضًا إلى "توفير"، مما يعني أن نقطة النهاية لا تزال قيد الإنشاء. إذا كان الأمر كذلك، فانتظر بضع ثوانٍ وقم بتشغيل الأمر التالي للتحقق من حالة نقطة النهاية. كرر حتى يعرض provisioningState
"تم النجاح".
az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint>
احفظ اسم نقطة النهاية الخاصة بك، لأنك ستستخدمها لاحقًا.
إنشاء المسار
بعد ذلك، قم بإنشاء مسار Azure Digital Twins الذي يرسل الأحداث إلى نقطة نهاية Event Grid التي أنشأتها.
استخدم أمر CLI التالي، مع ملء اسم نقطة النهاية من الخطوة السابقة وحقول العناصر النائبة الأخرى حسب الحاجة. يقوم هذا الأمر بإعادة توجيه جميع الأحداث التي تحدث في الرسم البياني المزدوج.
تلميح
يمكنك قصر الأحداث على أحداث معينة فقط إذا كنت تريد ذلك باستخدام عوامل التصفية.
az dt route create --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> --route-name <name-for-your-Azure-Digital-Twins-route>
ناتج هذا الأمر هو بعض المعلومات حول المسار الذي قمت بإنشائه.
إشعار
يجب أن تنتهي نقاط النهاية (من الخطوة السابقة) من التوفير قبل أن تتمكن من إعداد مسار حدث يستخدمها. إذا فشل إنشاء المسار لأن نقاط النهاية غير جاهزة، فانتظر بضع دقائق ثم حاول مرة أخرى.
إنشاء دالة Azure لتحديث التوائم
بعد ذلك، قم بإنشاء دالة Azure التي ستستمع إلى نقطة النهاية وتتلقى الأحداث المزدوجة التي يتم إرسالها هناك عبر المسار. يجب أن يستخدم منطق الدالة المعلومات الموجودة في الأحداث لتحديد التوائم الأخرى التي تحتاج إلى تحديث ثم تنفيذ التحديثات.
أولا، إنشاء مشروع Azure Functions جديد.
يمكنك القيام بذلك باستخدام Visual Studio (للحصول على إرشادات، راجع تطوير وظائف Azure باستخدام Visual Studio)، أو Visual Studio Code (للحصول على إرشادات، راجع إنشاء دالة C# في Azure باستخدام Visual Studio Code)، أو Azure CLI (للحصول على إرشادات، راجع إنشاء دالة C# في Azure من سطر الأوامر).
أضف الحزم التالية إلى مشروعك (يمكنك استخدام مدير حزمة Visual Studio NuGet، أو الأمر dotnet add package في أداة سطر الأوامر).
املأ منطق الدالة الخاصة بك. يمكنك عرض نموذج التعليمات البرمجية للدالة لعدة سيناريوهات في مستودع azure-digital-twins-getting-started لمساعدتك على البدء.
نشر الدالة إلى Azure، باستخدام الأسلوب المفضل لديك.
للحصول على إرشادات حول كيفية نشر الدالة باستخدام Visual Studio، راجع تطوير وظائف Azure باستخدام Visual Studio. للحصول على إرشادات حول كيفية نشر الدالة باستخدام Visual Studio Code، راجع إنشاء دالة C# في Azure باستخدام Visual Studio Code. للحصول على إرشادات حول كيفية نشر الدالة باستخدام Azure CLI، راجع إنشاء دالة C# في Azure من سطر الأوامر.
بمجرد اكتمال عملية نشر الدالة، يمكنك استخدام أمر Azure CLI هذا للتحقق من نجاح النشر. هناك عناصر نائبة لمجموعة الموارد واسم تطبيق الوظائف واسم وظيفتك المحددة. سيقوم الأمر بطباعة معلومات حول الدالة.
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name <your-function>
تكوين تطبيق الوظائف
قبل أن تتمكن وظيفتك من الوصول إلى Azure Digital Twins، فإنها تحتاج إلى بعض المعلومات حول المثيل والإذن للوصول إليه. في هذا القسم، ستقوم بتعيين دور وصول للوظيفة وتكوين إعدادات التطبيق بحيث يمكن العثور على المثيل والوصول إليه.
قم بتشغيل الأوامر التالية في Azure Cloud Shell أو Azure CLI محلي.
إشعار
يجب إكمال هذا القسم بواسطة مستخدم Azure لديه أذونات لإدارة وصول المستخدم إلى موارد Azure، بما في ذلك منح الأذونات وتفويضها. الأدوار الشائعة التي تفي بهذا المطلب هي المالكأو مسؤول الحسابأو مجموعة من مدير وصول المستخدمو المساهم. لمزيد من المعلومات حول متطلبات الأذونات لأدوار Azure Digital Twins، راجع إعداد مثيل ومصادقة.
تعيين دور وصول
تتطلب دالة Azure تمرير رمز مميز للحامل إليه. للتأكد من تمرير الرمز المميز للحامل، امنح تطبيق الدالة دور مالك بيانات Azure Digital Twins لمثيل Azure Digital Twins، والذي سيمنح تطبيق الوظيفة الإذن لتنفيذ أنشطة مستوى البيانات على المثيل.
استخدم الأمر التالي لإنشاء هوية مدارة من قبل النظام لوظيفتك (إذا كانت الدالة تحتوي بالفعل على واحدة، فسيطبع هذا الأمر تفاصيلها). لاحظ الحقل في
principalId
الإخراج. ستستخدم هذا المعرف للإشارة إلى الدالة بحيث يمكنك منحها أذونات في الخطوة التالية.az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>
principalId
استخدم القيمة في الأمر التالي لإعطاء الوظيفة دور مالك بيانات Azure Digital Twins لمثيل Azure Digital Twins.az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
تكوين إعدادات التطبيق
بعد ذلك، اجعل عنوان URL لمثيل Azure Digital Twins الخاص بك قابلا للوصول إلى وظيفتك عن طريق تعيين متغير بيئة له.
تلميح
يتم إجراء عنوان URL لمثيل Azure Digital Twins عن طريق إضافة https:// إلى بداية اسم مضيف المثيل الخاص بك. لمشاهدة اسم المضيف، جنبا إلى جنب مع جميع خصائص المثيل الخاص بك، قم بتشغيل az dt show --dt-name <your-Azure-Digital-Twins-instance>
.
يعين الأمر التالي متغير بيئة لعنون URL للمثيل الذي ستستخدمه وظيفتك كلما احتاجت إلى الوصول إلى المثيل.
az functionapp config appsettings set --resource-group <your-resource-group> --name <your-function-app-name> --settings "ADT_SERVICE_URL=https://<your-Azure-Digital-Twins-instance-host-name>"
توصيل الدالة بنقطة النهاية
بعد ذلك، اشترك في دالة Azure في نقطة نهاية Event Grid التي أنشأتها سابقا. سيؤدي القيام بذلك إلى ضمان أن البيانات يمكن أن تتدفق من توأم محدث من خلال موضوع Event Grid إلى الوظيفة، والتي يمكنها استخدام معلومات الحدث لتحديث التوائم الأخرى حسب الحاجة.
للاشتراك في دالة Azure، ستقوم بإنشاء اشتراك Event Grid يرسل بيانات من موضوع Event Grid الذي قمت بإنشائه سابقا إلى دالة Azure.
استخدم أمر CLI التالي، واملأ العناصر النائبة لمعرف الاشتراك ومجموعة الموارد والتطبيق الوظيفي واسم الدالة.
az eventgrid event-subscription create --name <name-for-your-event-subscription> --source-resource-id /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app-name>/functions/<function-name>
الآن، يمكن أن تتلقى وظيفتك الأحداث من خلال موضوع Event Grid. اكتمل إعداد تدفق البيانات.
اختبار النتائج والتحقق منها
الخطوة الأخيرة هي التحقق من أن التدفق يعمل، عن طريق تحديث توأم والتحقق من تحديث التوائم ذات الصلة وفقا للمنطق في وظيفة Azure.
لبدء العملية، قم بتحديث التوأم الذي هو مصدر تدفق الحدث. يمكنك استخدام واجهات برمجة تطبيقات Azure CLI أو Azure Digital Twins SDK أو Azure Digital Twins REST لإجراء التحديث.
بعد ذلك، استعلم عن مثيل Azure Digital Twins الخاص بك عن التوأم ذي الصلة. يمكنك استخدام Azure CLI أو واجهات برمجة تطبيقات Azure Digital Twins REST وSDK. تحقق من أن التوأم تلقى البيانات وتحديثها كما هو متوقع.
الخطوات التالية
في هذه المقالة، يمكنك إعداد معالجة الأحداث المزدوجة إلى المزدوجة في Azure Digital Twins. بعد ذلك، قم بإعداد دالة Azure لتشغيل هذا التدفق تلقائيا استنادا إلى بيانات تتبع الاستخدام الواردة من أجهزة IoT Hub: استيعاب بيانات تتبع الاستخدام من IoT Hub.