Azure Resource Manager テンプレートを使用した IoT ハブの作成 (PowerShell)Create an IoT hub using Azure Resource Manager template (PowerShell)

Azure Resource Manager テンプレートを使って IoT ハブとコンシューマー グループを作成する方法を学習します。Learn how to use an Azure Resource Manager template to create an IoT Hub and a consumer group. Resource Manager テンプレートとは、ソリューションに対してデプロイが必要なリソースを定義した JSON ファイルのことをいいます。Resource Manager templates are JSON files that define the resources you need to deploy for your solution. Resource Manager の作成の詳細については、Azure Resource Manager のドキュメントに関する記事をご覧ください。For more information about developing Resource Manager templates, see Azure Resource Manager documentation.

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

IoT Hub の作成Create an IoT hub

このクイック スタートで使われる Resource Manager テンプレートは、Azure クイック スタートのテンプレートに関する記事からのものです。The Resource Manager template used in this quickstart is from Azure Quickstart templates. テンプレートのコピーを次に示します。Here is a copy of the template:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "iotHubName": {
      "type": "string",
      "minLength": 3,
      "metadata": {
        "description": "Specifies the name of the IoT Hub."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
              "description": "Location for all resources."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "Specifies the IotHub SKU."
      }
    },
    "capacityUnits": {
      "type": "int",
      "minValue": 1,
      "maxValue": 1,
      "defaultValue": 1,
      "metadata": {
        "description": "Specifies the number of provisioned IoT Hub units. Restricted to 1 unit for the F1 SKU. Can be set up to maximum number allowed for subscription."
      }
    }
  },
  "variables": {
    "consumerGroupName": "[concat(parameters('iotHubName'), '/events/cg1')]"
  },
  "resources": [
    {
      "type": "Microsoft.Devices/IotHubs",
      "apiVersion": "2018-04-01",
      "name": "[parameters('iotHubName')]",
      "location": "[parameters('location')]",
      "properties": {
        "eventHubEndpoints": {
          "events": {
            "retentionTimeInDays": 1,
            "partitionCount": 2
          }
        },
        "cloudToDevice": {
          "defaultTtlAsIso8601": "PT1H",
          "maxDeliveryCount": 10,
          "feedback": {
            "ttlAsIso8601": "PT1H",
            "lockDurationAsIso8601": "PT60S",
            "maxDeliveryCount": 10
          }
        },
        "messagingEndpoints": {
          "fileNotifications": {
            "ttlAsIso8601": "PT1H",
            "lockDurationAsIso8601": "PT1M",
            "maxDeliveryCount": 10
          }
        }
      },
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('capacityUnits')]"
      }
    },
    {
      "type": "Microsoft.Devices/iotHubs/eventhubEndpoints/ConsumerGroups",
      "apiVersion": "2018-04-01",
      "name": "[variables('consumerGroupName')]",
      "dependsOn": [
        "[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
      ]
    }
  ]
}

テンプレートでは、3 つのエンドポイント (eventhub、cloud-to-device、messaging) を持つ Azure Iot ハブとコンシューマー グループが作成されます。The template creates an Azure Iot hub with three endpoints (eventhub, cloud-to-device, and messaging), and a consumer group. テンプレートの他のサンプルについては、「Azure クイック スタート テンプレート」をご覧ください。For more template samples, see Azure Quickstart templates. Iot Hub テンプレートのスキーマについては、こちらをご覧ください。The Iot Hub template schema can be found here.

テンプレートをデプロイするには複数の方法があります。There are several methods for deploying a template. このチュートリアルでは、Azure PowerShell を使います。You use Azure PowerShell in this tutorial.

PowerShell スクリプトを実行するには、 [使ってみる] を選択して、Azure Cloud シェルを開きます。To run the PowerShell script, Select Try it to open the Azure Cloud shell. スクリプトを貼り付けるには、シェルを右クリックし、[貼り付け] を選択します。To paste the script, right-click the shell, and then select Paste:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"
$iotHubName = Read-Host -Prompt "Enter the IoT Hub name"

New-AzResourceGroup -Name $resourceGroupName -Location "$location"
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-iothub-with-consumergroup-create/azuredeploy.json" `
    -iotHubName $iotHubName

PowerShell スクリプトを見るとわかるように、使うテンプレートは Azure クイック スタート テンプレートからのものです。As you can see from the PowerShell script, the template used is from Azure Quickstart templates. 独自のものを使うには、最初に、テンプレート ファイルを Cloud Shell にアップロードしてから、-TemplateFile スイッチを使ってファイル名を指定する必要があります。To use your own, you need to first upload the template file to the Cloud shell, and then use the -TemplateFile switch to specify the file name. 例については、「テンプレートのデプロイ」をご覧ください。For an example, see Deploy the template.

次の手順Next steps

ここでは、Azure Resource Manager テンプレートを使って IoT ハブをデプロイしました。次の手順に進んでください。Now you have deployed an IoT hub by using an Azure Resource Manager template, you may want to explore further:

IoT Hub の開発に関する詳細については、以下の記事をご覧ください。To learn more about developing for IoT Hub, see the following articles:

IoT Hub の機能を詳しく調べるには、次のリンクを使用してください。To further explore the capabilities of IoT Hub, see: