问题标签 [azure-iot-sdk]

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.

0 投票
0 回答
683 浏览

azure-iot-sdk - Azure 中的 Iothub 模块身份验证错误

我正在运行一个相当基本的 Azure IoT C# 模块。最初,一切正常。但是,当我为边缘集线器设置 X.509 证书时,我遇到了如下模块身份验证错误。似乎对使用 AMQP/MQTT 协议的 Tcp_only 或 Websocket_only 选项有一定的依赖性(后者不会引发异常),但这在模块之间并不一致。

有问题的代码行如下..

错误消息如下。本质上,等待超时是因为身份验证未完成。据我所知,身份验证是直接从 iot edge 运行时派生的,所以不确定它为什么专门尝试进行身份验证或出错...

未处理的异常:System.AggregateException:发生一个或多个错误。(远程证书根据验证程序无效。) ---> System.Security.Authentication.AuthenticationException:远程证书根据验证程序无效。在 Microsoft.Azure.Devices.Client.InternalClient.<>c.b__62_2(Task t) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- 从先前引发异常的位置结束堆栈跟踪 --- 在 SampleModule.Program 的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()。 d__10。

0 投票
1 回答
99 浏览

c# - 使用 Cloud Service-Worker 角色的 Azure 云到设备直接消息

我们正在开展一个项目,该项目需要在设备之间交换大量消息/命令。

我们使用 Cloud Service Worker 角色来处理命令并使用 Cloud to Device Direct 方法发送到相关设备。

Worker 角色配置为 A2V2-2 Core,4 GB RAM。worker 角色容量没有问题。CPU 和内存都在控制之中。

对于较少的消息/命令处理其工作正常(例如 500 条消息)。但是当没有消息增加时,我们将面临性能问题(例如 1000 条消息)。我们的目标是 <5 秒延迟。当我们尝试登录 Worker Role VM 并发现 TCP 连接的数量不断增加,并且在向设备发送消息/命令时导致速度变慢。

我们使用以下代码行使用直接方法发送消息。在每次直接方法调用后寻找更好的方法来处理服务客户端对象。

0 投票
1 回答
176 浏览

azure - 如何将 Azure Edge 模块集成到 Spring Boot 应用程序

我有一个 spring boot 应用程序,它使用 spring 调度从具有指定间隔的设备中提取数据。现在我想使用网关模块集成相同的 Spring Boot 应用程序来推送数据。我找不到任何集成点

0 投票
1 回答
1067 浏览

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 对象?

0 投票
1 回答
183 浏览

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

0 投票
1 回答
2185 浏览

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

但是感觉它有点停滞了,我没有得到任何帮助。

据我了解,这应该是可能的,但我不知道我错过了什么?

0 投票
2 回答
939 浏览

azure - 使用 Azure IoT C SDK 将 Azure IoT 中心与 GSM 调制解调器连接

我想将嵌入式系统连接到 Azure IoT 中心。该系统由一个STM32微控制器、一些传感器和一个调制解调器组成,具有以下特点:

  • IP数据包传输协议
  • TLS 支持
  • SHA-256 支持
  • 通过 hayes 命令集(AT 命令)进行控制

我想通过使用Azure IoT Client C SDK来扩展我的代码库。

  1. 是否可以将这个库与提到的调制解调器一起使用?
  2. 如果是,有人可以概述整合的必要步骤吗?
0 投票
0 回答
235 浏览

azure-iot-sdk - 未链接到 libcurl 的示例

在使用 CMake 交叉编译适用于 C 的 Azure IoT SDK 时,它还尝试构建一些示例。但它不会将这些样本与 libcurl 链接起来,即-lcurl相应的命令行中缺少这些样本。因此,我得到了很多未定义的引用。例如:

这就是我调用构建脚本的方式:

这就是我的工具链文件的样子:

我滥用工具链文件来设置一些选项,因为构建脚本不允许我直接设置选项。

这是构建示例的命令行的样子:

我到底在用什么药?

0 投票
2 回答
225 浏览

azure - 尝试在 IoT Hub 中设置文件上传时未找到存储帐户

我正在尝试将存储容器与 IoT 中心相关联,但在这样做时遇到了麻烦。此处的目标是连接存储容器,以便在 IoT 中心启用文件上传。

我已经按照这里的文档

您必须首先将 Azure 存储帐户链接到 IoT 中心。您可以通过 Azure 门户或通过 IoT 中心资源提供程序 REST API 以编程方式完成此任务。

但是在执行上述流程时,没有找到存储容器。我确实有多个存储包含在这个帐户上。

关于如何连接存储容器的任何建议?

0 投票
1 回答
685 浏览

java - Azure IoTHub DeviceMessage,消息正文上的路由过滤器不起作用

我正在按照https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-monitoring-notifications-with-azure-中所述的说明使用 Azure Logic Apps 创建 IoT 远程监控和通知逻辑应用程序

遥测模拟器(Java 使用 com.microsoft.azure.sdk.iot -> iot-device-client -> 1.14.0 版本)

对于 QueryString - temperatureAlert = "true" - 一切正常。但是对于查询字符串 - $body.temperature > 30 - 然后我没有收到任何消息。