デバイスからクラウドへのメッセージを組み込みのエンドポイントから読み取る
既定では、メッセージは Event Hubs と互換性のある、サービスに接続された組み込みエンドポイント (messages/events) にルーティングされます。 IoT Hub は、messages/events 組み込みエンドポイントをバックエンド サービスに公開して、Hub で受信した D2C メッセージを読み取ります。 エンドポイントは Event Hubs との互換性を持ち、Event Hubs がメッセージの読み取りでサポートするすべてのメカニズムを使用できるようになります。
メッセージ ルーティングを使用していて、フォールバック ルートが有効になっている場合、ルートに関するクエリに一致しないメッセージは、組み込みのエンドポイントに送信されます。 このフォールバック ルートを無効にすると、どのクエリにも一致しないメッセージは破棄されます。
このエンドポイントは、現在、ポート 5671 で AMQP プロトコルを使用して、またポート 443 で AMQP over WebSockets を使用して限定的に公開されています。 IoT Hub は、Event Hub と互換性のある組み込みのメッセージング エンドポイント messages/events を制御するための以下のプロパティを公開しています。
プロパティ | 説明 |
---|---|
パーティション数 | このプロパティは作成時に設定し、device-to-cloud イベントを取り込む場合のパーティション数を定義します。 |
リテンション期間 | このプロパティは、IoT Hub によってメッセージが保持される期間を日数で指定します。 既定は 1 日ですが、7 日間に増やすことができます。 |
IoT Hub を使用すると、組み込みのエンドポイントで最大 7 日間データを保持できます。 IoT ハブを作成するときに、保持期間を設定できます。 IoT Hub でのデータ保持期間は、お使いの IoT Hub のレベルとユニットの種類によって異なります。 サイズに関しては、組み込みのエンドポイントでは、最大メッセージ サイズのメッセージを少なくとも 24 時間のクォータまで保持できます。 たとえば、1 つの S1 ユニットの IoT ハブでは、1 つが 4 KB のメッセージを少なくとも 400,000 件保持するのに十分なストレージが提供されます。 デバイスで送信されるメッセージがそれより小さい場合、ストレージの消費量によっては、さらに長期間 (最大 7 日間) 保持される可能性があります。 少なくとも指定された保持期間はデータが保持されることが保証されます。 保持時間が経過すると、メッセージは期限切れになり、アクセスできなくなります。 保持期間は、IoT Hub のリソース プロバイダー REST API を使用してプログラムにより変更するか、Azure portal を使用して変更できます。
IoT Hub では、組み込みのエンドポイントでコンシューマー グループを管理ができます。 IoT ハブごとに最大 20 個のコンシューマー グループを持つことができます。
組み込みエンドポイントに接続する
一部の製品統合と Event Hubs SDK は IoT Hub を認識するので、IoT Hub サービスの接続文字列を使用して、組み込みのエンドポイントに接続できます。
IoT Hub を認識しない Event Hubs SDK や製品統合を使用している場合は、イベント ハブ互換エンドポイントとイベント ハブ互換名が必要です。 次のように、ポータルからこれらの値を取得できます。
Azure Portal にサインインし、IoT Hub に移動します。
リソース メニューの [ハブ設定] の下にある [組み込みのエンドポイント] を選びます。
[組み込みのエンドポイント] 作業ペインには、次の 3 つのセクションがあります。
- [イベント ハブの詳細] セクションには、[パーティション]、[イベントハブ互換名]、[保持日数]、[コンシューマー グループ] の各値が含まれます。
- [イベント ハブ互換エンドポイント] セクションには、[共有アクセス ポリシー] と [イベントハブ互換エンドポイント] の値が含まれます。
- [cloud-to-device メッセージング] セクションには、[既定の TTL]、[フィードバック維持時間]、[最大配信回数] の各値が含まれます。
作業ペインの [イベント ハブ互換エンドポイント] フィールドには、次の例のような Event Hubs の完全な接続文字列が含まれます。
Endpoint=sb://abcd1234namespace.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=keykeykeykeykeykey=;EntityPath=iothub-ehub-abcd-1234-123456
使用している SDK で他の値が必要な場合、値は次のようになります。
名前 | 値 |
---|---|
エンドポイント | sb://abcd1234namespace.servicebus.windows.net/ |
hostname | abcd1234namespace.servicebus.windows.net |
名前空間 | abcd1234namespace |
前のスクリーンショットで示されているように、[共有アクセス ポリシー] ドロップダウンから任意の共有アクセス ポリシーを選択できます。 指定したイベント ハブに接続するための ServiceConnect のアクセス許可を持つポリシーのみが表示されます。
SDK のサンプル
IoT Hub が公開している組み込みのイベント ハブ互換エンドポイントに接続する際に使用できる SDK は次のとおりです。
IoT Hub が公開している組み込みのイベント ハブ互換エンドポイントで使用できる製品統合は次のとおりです。
-
詳しくは、「Azure Functions の Azure IoT Hub バインド」をご覧ください。
-
詳しくは、「Stream Analytics に入力としてデータをストリーム配信する」をご覧ください。
-
詳しくは、「Azure Time Series Insights 環境に IoT Hub イベント ソースを追加する」をご覧ください。
-
詳しくは、「Azure Event Hubs のための Apache Kafka 開発者ガイド」をご覧ください。
次のステップ
IoT Hub のエンドポイントの詳細については、IoT Hub エンドポイントに関するページをご覧ください。
デバイスからクラウドへのメッセージをカスタム エンドポイントにルーティングする場合は、「device-to-cloud メッセージにメッセージ ルートとカスタム エンドポイントを使用する」を参照してください。