Mulai cepat: Menyiapkan IoT Hub Device Provisioning Service (DPS) dengan template ARM

Anda dapat menggunakan template Azure Resource Manager (template ARM) untuk menyiapkan sumber daya cloud Azure secara terprogram yang diperlukan untuk provisi perangkat Anda. Langkah-langkah ini menunjukkan cara membuat IoT hub dan IoT Hub Device Provisioning Service baru dengan template ARM. Hub Iot juga ditautkan ke sumber daya DPS menggunakan template. Penautan ini mengizinkan sumber daya DPS untuk menetapkan perangkat ke hub berdasarkan kebijakan alokasi yang Anda konfigurasikan.

Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menjelaskan penyebaran yang Dimaksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran.

Mulai cepat ini menggunakan portal Azure dan Azure CLI untuk melakukan langkah-langkah terprogram yang diperlukan untuk membuat grup sumber daya dan menyebarkan templat. Namun, Anda juga dapat menggunakan PowerShell, .NET, Ruby, atau bahasa pemrograman lainnya untuk melakukan langkah-langkah ini dan menyebarkan templat Anda.

Jika lingkungan Anda memenuhi prasyarat, dan Anda sudah terbiasa menggunakan templat ARM, memilih tombol Sebarkan ke Azure akan membuka templat untuk penyebaran di portal Azure.

Button to deploy the Resource Manager template to Azure.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

Meninjau templat

Templat yang digunakan di mulai cepat ini berasal dari Templat Mulai Cepat Azure.

Catatan

Saat ini tidak ada dukungan template ARM untuk membuat pendaftaran dengan sumber daya DPS baru. Ini adalah permintaan umum dan dipahami yang sedang dipertimbangkan untuk implementasi.

{
  "$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'))]"
      ]
    }
  ]
}

Dua sumber daya Azure didefinisikan dalam templat sebelumnya:

Menyebarkan templat

Menyebarkan dengan Portal

  1. Pilih gambar berikut untuk masuk ke Azure dan buka template untuk penyebaran. Templat membuat hub Iot dan sumber daya DPS baru. Hub IoT baru ditautkan ke sumber daya DPS.

    Button to deploy the Resource Manager template to Azure.

  2. Pilih atau masukkan nilai berikut dan pilih Tinjau + Buat.

    ARM template deployment parameters on the portal

    Kecuali ditentukan lain untuk bidang berikut, gunakan nilai default untuk membuat sumber daya Iot Hub dan DPS.

    Bidang Deskripsi
    Langganan Pilih langganan Azure Anda.
    Grup sumber daya Pilih Buat baru, dan masukkan nama unik untuk grup sumber daya, lalu pilih OK.
    Wilayah Pilih wilayah untuk sumber daya Anda. Misalnya, US Timur. Untuk ketahanan dan keandalan, sebaiknya sebarkan ke salah satu wilayah yang mendukung Zona Ketersediaan.
    Nama IoT Hub Masukkan nama unik secara global untuk IoT Hub dalam namespace layanan .azure-devices.net. Anda memerlukan nama hub di bagian berikutnya saat memvalidasi penyebaran.
    Nama Layanan Provisi Masukkan nama untuk sumber daya Device Provisioning Service (DPS) baru. Nama harus unik secara global dalam namespace layanan .azure-devices-provisioning.net. Anda memerlukan nama DPS di bagian berikutnya saat memvalidasi penyebaran.
  3. Pada layar berikutnya, baca ketentuan. Jika Anda menyetujui semua persyaratan, pilih Buat.

    Penyebaran membutuhkan waktu beberapa saat untuk diselesaikan.

    Selain portal Microsoft Azure, Anda juga dapat menggunakan Azure PowerShell, Azure CLI, dan REST API. Untuk mempelajari metode penyebaran lainnya, lihat Menyebarkan templat.

Menyebarkan dengan Azure CLI

Pengunaan Azure CLI memerlukan versi 2.6 atau yang lebih baru. Jika Anda menjalankan Azure CLI secara lokal, verifikasi versi Anda dengan menjalankan: az --version

Masuklah ke akun Azure Anda dan pilih langganan Anda.

  1. Jika Anda menjalankan Azure CLI secara lokal alih-alih menjalankannya di portal, Anda perlu masuk. Untuk masuk di prompt perintah, jalankan perintah masuk:

    az login
    

    Ikuti instruksinya untuk mengautentikasi menggunakan kode dan masuk ke akun Azure Anda melalui browser web.

  2. Jika Anda memiliki beberapa langganan Azure, maka masuk ke Azure akan memberi Anda akses ke semua akun Azure yang terkait dengan informasi masuk Anda. Gunakan perintah berikut ini untuk mencantumkan akun Azure yang tersedia untuk Anda gunakan:

    az account list -o table
    

    Gunakan perintah berikut untuk memilih langganan yang Anda ingin gunakan untuk menjalankan perintah untuk membuat loT hub dan sumber daya DPS Anda. Anda dapat menggunakan nama atau ID langganan dari output perintah sebelumnya:

    az account set --subscription {your subscription name or id}
    
  3. Salin dan tempel perintah berikut ke dalam CLI permintaan Anda. Kemudian jalankan perintah dengan memilih tombol Enter.

    Tip

    Perintah meminta lokasi grup sumber daya. Anda dapat menampilkan daftar lokasi yang tersedia dengan menjalankan perintah terlebih dahulu:

    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. Perintah meminta informasi berikut. Berikan setiap nilai dan pilih tombol Enter.

    Parameter Deskripsi
    Nama proyek Nilai parameter ini digunakan untuk membuat grup sumber daya untuk menyimpan semua sumber daya. String rg ditambahkan ke akhir nilai untuk nama grup sumber daya Anda.
    Lokasi Nilai ini adalah wilayah tempat semua sumber daya dibuat.
    iotHubName Masukkan nama unik secara global untuk IoT Hub dalam namespace layanan .azure-devices.net. Anda memerlukan nama hub di bagian berikutnya saat memvalidasi penyebaran.
    provisioningServiceName Masukkan nama untuk sumber daya Device Provisioning Service (DPS) baru. Nama harus unik secara global dalam namespace layanan .azure-devices-provisioning.net. Anda memerlukan nama DPS di bagian berikutnya saat memvalidasi penyebaran.

    Azure CLI digunakan untuk menyebarkan templat. Selain Azure CLI, Anda juga dapat menggunakan Azure PowerShell, portal Microsoft Azure, dan REST API. Untuk mempelajari metode penyebaran lainnya, lihat Menyebarkan templat.

Meninjau sumber daya yang disebarkan

  1. Untuk memverifikasi penyebaran, jalankan perintah berikut ini untuk mencantumkan sumber daya dan mencari layanan provisi baru dan IoT hub dalam output:

     az resource list -g "${projectName}rg"
    
  2. Untuk memverifikasi bahwa hub sudah ditautkan ke sumber daya DPS, jalankan perintah ekstensi DPS berikut ini.

     az iot dps show --name <Your provisioningServiceName>
    

    Perhatikan hub yang ditautkan pada anggota iotHubs.

Membersihkan sumber daya

Panduan mulai cepat yang lain dalam koleksi ini dibangun berdasarkan panduan mulai cepat ini. Jika Anda berencana untuk terus bekerja dengan mulai cepat berikutnya atau dengan tutorial, jangan bersihkan sumber daya yang dibuat dalam mulai cepat ini. Jika Anda tidak berencana untuk melanjutkan, Anda dapat menggunakan portal Azure atau Azure CLI untuk menghapus grup sumber daya dan semua sumber dayanya.

Untuk menghapus grup sumber daya dan semua sumber dayanya dari portal Azure, cukup buka grup sumber daya dan pilih Hapus grup sumber daya dan bagian atas.

Untuk menghapus grup sumber daya yang disebarkan menggunakan Azure CLI:

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

Anda juga dapat menghapus grup sumber daya dan sumber daya individual menggunakan salah satu opsi berikut:

  • Portal Azure
  • PowerShell
  • REST API
  • SDK platform yang didukung diterbitkan untuk Azure Resource Manager atau IoT Hub Device Provisioning Service

Langkah berikutnya

Dalam mulai cepat ini, Anda menyebarkan hub IoT dan instans Device Provisioning Service, dan menautkan dua sumber daya. Untuk mempelajari cara menggunakan penyetelan ini untuk provisikan perangkat, lanjutkan ke mulai cepat untuk membuat perangkat.