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

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

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

هام

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

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

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

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

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

تستخدم الإجراءات الموضحة في المقالة الموارد التالية:

  • قالب Azure Resource Manager
  • مركز IoT
  • خدمة نقطة نهاية في Azure

قالب Azure Resource Manager

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

مركز IoT

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

تأكد من أن لديك مورد المركز التالي لاستخدامه عند إنشاء مسار مركز IoT الخاص بك:

خدمة نقطة النهاية

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

تأكد من أن لديك أحد الموارد التالية لاستخدامها عند إنشاء نقطة نهاية لمسار مركز IoT الخاص بك:

إنشاء مسار

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

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

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

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

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

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

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

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

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

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

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

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

إضافة نقطة نهاية جديدة إلى قالب Resource Manager

في ملف JSON، ابحث عن الخاصية "endpoints": [] المتداخلة ضمن "routing". أكمل الخطوات لإضافة نقطة نهاية جديدة استنادا إلى خدمة Azure التي تختارها لنقطة النهاية: مراكز الأحداث أو قوائم انتظار أو مواضيع ناقل خدمة Microsoft Azure أو Azure Storage.

لمعرفة كيفية إنشاء مورد مراكز الأحداث (باستخدام الحاوية)، راجع التشغيل السريع: إنشاء مركز أحداث باستخدام قالب Resource Manager.

في مدخل Microsoft Azure، احصل على سلسلة الاتصال الأساسية من مورد مراكز الأحداث. في جزء نهج الوصول المشترك للمورد، حدد أحد النهج الخاصة بك لمشاهدة معلومات المفتاح وسلسلة الاتصال. أضف اسم مركز الحدث إلى مسار الكيان في نهاية سلسلة الاتصال. على سبيل المثال، استخدم ;EntityPath=my-event-hubs. هذا الاسم هو اسم مركز الحدث الخاص بك، وليس اسم مساحة الاسم.

بالنسبة إلى name، استخدم قيمة فريدة لنقطة نهاية مراكز الأحداث. اترك المعلمة id كسلسلة فارغة. توفر id خدمة Azure قيمة عند توزيع نقطة النهاية.

"routing": {
   "endpoints": {
      "serviceBusQueues": [],
      "serviceBusTopics": [],
      "eventHubs": [
            {
               "connectionString": "my Event Hubs connection string + entity path",
               "authenticationType": "keyBased",
               "name": "my-event-hubs-endpoint",
               "id": "",
               "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
               "resourceGroup": "my-resource-group"
            }
      ],
      "storageContainers": [],
      "cosmosDBSqlCollections": []
   },
},

إضافة مسار جديد إلى قالب Resource Manager

في ملف JSON، ابحث عن الخاصية "routes": [] ، المتداخلة ضمن "routing"، وأضف المسار الجديد التالي، وفقا لخدمة نقطة النهاية التي اخترتها: مراكز الأحداث أو قوائم انتظار أو مواضيع ناقل الخدمة أو Azure Storage.

يجمع المسار الاحتياطي الافتراضي الرسائل من DeviceMessages. اختر خيارا مختلفا، مثل DeviceConnectionStateEvents. لمزيد من المعلومات حول خيارات المصدر، راجع az iot hub route.

تنبيه

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

لمزيد من المعلومات حول القالب، راجع تعريف مورد قالب Azure Resource Manager.

"routes": [
    {
        "name": "MyIotHubRoute",
        "source": "DeviceConnectionStateEvents",
        "condition": "true",
        "endpointNames": [
        "my-event-hubs-endpoint"
        ],
        "isEnabled": true
    }
],

احفظ ملف 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 الخاص بك.