device-to-cloud メッセージにメッセージ ルートとカスタム エンドポイントを使用するUse message routes and custom endpoints for device-to-cloud messages

注意

この記事で言及されている一部の機能 (cloud-to-device メッセージ、デバイス ツイン、デバイス管理など) は、IoT ハブの Standard レベルだけで使用することができます。Some of the features mentioned in this article, like cloud-to-device messaging, device twins, and device management, are only available in the standard tier of IoT hub. IoT Hub の Basic レベルおよび Standard レベルの詳細については、適切な IoT Hub レベルの選び方に関するページを参照してください。For more information about the basic and standard IoT Hub tiers, see How to choose the right IoT Hub tier.

IoT Hub のメッセージ ルーティングを使用すると、サービスに接続するエンドポイントに device-to-cloud メッセージをルーティングすることができます。IoT Hub Message Routing enables users to route device-to-cloud messages to service-facing endpoints. また、ルーティングでは、エンドポイントにルーティングする前にデータをフィルター処理するクエリ機能も提供されています。Routing also provides a querying capability to filter the data before routing it to the endpoints. 各ルーティング クエリには、次のプロパティがあります。Each routing query you configure has the following properties:

プロパティProperty 説明Description
NameName クエリを識別する一意の名前。The unique name that identifies the query.
ソースSource 処理するデータ ストリームの元データ。The origin of the data stream to be acted upon. たとえば、デバイス テレメトリです。For example, device telemetry.
ConditionCondition エンドポイントと一致するかどうかを確認するために、メッセージ アプリケーションのプロパティ、システムのプロパティ、メッセージ本文、デバイス ツインのタグ、デバイス ツインのプロパティに対して実行されるルーティング クエリのクエリ式。The query expression for the routing query that is run against the message application properties, system properties, message body, device twin tags, and device twin properties to determine if it is a match for the endpoint. クエリの作成方法について詳しくは、メッセージ ルーティング クエリの構文に関するページをご覧ください。For more information about constructing a query, see the see message routing query syntax
エンドポイントEndpoint クエリに一致するメッセージを IoT Hub が送信するエンドポイントの名前。The name of the endpoint where IoT Hub sends messages that match the query. お使いの IoT ハブと同じリージョンのエンドポイントを選択することをお勧めします。We recommend that you choose an endpoint in the same region as your IoT hub.

1 つのメッセージが複数のルーティング クエリの条件と一致することがあり、その場合、IoT Hub は一致する各クエリに関連するエンドポイントにメッセージを送信します。A single message may match the condition on multiple routing queries, in which case IoT Hub delivers the message to the endpoint associated with each matched query. IoT Hub はメッセージ配信の重複を自動的に排除するため、あるメッセージが複数のクエリに一致し、それらのルールの配信先が同じであった場合は、配信先には 1 度のみメッセージが書き込まれます。IoT Hub also automatically deduplicates message delivery, so if a message matches multiple queries that have the same destination, it is only written once to that destination.

エンドポイントとルーティングEndpoints and routing

IoT ハブは、既定の組み込みのエンドポイントを持ちます。An IoT hub has a default built-in endpoint. サブスクリプション内の他のサービスをハブにリンクして、メッセージをルーティングするカスタム エンドポイントを作成できます。You can create custom endpoints to route messages to by linking other services in your subscription to the hub. IoT Hub は現在、カスタム エンドポイントとして、Azure Storage コンテナー、Event Hubs、Service Bus キュー、Service Bus トピックをサポートします。IoT Hub currently supports Azure Storage containers, Event Hubs, Service Bus queues, and Service Bus topics as custom endpoints.

ルーティングとカスタム エンドポイントを使用すると、メッセージは、クエリに一致しない場合、組み込みのエンドポイントにのみ配信されます。When you use routing and custom endpoints, messages are only delivered to the built-in endpoint if they don't match any query. メッセージを組み込みのエンドポイントとカスタム エンドポイントに配信するには、組み込みイベント エンドポイントにメッセージを送信するルートを追加します。To deliver messages to the built-in endpoint as well as to a custom endpoint, add a route that sends messages to the built-in events endpoint.

注意

  • IoT Hub は、Azure Storage コンテナーに BLOB としてデータを書き込む処理のみをサポートしています。IoT Hub only supports writing data to Azure Storage containers as blobs.
  • セッションまたは重複データ検出が有効になっている Service Bus のキューおよびトピックは、カスタム エンドポイントとしてはサポートされていません。Service Bus queues and topics with Sessions or Duplicate Detection enabled are not supported as custom endpoints.

IoT Hub でのカスタム エンドポイントの作成の詳細については、IoT Hub エンドポイントに関するページを参照してください。For more information about creating custom endpoints in IoT Hub, see IoT Hub endpoints.

カスタム エンドポイントからの読み取りの詳細については、以下をご覧ください。For more information about reading from custom endpoints, see:

次の手順Next steps