مشاركة عبر


إنشاء المسارات ونقاط النهاية وحذفها باستخدام Azure Resource Manager

توضح لك هذه المقالة كيفية تصدير قالب Azure IoT Hub، وإضافة مسار إلى مركز IoT الخاص بك، ثم إعادة نشر القالب إلى مركز IoT الخاص بك باستخدام Azure CLI أو Azure PowerShell. استخدم قالب Azure Resource Manager لإنشاء المسارات ونقاط النهاية. يدعم IoT Hub خدمات Azure التالية كنقاط نهاية:

  • حاويات التخزين
  • مراكز الأحداث
  • قوائم انتظار ناقل خدمة Microsoft Azure
  • مواضيع ناقل الخدمة
  • Cosmos DB

تكون قوالب Azure Resource Manager مفيدة عندما تريد تعريف الموارد باستخدام ملف JSON. يحتوي كل مورد Azure على قالب يحدد المكونات المستخدمة في هذا المورد. يمكنك تصدير جميع قوالب موارد Azure.

هام

عند استخدام قالب Resource Manager لنشر مورد، يحل القالب محل أي مورد موجود من النوع الذي تقوم بنشره.

عند إنشاء مركز IoT جديد، لا يشكل الكتابة فوق مورد منشور موجود مصدر قلق. لإنشاء مركز IoT جديد، يمكنك استخدام قالب أساسي يحتوي على الخصائص المطلوبة بدلا من تصدير قالب موجود من مركز IoT الذي تم نشره بالفعل.

ومع ذلك، إذا أضفت مسارا إلى مركز IoT موجود، فاستخدم قالب تقوم بتصديره من مركز IoT للتأكد من أن جميع الموارد والخصائص الموجودة تظل متصلة بعد نشر القالب المحدث. لن يتم استبدال الموارد التي تم نشرها بالفعل. على سبيل المثال، قد يحتوي قالب Resource Manager المصدر الذي قمت بنشره مسبقا على معلومات تخزين لمركز IoT إذا قمت بتوصيله بالتخزين.

لمعرفة المزيد حول كيفية عمل التوجيه في IoT Hub، راجع استخدام توجيه رسائل IoT Hub لإرسال رسائل من جهاز إلى سحابة إلى نقاط نهاية مختلفة. للتنقل عبر الخطوات لإعداد مسار يرسل رسائل إلى التخزين ثم يختبر على جهاز محاكاة، راجع البرنامج التعليمي: إرسال بيانات الجهاز إلى Azure Storage باستخدام توجيه رسائل IoT Hub.

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

راجع المتطلبات الأساسية لهذه المقالة استنادا إلى نوع نقطة النهاية التي تريد توجيه الرسائل إليها.

قالب Azure Resource Manager

تستخدم هذه المقالة قالب Azure Resource Manager في مدخل Microsoft Azure للعمل مع IoT Hub وخدمات Azure الأخرى. لمعرفة المزيد حول كيفية استخدام قوالب Resource Manager، راجع ما هي قوالب Azure Resource Manager؟

إنشاء مسار

في IoT Hub، يمكنك إنشاء مسار لإرسال الرسائل أو التقاط الأحداث. يحتوي كل مسار على مصدر بيانات ونقطة نهاية. مصدر البيانات هو المكان الذي تنشأ فيه الرسائل أو سجلات الأحداث. نقطة النهاية هي المكان الذي تنتهي فيه الرسائل أو سجلات الأحداث. يمكنك اختيار مواقع لمصدر البيانات ونقطة النهاية عند إنشاء مسار جديد في مركز IoT. بعد ذلك، يمكنك استخدام استعلامات التوجيه لتصفية الرسائل أو الأحداث قبل الانتقال إلى نقطة النهاية.

يمكنك استخدام مركز أحداث أو قائمة انتظار أو موضوع ناقل خدمة Microsoft Azure أو حساب تخزين Azure ليكون نقطة النهاية لمسار مركز IoT الخاص بك. يجب أن تكون الخدمة التي تستخدمها لإنشاء نقطة النهاية موجودة أولا في حساب Azure الخاص بك.

تصدير قالب Resource Manager لمركز IoT

أولا، قم بتصدير قالب Resource Manager من مركز IoT. من خلال تصدير القالب من مركز IoT، يمكنك إضافة نقطة النهاية وتوجيه الموارد وإعادة التوزيع دون فقدان الإعداد الموجود.

  1. في مدخل Microsoft Azure، انتقل إلى مركز IoT. في قائمة الموارد ضمن Automation، حدد Export template.

    لقطة شاشة تعرض موقع خيار قالب التصدير في قائمة مورد IoT Hub.

  2. في قالب التصدير، في علامة التبويب قالب ، أكمل الخطوات التالية:

    1. عرض ملف JSON الذي تم إنشاؤه لمركز IoT الخاص بك.

    2. قم بإلغاء تحديد خانة الاختيار تضمين المعلمات .

    3. حدد تنزيل لتنزيل نسخة محلية من ملف JSON.

    لقطة شاشة تعرض موقع زر التنزيل في جزء تصدير القالب.

    يحتوي القالب على العديد من العناصر النائبة التي يمكنك استخدامها لإضافة ميزات أو خدمات إلى مركز IoT. بالنسبة لهذه المقالة، أضف قيما فقط إلى الخصائص الموجودة في أو المتداخلة ضمن routing.

إضافة نقطة نهاية إلى القالب

يشير كل مسار إلى نقطة نهاية، حيث تنتهي الرسائل أو سجلات الأحداث. إنشاء نقطة نهاية في مركز IoT الذي يمكن أن يشير إليه المسار. يمكنك استخدام مركز أحداث أو قائمة انتظار أو موضوع ناقل خدمة Microsoft Azure أو حساب تخزين Azure أو حاوية Cosmos DB لتكون نقطة النهاية لمسار مركز IoT. يجب أن تكون الخدمة التي تستخدمها لإنشاء نقطة النهاية موجودة أولا في حساب Azure الخاص بك.

يحتاج مركز IoT إلى أذونات الوصول لأي مورد نقطة نهاية يرسل إليه رسائل أو سجلات. يمكنك توفير الوصول باستخدام الهويات المدارة ومعرف Microsoft Entra أو باستخدام سلسلة الاتصال. توصي Microsoft بالمصادقة باستخدام معرف Entra كخيار أكثر أمانا.

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

  1. في ملف JSON، ابحث عن الخاصية "endpoints": [] المتداخلة ضمن "routing".

  2. "endpoints": [] استبدل السطر ب JSON التالي:

    "endpoints": {
        "serviceBusQueues": [],
        "serviceBusTopics": [],
        "eventHubs": [
            {
                "endpointUri": "",
                "entityPath": "",
                "authenticationType": "identityBased",
                "identity": {
                    "userAssignedIdentity": ""
                },
                "name": "",
                "id": "",
                "subscriptionId": "",
                "resourceGroup": ""
            }
        ],
        "storageContainers": [],
        "cosmosDBSqlContainers": []
    },
    
  3. قم بتحديث JSON بالمعلومات التالية حول مورد مراكز الأحداث:

    الخاصية القيمة
    endpointUri (إذا كان نوع المصادقة هو identityBased؛ وإلا، احذف.) اسم المضيف لمساحة اسم مراكز الأحداث بالتنسيق sb://<eventhubs_namespace_name>.servicebus.windows.net
    entityPath (إذا كان نوع المصادقة هو identityBased؛ وإلا، احذف.) اسم مركز الأحداث الخاص بك.
    نوع المصادقة identityBased أو keyBased. توصي Microsoft بالمصادقة المستندة إلى الهوية كخيار أكثر أمانا.
    الهوية (إذا كان نوع المصادقة هو identityBased.) يمكنك استخدام هوية مدارة معينة من قبل المستخدم أو هوية مدارة معينة من قبل النظام إذا تم تمكين الهوية المدارة المعينة من قبل النظام في IoT Hub.

    بالنسبة إلى المستخدم المعين: المعرف الخارجي للهوية المدارة مع أذونات الوصول إلى مركز الأحداث بالتنسيق /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.

    بالنسبة إلى النظام المعين: اترك معلمة الهوية كقوائم فارغة. على سبيل المثال، "identity": {},
    سلسلة الاتصال (إذا كان نوع المصادقة هو keyBased.) سلسلة الاتصال الأساسي من أحد نهج الوصول المشتركة لمركز الأحداث بالتنسيق <connection_string>;EntityPath=<event_hub_name>. يمكنك استرداد قيمة سلسلة الاتصال من مدخل Microsoft Azure، ثم إلحاق مسار الكيان.
    الاسم قم بتوفير قيمة فريدة لتسمية نقطة النهاية الخاصة بك.
    المعرف اتركها كسلسلة فارغة. توفر خدمة Azure قيمة عند إنشاء نقطة النهاية.
    subscriptionId معرف الاشتراك الذي يحتوي على مركز الحدث الخاص بك.
    resourceGroup اسم مجموعة الموارد التي تحتوي على مركز الحدث الخاص بك.

إضافة مسار إلى القالب

أضف تعريف مسار إلى قالب Resource Manager. لمزيد من المعلومات، راجع قالب Azure Resource Manager RouteProperties.

  1. في ملف JSON، ابحث عن الخاصية "routes": [] ، متداخلة ضمن "routing"، وأضف مسارا جديدا.

    تنبيه

    إذا قمت باستبدال أي قيم موجودة ل "routes" بقيم التوجيه المستخدمة في أمثلة التعليمات البرمجية التالية، تتم إزالة المسارات الموجودة عند النشر. للاحتفاظ بالمسارات الموجودة، أضف كائن التوجيه الجديد إلى "routes" القائمة.

    "routes": [
        {
            "name": "",
            "source": "DeviceConnectionStateEvents",
            "condition": "true",
            "endpointNames": [
                ""
            ],
            "isEnabled": true
        }
    ],
    
  2. تحديث JSON بالمعلومات التالية حول مورد Cosmos DB الخاص بك:

    الخاصية القيمة
    الاسم قم بتوفير قيمة فريدة لتسمية مسارك.
    المصدر حدد مصدر سجلات الرسائل أو الأحداث لتوجيهها إلى نقطة النهاية. للحصول على قائمة بخيارات المصدر، راجع az iot hub route.
    condition استعلام لتصفية البيانات المصدر. إذا لم يكن هناك شرط مطلوب، فقل true. لمزيد من المعلومات، راجع بناء جملة استعلام توجيه رسالة IoT Hub.
    أسماء نقاط النهاية اسم نقطة النهاية الموجودة حيث سيتم توجيه هذه البيانات. يسمح حاليا بنقطة نهاية واحدة فقط.
    isEnabled قم بتعيين إلى true لتمكين المسار، أو false لتعطيل المسار.
  3. احفظ ملف JSON الخاص بك.

انشر قالب Azure Resource Manager

مع إضافة نقطة النهاية الجديدة والمسار إلى قالب Resource Manager، يمكنك الآن نشر ملف JSON مرة أخرى إلى مركز IoT الخاص بك.

التوزيع المحلي

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "my\path\to\template.json"

توزيع Azure Cloud Shell

نظرا لأن Azure Cloud Shell يعمل في مستعرض ويب، يمكنك تحميل ملف القالب قبل تشغيل أمر النشر. مع تحميل الملف، تحتاج فقط إلى اسم ملف القالب (بدلا من مسار الملف بأكمله) لاستخدامه في المعلمة template-file .

لقطة شاشة تعرض موقع الزر في Azure Cloud Shell لتحميل ملف.

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "template.json"

إشعار

إذا فشل التوزيع، فاستخدم-verbose رمز التبديل للحصول على معلومات حول الموارد التي تقوم بإنشائها. استخدم مفتاح -debug للحصول على مزيد من المعلومات لتصحيح الأخطاء.

تأكيد النشر

للتأكد من أن القالب الخاص بك تم نشره بنجاح في Azure، في مدخل Microsoft Azure، انتقل إلى مورد مجموعة الموارد. في قائمة الموارد ضمن Settings، حدد Deployments لمشاهدة القالب في قائمة عمليات التوزيع الخاصة بك.

لقطة شاشة تعرض قائمة عمليات النشر لمورد في مدخل Microsoft Azure، مع تمييز قالب اختبار.

لعرض مسارك الجديد في مدخل Microsoft Azure، انتقل إلى مورد IoT Hub. في جزء "Message routing "، في علامة التبويب "Routes "، تأكد من إدراج المسار الخاص بك.

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

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

لمعرفة المزيد حول توجيه الرسائل، راجع البرنامج التعليمي: إرسال بيانات الجهاز إلى Azure Storage باستخدام توجيه رسائل IoT Hub. في البرنامج التعليمي، يمكنك إنشاء مسار تخزين واختباره باستخدام جهاز في مركز IoT الخاص بك.