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.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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:
- Microsoft.Devices/IotHubs: tworzy nowe centrum Azure IoT Hub.
- Microsoft.Devices/provisioningServices: tworzy nową usługę Azure IoT Hub Device Provisioning z nowym centrum IoT Hub już połączonym z nim.
Wdrażanie szablonu
Wdrażanie przy użyciu portalu
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.
Wybierz lub wprowadź następujące wartości, a następnie wybierz pozycję Przejrzyj i utwórz.
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. 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ę.
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.
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}
Skopiuj i wklej następujące polecenia w wierszu polecenia interfejsu wiersza polecenia. Następnie wykonaj polecenia, wybierając 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
Polecenia wyświetlają następujące informacje. 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.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
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"
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.