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 に送信する」を参照してください。
Note
現在、PowerShell では、エンドポイントを作成するためのマネージド ID 認証の種類はサポートされていません。 シナリオにおいて SAS 認証を使用できない場合は、他のいずれかの管理ツールを使用してエンドポイントを作成してください。
また、現在 PowerShell では、Cosmos DB エンドポイントの作成はサポートされていません。
前提条件
メッセージをルーティングするエンドポイントの種類に基づいて、この記事の前提条件を確認してください。
Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料の Azure アカウントを作成してください。
IoT ハブ ハブがまだない場合は、手順に従って IoT ハブを作成できます。
Azure PowerShell。 Azure PowerShell をローカルで使うには、コンピューターに Azure PowerShell モジュールをインストールします。 または、Azure PowerShell を Web ブラウザーで使うには、Azure Cloud Shell を有効にします。
Event Hubs リソース (とコンテナー)。 新しい Event Hubs リソースを作成する必要がある場合は、「クイック スタート: イベント ハブの作成」を参照してください。
(推奨) Event Hubs 名前空間に対するロールベースのアクセス制御アクセス許可を持つマネージド ID。 詳しくは、「Microsoft Entra ID を使用して Event Hubs リソースにアクセスするためのマネージド ID を認証する」を参照してください。
エンドポイントを作成する
IoT Hub では、メッセージを送信する、またはイベントをキャプチャするルートを作成できます。 各ルートには、データ ソースとエンドポイントがあります。 データ ソースは、メッセージまたはイベント ログが生成される場所です。 エンドポイントは、メッセージまたはイベント ログが最終的に到達する場所です。 IoT ハブで新しいルートを作成するときに、データ ソースとエンドポイントの場所を選択します。 次に、ルーティング クエリを使って、エンドポイントに移動する前にメッセージまたはイベントをフィルター処理します。
エンドポイントの作成に使用するサービスは、事前に Azure アカウントに存在する必要があります。
Note
ローカル バージョンの Azure PowerShell を使用する場合は、開始する前に Azure PowerShell にサインインします。
次の手順のコマンドでは、これらの参照を使用します。
イベント ハブからプライマリ接続文字列を取得します。 後で使うために接続文字列をコピーします。
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 ハブでデバイスを使ってテストします。