问题标签 [azure-iot-edge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure-iot-hub - Azure IoT Edge 模块直接方法响应显示为 [object Object]
在特定模块上调用直接方法时,我只是[object Object]
在 azure 门户中收到结果,我不知道自己做错了什么。请注意,当我使用 azure IoT SDK for c#(不运行 azure iot 运行时)执行完全相同的操作时,我正确收到了 JSON 对象,并且它不只是显示为 [object Object]。
请注意,我正在 c# 中开发它,并且 docker 容器(用于 IoT 边缘运行时及其模块)正在将 Linux 作为操作系统运行。
我有以下已注册为直接方法的示例方法。
在 iot edge 运行时 Init() 函数中,我执行以下操作:
await ioTHubModuleClient.SetMethodHandlerAsync("Sample1", Sample1, null);
示例方法如下所示:
我可以通过在 Sample1 方法中设置断点来在调试模式下监控这个模块。我找不到我做错了什么?为什么从这个 Sample1 方法返回的响应只是显示为 [object Object],为什么{"status": "ok"}
我没有像不使用 Azure IoT Edge 运行时那样看到 JSON 对象?
azure-iot-edge - 无法调用 Azure IoT Edge 模块直接方法
我正在运行物联网边缘模块并已注册方法回调。
SetMethodHandlerAsync 和 SetMethodDefaultHandlerAsync
但两者都没有被称为...
从 Azure 门户发起直接消息呼叫
调用设备方法失败:{"message":"Device {\"Message\":\"{\\"errorCode\\":404103,\\"trackingId\\":\\"126e3eef616c409385e73128aef94b21-G:17-时间戳:08/23/2018 12:29:35\\",\\"message\\":\\"等待设备连接超时。\\",\\"info\\":{\\ "timeout\\":\\"00:00:10\\"},\\"timestampUtc\\":\\"2018-08-23T12:29:35.2214374Z\\"}\",\"ExceptionMessage \“:\“\“} 未注册”}
来自 VsCode
调用直接方法失败:未找到
我错过了设置任何必需的配置吗?
是否有命名约定或要指定的路径?
azure - 如何使用 azure python sdk 将下游设备连接到启用 azure edge 的网关
我正在尝试创建一个 3 层架构,其中包含一个 azure IoT Hub、Edge Enable GateWay 和一个下游设备。我已成功创建 IoT 中心和启用边缘的网关,并且能够使用自定义路由将数据发送到 Azure IoT 中心。但是,当我尝试使用连接字符串通过网关将我的下游设备连接到 IoT 中心时,我无法连接并将遥测数据发送到我的 IoT 中心。我得到的错误是: -
我一直在关注以下文档:- https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway-linux
azure-iot-edge - 是否支持在 Suse Linux Enterprise Server 12 上轻松安装运行时?
我们正在运行 SLES 12 服务器。我想在我们的机器上安装 Azure IoT Edge 运行时。到目前为止还没有简单的方法(rpm 包)。是否有计划增加对 OpenSuse 和 SLES 12 SP2 的支持?
c# - Azure IoT Edge ModuleClient 在另一个模块中调用直接方法
我正在使用 Azure IoT Edge 运行时在 Windows 主机操作系统上运行 Linux 容器。我有两个模块,ModuleA 和 ModuleB。ModuleA 有一个注册的直接方法,称为“MethodA”,ModuleB 有一个注册的直接方法,称为“MethodB”。
当我调用 MethodA 时,我希望该方法调用位于另一个模块中的 MethodB(但在同一 IoT Edge 运行时中运行)。
我正在使用 Azure IoT SDK for c# 和 ModuleA 的 Init() 函数我有:
在 ModuleB 的 Init() 函数中,我有:
MethodA(类似于代理方法):
我尝试从 MethodA 调用的 MethodB:
请注意,我可以从 azure 门户或使用 Azure SDK for C# -> ServiceClient 类单独调用这两种方法。
我的程序在线崩溃
在 MethodA 和 VS Code 调试器中,我得到了异常
抛出异常:System.Private.CoreLib.dll 中的“Microsoft.Azure.Devices.Client.Exceptions.IotHubCommunicationException”
当我检查我的 Message/StackTrace-print 的日志时,我得到:
发送请求时出错。在 Microsoft.Azure.Devices.Client.Transport.HttpClientHelper.d__21.MoveNext() --- 从先前引发异常的位置结束堆栈跟踪--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System. Microsoft.Azure.Devices.Client.Transport.HttpClientHelper.d__172.MoveNext() 处的 Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime .ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Microsoft.Azure.Devices.Client.ModuleClient.d__57。
我尝试使用带有 TCP/WebSocket_Only 的 Amqp 以及带有 TCP/WebSocket_Only 的 Mqtt 来初始化 ModuleClient。我还尝试在 Ubuntu 18.04 VM 上使用这些模块运行 IoT Edge 运行时,但没有成功。
即使我尝试使用 ioTHubModuleClient.InvokeMethodAsync() 调用位于同一模块中的方法,我也会得到相同的异常/堆栈跟踪...
我还尝试从 ModuleA 的 Init() 函数调用 MethodB 以尝试不在回调上下文中调用直接方法,但我确实得到了相同的异常。
github 上有一个未解决的问题,您可以在这里找到:https ://github.com/Azure/iotedge/issues/204
但是感觉它有点停滞了,我没有得到任何帮助。
据我了解,这应该是可能的,但我不知道我错过了什么?
docker - IoT-Edge edgeHub 模块退避状态
我正在尝试将一个模块部署到 iot-edge 设备中,因为我正在关注这些官方文档。
- 订阅 IoTHub 在其中创建了 Edge 设备 在我的本地计算机上安装了 IoTEdge 运行时(就像模拟设备一样)
- Docker for windows 已安装、启动并运行(直到这里一切正常,因为我检查了
Get-Service iotedge
命令的状态) - 设置设备模块并将其用作
mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0
图像
在 Microsoft Azure 门户上设置模块后,edgeHub 模块进入退避状态。我已经看到了这个问题IOT-Edge Hub 退避状态,并尝试按照一些评论的建议重新启动 docker,但一切都是徒劳的。我还运行了docker logs edgeAgent
命令向您显示一些日志,这些日志附在这篇文章中。
编辑: 附件是来自 Azure 的状态
而这个是iotedgeruntime的状态
编辑 2
我在 azure 上重新创建了 iotedge 设备,然后在我的 Windows 机器上重新安装了 iotedgeruntime。无需创建模块。以下是日志
此日志显示 EdgeAgent 已启动,但在使用空部署配置时出现问题。所以我创建了一个空配置。这里提到了https://github.com/Azure/iot-edge-v1/issues/441#issuecomment-350824433。然后出现了同样的问题。显示以下命令的日志。
日志文件
它最初显示 edgeAgent 已启动,但一旦部署模块,它就会显示与我上面提到的相同的错误。
c# - 如何将来自 IotDevice 的消息路由到 IoTEdge 设备?
我已按照此链接编写自定义模块。在本教程中,名为tempSensor的模块将数据发送到另一个模块CSharpModule。就教程而言,我成功实现了它。
我想做的是:接收从IoTDevice到IoTEdge Device的遥测数据。
架构: Azure IoTHub 与 IoT 设备和 IoTEdge 设备连接
我尝试过什么:我尝试从使用 connectionString 连接到 ioTEdge 的模拟设备发送遥测数据。
发送数据的代码在这里
IoTEdge 自定义模块代码的接收端在这里...
自定义模块的deployment.template.json 文件中的路由信息如下。
但问题是从未调用过的回调PipeMessage 。我的理解是 IoTEdge 端点messages/input1没有消息。
c# - c# Azure IOT Edge Auto-provision with Device Provisioning Service(DPS) with x509 certificate sample required required
我是天蓝色物联网边缘开发的新手。我正在寻找一种在 C# 中在 Windows 上创建和配置模拟 x509 证书边缘设备的方法。可信平台模块 (TPM) 是目前边缘设备的唯一途径吗?
我找到了本教程,但它适用于 Windows 上的模拟 TPM Edge 设备。
https://docs.microsoft.com/en-ca/azure/iot-edge/how-to-auto-provision-simulated-device-windows
知道如何使用 x509 证书配置设备吗?和 x509 证书组注册?
查克