Dockerで実行されるAzure IoTエッジゲートウェイを、パススルーだけのカスタムモジュールで作成しました(メッセージを受け取り、それを上流に送ります)。下流デバイスを備えたIoTエッジゲートウェイ
単純な.netコンソールアプリケーションを作成してゲートウェイにメッセージを送信し、評価できるようにしました。
これは私がコンソールアプリケーションに持っているコードです。
DeviceClient client =
DeviceClient.CreateFromConnectionString("HostName=<my iot hub in azure>.azure-devices.net;DeviceId=<the name of the device>;SharedAccessKey=<my access key>;GatewayHostName=<the name of the IoT Edge Device>");
Message message = new Message();
message.Properties.Add("testproperty", "test");
client.SendEventAsync(message).Wait();
SendEventAsyncメソッドが呼び出されたときに、それが先にハングするように見えます。私は5分待って、アプリが待っていた。接続文字列からGatewayHostNameを削除するとすぐに実行され、メッセージはAzureのIoTハブに直接送信されます。
IoTエッジゲートウェイにメッセージを送信しないのはなぜですか?
は、IoT Edgeデバイスで動作するedgeAgentとedgeHubですか? 'docker ps'で確認するだけです – silent
https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gatewayに記載されている手順を見て、それに従っていますか? –
ダウンストリームデバイスがIoT Edgeゲートウェイへの接続用に正しく構成されていないように見えます。詳しくはhttps://docs.microsoft.com/en-us/azure/iot-edge/how-to-createを参照してください。 -transparent-gateway#configure-a-downstream-device –