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

Szablon usługi Azure Resource Manager (arm) umożliwia programowe konfigurowanie zasobów w chmurze platformy Azure niezbędnych do aprowizowania 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. Usługa Iot Hub jest również połączona 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 przewodnik Szybki start używa witryny Azure Portal i interfejsu wiersza polecenia platformy Azure do wykonywania 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.

Button to deploy the Resource Manager template to Azure.

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

Wymagania wstępne

Przegląd szablonu

Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure.

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 nowy zasób usługi Iot Hub i DPS. Nowe centrum IoT jest połączone z zasobem usługi DPS.

    Button to deploy the Resource Manager template to Azure.

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

    ARM template deployment parameters on the 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 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 Hub, która musi być globalnie unikatowa 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 . Podczas walidacji wdrożenia potrzebna jest nazwa usługi DPS w następnej sekcji.
  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 dowiedzieć się więcej o innych metodach wdrażania, zobacz Wdrażanie szablonów.

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 logowania:

    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, aby wyświetlić listę kont platformy Azure dostępnych do użycia:

    az account list -o table
    

    Użyj następującego polecenia, 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 wierszu polecenia interfejsu wiersza polecenia. Następnie wykonaj polecenia, wybierając klawisz Enter.

    Napiwek

    Polecenie wyświetla monit o lokalizację grupy zasobów. Listę dostępnych lokalizacji można wyświetlić, uruchamiając najpierw 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 wyświetlają następujące informacje. Podaj każdą wartość i wybierz klawisz 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.
    location Ta wartość to region, w którym są tworzone wszystkie zasoby.
    iotHubName Wprowadź nazwę centrum IoT Hub, która musi być globalnie unikatowa 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 . Podczas walidacji wdrożenia potrzebna jest nazwa usługi DPS w następnej sekcji.

    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, aby wyświetlić listę zasobów i wyszukać nową usługę aprowizacji i centrum IoT Hub 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 programu DPS extension show.

     az iot dps show --name <Your provisioningServiceName>
    

    Zwróć uwagę na koncentratory połączone z elementem iotHubs członkowskim.

Czyszczenie zasobów

Inne przewodniki Szybki start w tej kolekcji bazują na tym przewodniku. 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 i górną.

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:

  • Witryna 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 przewodniku Szybki start wdrożono centrum IoT i wystąpienie usługi Device Provisioning Service oraz 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.