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

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

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

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

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

Button to deploy the Resource Manager template to Azure.

إذا لم يكن لديك اشتراك في 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، وفتح القالب للنشر. ينشئ القالب مركز Iot جديد ومورد DPS. يرتبط مركز IoT الجديد بمورد DPS.

    Button to deploy the Resource Manager template to Azure.

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

    ARM template deployment parameters on the portal

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

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

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

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

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

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

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

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

    az login
    

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

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

    az account list -o table
    

    استخدم الأمر التالي لتحديد الاشتراك الذي تريد استخدامه لتشغيل الأوامر لإنشاء مركز 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 أدخل اسما لمركز IoT يجب أن يكون فريدا عالميا داخل مساحة الاسم .azure-devices.net . تحتاج إلى اسم لوحة الوصل في المقطع التالي عند التحقق من صحة النشر.
    provisioningServiceName أدخل اسمًا للمورد الجديد لخدمة توفير الأجهزة (DPS). يجب أن يكون الاسم فريدا بشكل عام داخل مساحة الاسم .azure-devices-provisioning.net . تحتاج إلى اسم DPS في المقطع التالي عند التحقق من صحة النشر.

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

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

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

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

     az iot dps show --name <Your provisioningServiceName>
    

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

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

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

لحذف مجموعة موارد وجميع مواردها من مدخل Microsoft Azure، ما عليك سوى فتح مجموعة الموارد وتحديد حذف مجموعة الموارد والأعلى.

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

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

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

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

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

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