Udostępnij przez


Szybki start: konfigurowanie usługi IoT Hub Device Provisioning Service (DPS) przy użyciu szablonu usługi ARM

Szablon Azure Resource Manager (ARM template) umożliwia programatyczne konfigurowanie zasobów chmury platformy Azure, które są niezbędne do wdrożenia twoich urządzeń. W tych krokach pokazano, jak utworzyć centrum IoT Hub i nową usługę IoT Hub Device Provisioning przy użyciu szablonu usługi ARM. Centrum IoT jest również połączone z zasobem usługi DPS przy użyciu szablonu. To łączenie umożliwia zasobowi usługi DPS przypisywanie urządzeń do centrum na podstawie skonfigurowanych zasad alokacji.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Ten szybki start używa portalu Azure i Azure CLI do wykonania kroków programistycznych niezbędnych do utworzenia grupy zasobów i wdrożenia szablonu. Można jednak również użyć programu PowerShell, platformy .NET, języka Ruby lub innych języków programowania, aby wykonać te kroki i wdrożyć szablon.

Jeśli środowisko spełnia wymagania wstępne i znasz już szablony usługi ARM, wybranie przycisku Wdróż na platformie Azure spowoduje otwarcie szablonu wdrożenia w witrynie Azure Portal.

Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Przegląd szablonu

Szablon używany w tym przewodniku szybkiego startu pochodzi z Azure Quickstart Templates.

Uwaga

Obecnie nie ma obsługi szablonów usługi ARM do tworzenia rejestracji przy użyciu nowych zasobów usługi DPS. Jest to typowe i zrozumiałe żądanie, które jest brane pod uwagę do implementacji.

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

Dwa zasoby platformy Azure są zdefiniowane w poprzednim szablonie:

Wdrażanie szablonu

Wdrażanie przy użyciu portalu

  1. Wybierz poniższą ilustrację, aby zalogować się na platformie Azure i otworzyć szablon wdrożenia. Szablon tworzy nowe zasoby: IoT Hub i DPS. Nowe centrum IoT jest połączone z zasobem usługi DPS.

    Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

  2. Wybierz lub wprowadź następujące wartości, a następnie wybierz pozycję Przejrzyj i utwórz.

    Zrzut ekranu przedstawiający parametry wdrażania szablonu usługi ARM w witrynie Azure Portal.

    Jeśli nie określono inaczej dla następujących pól, użyj wartości domyślnej, aby utworzyć zasób usługi IoT Hub i DPS.

    Pole opis
    Subskrypcja Wybierz subskrypcję platformy Azure.
    Grupa zasobów: Wybierz pozycję Utwórz nową, a następnie wprowadź unikatową nazwę grupy zasobów, a następnie wybierz przycisk OK.
    Region Wybierz region dla swoich zasobów. Na przykład Wschodnie stany USA. W celu zapewnienia odporności i niezawodności zalecamy wdrożenie w jednym z regionów obsługujących Strefy dostępności.
    Nazwa centrum IoT Wprowadź nazwę centrum IoT, które musi być globalnie unikatowe w przestrzeni nazw .azure-devices.net . Podczas walidacji wdrożenia potrzebna jest nazwa centrum w następnej sekcji.
    Nazwa usługi aprowizacji Wprowadź nazwę nowego zasobu usługi Device Provisioning Service (DPS). Nazwa musi być globalnie unikatowa w przestrzeni nazw .azure-devices-provisioning.net . Będziesz potrzebować nazwy DPS w następnej sekcji, gdy będziesz walidować wdrożenie.
  3. Na następnym ekranie przeczytaj warunki. Jeśli zgadzasz się na wszystkie warunki, wybierz pozycję Utwórz.

    Ukończenie wdrożenia potrwa kilka minut.

    Oprócz witryny Azure Portal możesz również użyć programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure i interfejsu API REST. Aby poznać inne metody wdrażania, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM i programu Azure PowerShell.

Wdrażanie przy użyciu interfejsu wiersza polecenia platformy Azure

Korzystanie z interfejsu wiersza polecenia platformy Azure wymaga wersji 2.6 lub nowszej. Jeśli używasz interfejsu wiersza polecenia platformy Azure lokalnie, sprawdź swoją wersję, uruchamiając następujące polecenie: az --version

Zaloguj się do konta platformy Azure i wybierz subskrypcję.

  1. Jeśli używasz interfejsu wiersza polecenia platformy Azure lokalnie zamiast uruchamiać go w portalu, musisz się zalogować. Aby zalogować się w wierszu polecenia, uruchom polecenie az login :

    az login
    

    Postępuj zgodnie z instrukcjami w celu uwierzytelnienia przy użyciu kodu i zaloguj się na konto platformy Azure za pośrednictwem przeglądarki internetowej.

  2. Jeśli masz wiele subskrypcji platformy Azure, zalogowanie się do platformy Azure zapewnia dostęp do wszystkich kont platformy Azure skojarzonych z poświadczeniami użytkownika. Użyj następującego polecenia az account list , aby wyświetlić listę kont platformy Azure dostępnych do użycia:

    az account list -o table
    

    Użyj następującego polecenia az account set , aby wybrać subskrypcję, której chcesz użyć do uruchomienia poleceń w celu utworzenia zasobów centrum IoT i usługi DPS. Można użyć nazwy subskrypcji lub identyfikatora z danych wyjściowych poprzedniego polecenia:

    az account set --subscription {your subscription name or id}
    
  3. Skopiuj i wklej następujące polecenia w konsoli. Następnie wykonaj polecenia, wybierając Enter.

    Napiwek

    Polecenia wyświetlają monit o podanie lokalizacji grupy zasobów. Listę dostępnych lokalizacji można wyświetlić, uruchamiając najpierw następujące polecenie:

    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. Polecenia proszą o podanie następujących informacji. Podaj każdą wartość i wybierz Enter.

    Parametr opis
    Nazwa projektu Wartość tego parametru służy do tworzenia grupy zasobów do przechowywania wszystkich zasobów. Ciąg rg jest dodawany na końcu wartości nazwy grupy zasobów.
    lokalizacja Ta wartość to region, w którym są tworzone wszystkie zasoby.
    iotHubName Wprowadź nazwę centrum IoT, które musi być globalnie unikatowe w przestrzeni nazw .azure-devices.net . Podczas walidacji wdrożenia potrzebna jest nazwa centrum w następnej sekcji.
    provisioningServiceName Wprowadź nazwę nowego zasobu usługi Device Provisioning Service (DPS). Nazwa musi być globalnie unikatowa w przestrzeni nazw .azure-devices-provisioning.net . Będziesz potrzebować nazwy DPS w następnej sekcji, gdy będziesz walidować wdrożenie.

    Interfejs wiersza polecenia platformy Azure służy do wdrażania szablonu. Oprócz interfejsu wiersza polecenia platformy Azure można również użyć programu Azure PowerShell, witryny Azure Portal i interfejsu API REST. Aby dowiedzieć się więcej o innych metodach wdrażania, zobacz Wdrażanie szablonów.

Przeglądanie wdrożonych zasobów

  1. Aby zweryfikować wdrożenie, uruchom następujące polecenie az resource list , aby wyświetlić listę zasobów i wyszukać nową usługę aprowizacji i centrum IoT w danych wyjściowych:

     az resource list -g "${projectName}rg"
    
  2. Aby sprawdzić, czy centrum jest już połączone z zasobem usługi DPS, uruchom następujące polecenie az iot dps show .

     az iot dps show --name <Your provisioningServiceName>
    

    Zwróć uwagę na węzły połączone z członkiem iotHubs.

Czyszczenie zasobów

Inne szybkie starty w tej kolekcji bazują na tym szybkim starcie. Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start lub samouczkami, nie usuwaj zasobów utworzonych w tym przewodniku Szybki start. Jeśli nie planujesz kontynuować, możesz użyć witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure, aby usunąć grupę zasobów i wszystkie jej zasoby.

Aby usunąć grupę zasobów i wszystkie jej zasoby z witryny Azure Portal, wystarczy otworzyć grupę zasobów i wybrać pozycję Usuń grupę zasobów u góry.

Aby usunąć grupę zasobów wdrożona przy użyciu interfejsu wiersza polecenia platformy Azure:

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

Możesz również usunąć grupy zasobów i poszczególne zasoby przy użyciu dowolnej z następujących opcji:

  • Azure Portal
  • PowerShell
  • Interfejsy API REST
  • Obsługiwane zestawy SDK platformy opublikowane dla usługi Azure Resource Manager lub IoT Hub Device Provisioning Service

Następne kroki

W tym Szybkim starcie wdrożono koncentrator IoT oraz wystąpienie usługi Device Provisioning Service, a także połączono te dwa zasoby. Aby dowiedzieć się, jak za pomocą tej konfiguracji aprowizować urządzenie, przejdź do przewodnika Szybki start dotyczącego tworzenia urządzenia.