クイックスタート: Bicep を使用して IoT Hub Device Provisioning Service (DPS) を設定する
Bicep ファイルを使うと、デバイスのプロビジョニングで必要になる Azure のクラウド リソースをプログラミングを使って設定することができます。 これらの手順では、Bicep ファイルを使用して、IoT ハブと新しい IoT Hub Device Provisioning Service インスタンスを作成する方法を示します。 また、この IoT ハブは、Bicep ファイルを使用して DPS リソースにリンクされます。 このリンクにより、DPS リソースは、構成されている割り当てポリシーに基づいてデバイスをハブに割り当てることができます。
Bicep は、宣言型の構文を使用して Azure リソースをデプロイするドメイン固有言語 (DSL) です。 簡潔な構文、信頼性の高いタイプ セーフ、およびコードの再利用のサポートが提供されます。 Bicep により、Azure のコード ソリューションとしてのインフラストラクチャに最適な作成エクスペリエンスが実現します。
このクイック スタートでは、リソース グループの作成と Bicep ファイルのデプロイに必要なプログラミング手順を実行するために Azure PowerShell と Azure CLI を使用していますが、.NET、Ruby などのプログラミング言語を使用してこれらの手順を実行し、Bicep ファイルを簡単にデプロイできます。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
- Azure PowerShell をローカルで使用する場合は、次のようにします。
- Az PowerShell モジュールの最新バージョンをインストールします。
- Connect-AzAccount コマンドレットを使用して、Azure アカウントに接続します。
- Azure Cloud Shell を使用する場合は、次のようにします。
- 詳細については、Azure Cloud Shell の概要に関するページを参照してください。
Bicep ファイルを確認する
このクイックスタートで使用される Bicep ファイルは、Azure クイックスタート テンプレートからのものです。
Note
現在、新しい DPS リソースで加入契約を作成するための Bicep ファイルのサポートはありません。 その機能を希望する声が多く寄せられていることから現在、実装を検討中です。
@description('Specify the name of the Iot hub.')
param iotHubName string
@description('Specify the name of the provisioning service.')
param provisioningServiceName string
@description('Specify the location of the resources.')
param location string = resourceGroup().location
@description('The SKU to use for the IoT Hub.')
param skuName string = 'S1'
@description('The number of IoT Hub units.')
param skuUnits int = 1
var iotHubKey = 'iothubowner'
resource iotHub 'Microsoft.Devices/IotHubs@2021-07-02' = {
name: iotHubName
location: location
sku: {
name: skuName
capacity: skuUnits
}
properties: {}
}
resource provisioningService 'Microsoft.Devices/provisioningServices@2022-02-05' = {
name: provisioningServiceName
location: location
sku: {
name: skuName
capacity: skuUnits
}
properties: {
iotHubs: [
{
connectionString: 'HostName=${iotHub.properties.hostName};SharedAccessKeyName=${iotHubKey};SharedAccessKey=${iotHub.listkeys().value[0].primaryKey}'
location: location
}
]
}
}
上記の Bicep ファイルには、2 つの Azure リソースが定義されています。
- Microsoft.Devices/iothubs: 新しい Azure IoT ハブを作成します。
- Microsoft.Devices/provisioningservices: 新しい IoT ハブが既にリンクされている新しい Azure IoT Hub デバイス プロビジョニング サービスを作成します。
Bicep ファイルのコピーを main.bicep としてローカルに保存します。
Bicep ファイルをデプロイする
Azure アカウントにサインインしてサブスクリプションを選択します。
コマンド プロンプトで Azure にサインインします。
az login
指示に従って、コードを使用して認証し、Web ブラウザーで Azure アカウントにサインインします。
複数の Azure サブスクリプションがある場合は、Azure にサインインすると、資格情報に関連付けられているすべてのAzure アカウントへのアクセスが許可されます。
az account list -o table
次のコマンドを使用して、IoT ハブと DPS リソースを作成するコマンドの実行に使用するサブスクリプションを選択します。 前のコマンドの出力から、サブスクリプション名または ID のいずれかを使用できます。
az account set --subscription {your subscription name or id}
Bicep ファイルをデプロイするには、次のコマンドを使用します。
ヒント
このコマンドでは、リソース グループの場所の入力を求められます。 最初に次のコマンドを実行すると、使用可能な場所のリストを表示できます。
az account list-locations -o table
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters iotHubName={IoT-Hub-name} provisioningServiceName={DPS-name}
{IoT-Hub-name} をグローバルに一意な IoT Hub 名に置き換え、{DPS-name} をグローバルに一意な Device Provisioning Service (DPS) リソース名に置き換えます。
リソースが作成されるまでしばらくかかります。
デプロイされているリソースを確認する
デプロイを確認するには、次に示すコマンドを実行し、その出力で新しいプロビジョニング サービスと IoT ハブを探します:
az resource list -g exampleRg
ハブが DPS リソースに既にリンクされていることを確認するには、次のコマンドを実行します。
az iot dps show --name <Your provisioningServiceName>
リソースをクリーンアップする
このコレクションの他のクイックスタートは、このクイックスタートに基づいています。 引き続きクイックスタートまたはチュートリアルの作業を行う場合は、このクイックスタートで作成したリソースをクリーンアップしないでください。 続行する予定がない場合は、Azure PowerShell または Azure CLI を使用して、リソース グループとそのすべてのリソースを削除してもかまいません。
Azure portal からリソース グループとそのすべてのリソースを削除するには、そのリソース グループを開き、上部の [リソース グループの削除] を選択します。
デプロイされたリソース グループを削除するには:
az group delete --name exampleRG
このほか、Azure portal、PowerShell、または REST API や、サポートされているプラットフォーム SDK を使って、リソース グループと個々のリソースを削除することもできます。
次のステップ
このクイックスタートでは、IoT ハブと Device Provisioning Service インスタンスをデプロイし、この 2 つのリソースをリンクしました。 この設定を使用してデバイスをプロビジョニングする方法については、デバイスの作成に関するクイックスタートに進んでください。