高可用性、一貫性のあるパフォーマンス、動的スケールを目的として設計された Azure イベント ルーティング サービス。
Hi 出利葉 仁
接続/切断イベントに基づいてメールアラートを送信するために Event Grid を使用されているようですね。
ロジックアプリで使用されているペイロードのイベントタイプを、以下のステップに従って変更するだけで対応可能です。
"eventType": "Microsoft.Devices.DeviceDisconnected",
[{
"id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
"topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceConnected",
"eventTime": "2018-06-02T19:17:44.4383997Z",
"data": {
"deviceConnectionStateEventInfo": {
"sequenceNumber":
"000000000000000001D4132452F67CE200000002000000000000000000000001"
},
"hubName": "<hub name>",
"deviceId": "LogicAppTestDevice",
"moduleId" : "DeviceModuleID"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
IoT Hub において「デバイス切断イベントはどの単位で、いつ発生するのか?」という質問に対する回答は以下の通りです:
- イベントの単位
切断イベントは「デバイス単位」または「モジュール単位」:
1つの IoT Edge デバイスは、デバイス自体と各モジュール(例:$edgeHub、$edgeAgent、カスタムモジュール)に対して複数の切断イベントを生成する可能性があります。 各モジュールは IoT Hub との独立した接続を維持しており、それぞれが切断イベントを個別にトリガーできます。
- イベントの発生タイミング
デバイスまたはモジュールが IoT Hub との接続を失ったときに、DeviceDisconnected イベントがトリガーされます。
このイベントは MQTT、AMQP、またはそれらの WebSocket バリアントを使用しているデバイスに対してのみ発生します。HTTPS を使用しているデバイスでは発生しません。
IoT Hub は、デバイス/モジュールごとに最大で60秒に1回の頻度でイベントを発行します。再接続と切断がその間に複数回発生した場合、一部のイベントはスロットルされるか、ドロップされる可能性があります。
切断イベントは、テレメトリメッセージやクラウドからの受信など、メッセージ交換を伴う正常な接続の後にのみ発行されます。
接続/切断イベントに関する回答は完了しましたので、Event Hub チームに引き継ぎました。