مشاركة عبر


التشغيل السريع: إعداد خدمة توفير جهاز IoT Hub (DPS) باستخدام قالب ARM

يمكنك استخدام قالب Azure Resource Manager (قالب ARM) لإعداد موارد سحابة Azure الضرورية لتوفير أجهزتك برمجيا. توضح هذه الخطوات كيفية إنشاء مركز IoT وخدمة توفير جهاز IoT Hub جديدة باستخدام قالب ARM. مركز إنترنت الأشياء مرتبط أيضا بمورد DPS باستخدام القالب. يسمح هذا الارتباط للمورد DPS بتعيين أجهزة إلى لوحة الوصل استنادًا إلى نهج التخصيص التي تقوم بتكوينها.

قالب Azure Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. يستخدم القالب عبارات توضيحية. يمكنك وصف النشر المقصود دون كتابة تسلسل أوامر البرمجة لإنشاء النشر.

يستخدم هذا التشغيل السريع مدخل Microsoft AzureوAzure CLI لتنفيذ الخطوات البرمجية اللازمة لإنشاء مجموعة موارد ونشر القالب. ومع ذلك، يمكنك أيضا استخدام PowerShell أو .NET أو Ruby أو لغات برمجة أخرى لتنفيذ هذه الخطوات ونشر القالب الخاص بك.

إذا كانت بيئتك تفي بالمتطلبات الأساسية، وكنت على دراية بالفعل باستخدام قوالب ARM، فإن تحديد الزر Deploy to Azure يفتح القالب للنشر في مدخل Microsoft Azure.

زر لنشر قالب Resource Manager إلى Azure.

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

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

مراجعة القالب

يُعدّ النموذج المستخدم في هذا التشغيل السريع مأخوذاً من قوالب التشغيل السريع من Azure.

إشعار

حاليا لا يوجد دعم لقوالب ARM لإنشاء تسجيلات باستخدام موارد DPS جديدة. هذا طلب شائع ومفهوم يتم النظر فيه للتنفيذ.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.12.40.16777",
      "templateHash": "13184692430416822033"
    }
  },
  "parameters": {
    "iotHubName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the Iot hub."
      }
    },
    "provisioningServiceName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the provisioning service."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify the location of the resources."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "S1",
      "metadata": {
        "description": "The SKU to use for the IoT Hub."
      }
    },
    "skuUnits": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of IoT Hub units."
      }
    }
  },
  "variables": {
    "iotHubKey": "iothubowner"
  },
  "resources": [
    {
      "type": "Microsoft.Devices/IotHubs",
      "apiVersion": "2021-07-02",
      "name": "[parameters('iotHubName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {}
    },
    {
      "type": "Microsoft.Devices/provisioningServices",
      "apiVersion": "2022-02-05",
      "name": "[parameters('provisioningServiceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {
        "iotHubs": [
          {
            "connectionString": "[format('HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}', reference(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').hostName, variables('iotHubKey'), listkeys(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').value[0].primaryKey)]",
            "location": "[parameters('location')]"
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
      ]
    }
  ]
}

يتم تعريف موردين من موارد Azure في القالب السابق:

نشر القالب

النشر باستخدام المدخل

  1. حدد الصورة التالية لتسجيل الدخول إلى Azure وافتح القالب للنشر. يقوم القالب بإنشاء مركز إنترنت الأشياء الجديد ومورد DPS. يرتبط مركز IoT الجديد بمورد DPS.

    زر لنشر قالب Resource Manager إلى Azure.

  2. حدد القيم التالية أو أدخلها وحدد Review + Create.

    لقطة شاشة تظهر معلمات نشر قالب ARM على بوابة Azure.

    ما لم يتم تحديد خلاف ذلك للحقول التالية، استخدم القيمة الافتراضية لإنشاء مركز إنترنت الأشياء ومورد DPS.

    الحقل ‏‏الوصف
    الاشتراك حدد اشتراك Azure الخاص بك.
    مجموعة الموارد حدد Create new، وأدخل اسما فريدا لمجموعة الموارد، ثم حدد OK.
    المنطقة حدد منطقة لمواردك. على سبيل المثال، شرق الولايات المتحدة. للمرونة والموثوقية، نوصي بالنشر في إحدى المناطق التي تدعم مناطق التوفر.
    اسم مركز IoT أدخل اسما لمركز إنترنت الأشياء يجب أن يكون فريدا عالميا ضمن مساحة الأسماء .azure-devices.net . تحتاج إلى اسم المركز في القسم التالي عند التحقق من صحة النشر.
    اسم خدمة التوفير أدخل اسما لمورد خدمة توفير الأجهزة (DPS) الجديد. يجب أن يكون الاسم فريدا بشكل عام داخل مساحة الاسم .azure-devices-provisioning.net . تحتاج إلى اسم DPS في القسم التالي عند التحقق من صحة النشر.
  3. على الشاشة التالية، اقرأ المصطلحات. إذا وافقت على جميع الشروط، فحدد إنشاء.

    يستغرق النشر بضع لحظات لإكماله.

    بالإضافة إلى بوابة Azure، يمكنك أيضًا استخدام Azure PowerShell، Azure CLI, and REST API. لتعلم طرق نشر أخرى، راجع نشر الموارد باستخدام قوالب ARM وAzure PowerShell.

النشر باستخدام Azure CLI

يتطلب استخدام Azure CLI الإصدار 2.6 أو أحدث. إذا كنت تقوم بتشغيل Azure CLI محليا، فتحقق من الإصدار الخاص بك عن طريق تشغيل: az --version

سجل الدخول إلى حسابك في Azure، وحدد اشتراكك.

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

    az login
    

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

  2. إذا كان لديك العديد من اشتراكات Azure، فإن تسجيل الدخول إلى Azure يمنحك حق الوصول إلى كافة حسابات Azure المقترنة ببيانات الاعتماد الخاصة بك. استخدم أمر قائمة حسابات az أدناه لسرد حسابات Azure المتاحة لك:

    az account list -o table
    

    استخدم أمر az account set التالي لاختيار الاشتراك الذي تريد استخدامه لتشغيل الأوامر لإنشاء مركز IoT وموارد DPS. يمكنك استخدام اسم الاشتراك، أو معرف ID من إخراج الأمر السابق:

    az account set --subscription {your subscription name or id}
    
  3. انسخ الأوامر التالية والصقها في موجه CLI. ثم قم بتنفيذ الأوامر عن طريق تحديد مفتاح Enter.

    بقشيش

    تطالب الأوامر بموقع مجموعة موارد. يمكنك عرض قائمة المواقع المتاحة من خلال تشغيل الأمر التالي أولا:

    az account list-locations -o table

    read -p "Enter a project name that is used for generating resource names:" projectName &&
    read -p "Enter the location (i.e. centralus):" location &&
    templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.devices/iothub-device-provisioning/azuredeploy.json" &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-uri  $templateUri &&
    echo "Press [ENTER] to continue ..." &&
    read
    
  4. تطالبك الأوامر بالمعلومات التالية. قم بتوفير كل قيمة وحدد مفتاح الإدخال Enter.

    المعلمة ‏‏الوصف
    اسم المشروع يتم استخدام قيمة هذه المعلمة لإنشاء مجموعة موارد للاحتفاظ بكافة الموارد. تتم إضافة السلسلة rg إلى نهاية قيمة اسم مجموعة الموارد.
    مكان هذه القيمة هي المنطقة التي يتم فيها إنشاء كافة الموارد.
    iotHubName أدخل اسما لمركز إنترنت الأشياء يجب أن يكون فريدا عالميا ضمن مساحة الأسماء .azure-devices.net . تحتاج إلى اسم المركز في القسم التالي عند التحقق من صحة النشر.
    provisioningServiceName أدخل اسما لمورد خدمة توفير الأجهزة (DPS) الجديد. يجب أن يكون الاسم فريدا بشكل عام داخل مساحة الاسم .azure-devices-provisioning.net . تحتاج إلى اسم DPS في القسم التالي عند التحقق من صحة النشر.

    يتم استخدام Azure CLI لنشر القالب. بالإضافة إلى Azure CLI، يمكنك أيضا استخدام Azure PowerShell ومدخل Azure وواجهة برمجة تطبيقات REST. لمعرفة طرق النشر الأخرى، راجع نشر القوالب.

مراجعة الموارد الموزعة

  1. للتحقق من النشر، قم بتشغيل أمر قائمة الموارد az أدناه لسرد الموارد وابحث عن خدمة التوفير الجديدة ومركز إنترنت الأشياء في المخرج:

     az resource list -g "${projectName}rg"
    
  2. للتحقق من أن المركز مرتبط بالفعل بمورد DPS، قم بتشغيل أمر az iot dps show التالي.

     az iot dps show --name <Your provisioningServiceName>
    

    لاحظ المراكز المرتبطة بالعضو iotHubs .

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

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

لحذف مجموعة موارد وجميع مواردها من بوابة Azure، فقط افتح مجموعة الموارد واختر حذف مجموعة الموارد في الأعلى.

لحذف مجموعة الموارد المنشورة باستخدام Azure CLI:

az group delete --name "${projectName}rg"

يمكنك أيضا حذف مجموعات الموارد والموارد الفردية باستخدام أي من الخيارات التالية:

  • مدخل Azure
  • PowerShell
  • واجهة برمجة تطبيقات REST
  • حزم SDK للنظام الأساسي المدعوم المنشورة ل Azure Resource Manager أو خدمة توفير جهاز IoT Hub

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

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