Azure PowerShell を使用してルートとエンドポイントを作成および削除する
この記事では、Azure IoT Hub のハブでルートとエンドポイントを作成する方法と、ルートとエンドポイントを削除する方法について説明します。 Azure PowerShell を使用して、Azure Event Hubs、Azure Service Bus キューとトピック、Azure Storage に対してルートとエンドポイントを作成する方法について説明します。
IoT Hub のルーティングのしくみについては、「IoT Hub メッセージ ルーティングを使用して device-to-cloud メッセージを別のエンドポイントに送信する」を参照してください。 ストレージにメッセージを送信するルートを設定し、シミュレートされたデバイスでテストする手順については、「チュートリアル: IoT Hub メッセージ ルーティングを使用してデバイス データを Azure Storage に送信する」を参照してください。
前提条件
この記事で説明する手順では、次のリソースを使用します。
- Azure PowerShell
- IoT ハブ
- Azure のエンドポイント サービス
Azure PowerShell
この記事では、Azure PowerShell を使って IoT Hub や他の Azure サービスを操作します。 Azure PowerShell をローカルで使うには、コンピューターに Azure PowerShell モジュールをインストールします。 または、Azure PowerShell を Web ブラウザーで使うには、Azure Cloud Shell を有効にします。
IoT ハブ
IoT ハブ ルートを作成するには、Azure IoT Hub を使用して作成した IoT ハブが必要です。 デバイス メッセージとイベント ログは、IoT ハブで生成されます。
IoT ハブ ルートを作成するときに使用する次のハブ リソースがあることを確認してください。
- Azure IoT Hub。 IoT ハブがない場合は、New-AzIoTHub コマンドレットを使用して作成するか、「IoT ハブを作成する」の手順に従うことができます。
エンドポイント サービス
IoT ハブ ルートを作成するには、ルートへのエンドポイントとして使用する他の Azure サービスが少なくとも 1 つ必要です。 エンドポイントは、デバイス メッセージとイベント ログを受信します。 IoT ハブ ルートと接続するエンドポイントに使用する Azure サービス (Event Hubs、Service Bus キューまたはトピック、Azure Storage) を選択できます。
IoT ハブ ルートでエンドポイントを作成するときに使用する次のリソースの "いずれか" があることを確認してください。
Event Hubs リソース (とコンテナー)。 新しい Event Hubs リソースを作成する必要がある場合は、「クイック スタート: Azure PowerShell を使用したイベント ハブの作成」を参照してください。
Service Bus キュー リソース。 新しい Service Bus キューを作成する必要がある場合は、「Azure PowerShell を使用して Service Bus 名前空間とキューを作成する」を参照してください。
Service Bus トピック リソース。 新しい Service Bus トピックを作成する必要がある場合は、「New-AzServiceBusTopic」のリファレンスと Azure Service Bus メッセージングのドキュメントを参照してください。
Azure Storage リソース。 Azure で新しいストレージ アカウントを作成する必要がある場合は、「ストレージ アカウントを作成する」を参照してください。
リソースとエンドポイントを作成する
IoT Hub では、メッセージを送信する、またはイベントをキャプチャするルートを作成できます。 各ルートには、データ ソースとエンドポイントがあります。 データ ソースは、メッセージまたはイベント ログが生成される場所です。 エンドポイントは、メッセージまたはイベント ログが最終的に到達する場所です。 IoT ハブで新しいルートを作成するときに、データ ソースとエンドポイントの場所を選択します。 次に、ルーティング クエリを使って、エンドポイントに移動する前にメッセージまたはイベントをフィルター処理します。
IoT ハブ ルートのエンドポイントとして、イベント ハブ、Service Bus キューまたはトピック、ストレージ アカウントを使用できます。 エンドポイントの作成に使用するサービスは、事前に Azure アカウントに存在する必要があります。
Note
ローカル バージョンの Azure PowerShell を使用する場合は、開始する前に Azure PowerShell にサインインします。
次の手順のコマンドでは、これらの参照を使用します。
イベント ハブの作成
認可規則がある新しい Event Hubs リソースを作成するには:
新しい Event Hubs 名前空間を作成します。
NamespaceName
には、一意の値を使用します。New-AzEventHubNamespace -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Location MyLocation
新しい Event Hubs エンティティを作成します。
Name
には、一意の値を使用します。NamespaceName
には、前の手順で作成した名前空間の名前を使用します。New-AzEventHub -Name MyEventHub -NamespaceName MyNamespace -ResourceGroupName MyResourceGroup
新しい認可規則を作成します。
Name
には、EventHubName
のエンティティの名前を使用します。 認可規則の名前には、一意の値を使用します。New-AzEventHubAuthorizationRule -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule -Rights @('Manage', 'Send', 'Listen')
アクセスの詳細については、「Azure Event Hubs へのアクセスを承認する」を参照してください。
Event Hubs のエンドポイントを作成する
イベント ハブからプライマリ接続文字列を取得します。 後で使うために接続文字列をコピーします。
Get-AzEventHubKey -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule
Event Hubs への新しい IoT Hub エンドポイントを作成します。 前の手順のプライマリ接続文字列を使います。
EndpointType
の値はEventHub
である必要があります。 その他のすべてのパラメーターには、実際のシナリオの値を使用します。Add-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -EndpointType EventHub -EndpointResourceGroup MyResourceGroup -EndpointSubscriptionId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ConnectionString "Endpoint=<my connection string>"
すべてのルーティング エンドポイント オプションを表示する方法については、「Add-AzIotHubRoutingEndpoint」を参照してください。
IoT Hub ルートを作成する
IoT ハブに新しいエンドポイントができたら、新しいルートを作成できます。
IoT Hub の既定のフォールバック ルートは、DeviceMessages
からメッセージを収集します。 カスタム ルート用には別のオプション (DeviceConnectionStateEvents
など) を選択します。 ソース オプションの詳細については、「Add-AzIotHubRoute」を参照してください。 Enabled
パラメーターはスイッチであるため、パラメーターで値を使用する必要はありません。
Add-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -Source DeviceLifecycleEvents -EndpointName MyEndpoint -Enabled
PowerShell には、次の例のような確認が表示されます。
RouteName : MyIotHub
DataSource : DeviceLifecycleEvents
EndpointNames : MyEndpoint
Condition : true
IsEnabled : True
IoT Hub ルートを更新する
既存のルートを変更するには、次のコマンドを使います。 たとえば、コマンドを使用してルートの名前を変更してみてください。
Set-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute
ルートの変更を確認するには、Get-AzIotHubRoute
コマンドを使います。
Get-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub
エンドポイントの削除
エンドポイントを削除するには:
Remove-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -PassThru
IoT Hub ルートを削除する
IoT Hub ルートを削除するには:
Remove-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -PassThru
ヒント
ルートを削除しても、Azure アカウントのエンドポイントは削除されません。 ルートの削除とは別にエンドポイントを削除する必要があります。
次の手順
このハウツー記事では、Event Hubs、Service Bus キューとトピック、Azure Storage に対してルートとエンドポイントを作成する方法について説明しました。
メッセージ ルーティングの詳細については、「チュートリアル: IoT Hub メッセージ ルーティングを使用してデバイス データを Azure Storage に送信する」を参照してください。 このチュートリアルでは、ストレージ ルートを作成し、IoT ハブでデバイスを使ってテストします。