问题标签 [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.

0 投票
1 回答
214 浏览

azure - 如何指定到网关的路由

我想创建边缘设备的“层次结构”并因此使用网关机制。目前,网关只是一个透明网关,它将消息传递到 IoT 中心。(https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway-linux)。

情况:我有两个边缘设备,比如“传感器”和“网关”。如何在部署中指定 Sensor 的输出在上行到 IoT 中心之前需要先到达网关的路由?

传感器路由:“路由”:“FROM /messages/* INTO ???

网关路由:“路由”:“FROM /messages/* INTO $upstream”

0 投票
1 回答
196 浏览

azure-iot-edge - 模块上没有收到云到设备的消息

我创建了一个模块来接收云到设备的消息,但模块上没有收到任何消息,是否缺少任何编码?

监视器

[C2DMessageMonitor] 收到消息:“[{\“机器\”:{\“温度\”:40.750164436176497,\“压力\”:1.0854617712099808},\“环境\”:{\“温度\”:40.450729128416036,\”湿度\":26},\"timeCreated\":\"2018-08-06T13:28:52.0375008Z\"}]"

[C2DMessageMonitor] 状态:消息已完成

0 投票
1 回答
349 浏览

azure-iot-edge - 模块双胞胎空着回来

我正在尝试在模块的设备双胞胎上设置所需的属性,但是当我从 IoT 中心检索双胞胎时,它返回的都是空值。

当我在调试器中检查 moduleTwin 时,我得到

调试器将所有属性显示为 null

连接字符串是模块的连接字符串,从 IoT 中心复制。

知道我做错了什么吗?

0 投票
1 回答
679 浏览

azure-iot-edge - UpdateTwinAsync 失败

我正在尝试更新边缘设备的模块孪生。我现在可以检索模块的设备孪生,但无法将更新后的 Desired 属性保存回 IoT 中心。

当它运行时,我得到以下异常

在此处输入图像描述

其中“DeviceId”是以红色隐藏的值。

我曾尝试使用设备的 ETag,但这只是更新了设备的双胞胎,我尝试使用 ModuleId 而不是 DeviceId,这会引发 DeviceNotFoundException。

如何在此处更新 ModuleTwin?

0 投票
2 回答
440 浏览

docker - 无法将 Python 程序从 Azure IOT Edge 部署到 Rasberry Pi

我使用以下链接安装了 IOT Edge 运行时:
https ://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux-arm

我正在按照以下教程将 docker 映像部署到 IOT Edge (Rasberry Pi):
https
: //docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux 并能够将 tempSensor 映像部署到我的树莓派

我决定部署我自己的程序“blink.py”。
我使用以下命令在本地 Rasberry Pi 中创建了该程序及其工作正常:

我按照以下步骤从 Azure IOT Edge 门户部署我自己的程序:
1.) 使用 Dockerfile 创建一个 docker 映像:

然后运行命令:

2.) 现在我将图像推送到 Azure 容器注册表。遵循以下步骤:

a.) 登录 Azure 容器注册表

b.) 推送到 Azure 容器注册表

3.) 使用以下链接将 Azure 容器注册表中的映像部署到 IOT Edge 设备: https ://docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux#deploy-a-module

我看到在 Raspberry Pi 中创建的容器映像为“blink.azurecr.io/blink”。
我看到 IOTEdge 运行时尝试将此映像部署为容器,但失败了。
当我尝试使用命令查看日志时


它显示一个错误:



似乎是一些访问问题,但不知道如何解决?从 azure 门户部署边缘模块时,我是否需要在 createOptions 中添加任何内容?

-沙

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 投票
0 回答
320 浏览

azure - IoTHub 是否将自定义终结点中的批处理间隔延迟到 Azure 存储?

我正在使用 Azure IoT Edge 在管道中发送一些消息。我设置了一个自定义终结点(例如GenericEndpoint),它将消息发送/放入 Azure Blob 存储。我正在使用路由将设备消息推送到特定端点GenericEndpoint

GenericEndpoint的批处理频率设置为 60 秒。所以 1 批在指定的容器中创建了 1 个带有一些消息的单个文件。

可以说,特定容器中的单个 blob 批处理文件(例如blobX )中有N条消息。如果我取 blobX 中每条消息 i 的IoTHub.EnqueuedTime (i) 和blobX的“创建时间”之差的平均值,并将其称为AVG,我得到:

平均

我认为,这基本上给了我这些N条消息在写入 blob 存储之前在 iothub 中花费的平均时间。现在我在这里观察到的是,如果pq分别是blobX中写入的第一条和最后一条消息,那么

ss ss

但由于批处理间隔设置为 60 秒,我预计这个平均值或AVG大约接近 30 秒。因为,如果消息一到就写入,那么每个批处理文件的平均时间将接近 30 秒。

但在我的情况下,AVG ≈ 90 秒,这表明消息至少要等待大约一个批处理间隔(在本例中为 60 秒),然后再考虑用于特定批处理。

假设:当一批消息被写入一个 blob 文件时,它们是一次性写入的。

我的问题

一个批次间隔或 60 秒的延迟是故意的吗?如果是,那么我假设它将批处理间隔更改为 100 秒。

如果不是,那么在iothub中处理一条消息然后通过路由将其发送到自定义端点通常需要60秒吗?还是我从一个完全错误的角度来看这个?

如果我的问题看起来令人困惑,我会事先道歉。

0 投票
1 回答
536 浏览

azure-iot-hub - 显示旧数据的 Azure IoT Edge tempSensor 模块

作为教程的一部分,我首先在 Linux 上进行了 Azure iot edge 部署,它运行良好。但是,在此之后,我使用 Visual Studio 代码中的 python 部署了 tempSensor 过滤器模块,部署了 PythonModule 但 D2C 消息仍然很旧,并且没有发生过滤。我看到 tempSensor 的旧图像不断弹出,显示 EdgeVM 上的旧创建日期。我在下面做了这些来删除旧图像,但它仍然是一样的。

  1. 在 Iothub 中,我通过设置模块页面删除了模块
  2. 我删除(使用清除)整个 iotedge 运行时并重新安装它
  3. 从 docker 中删除了容器和图像,但没有成功我希望删除旧图像,当我从 Visual Studio 代码部署时,应该会出现新的过滤消息
0 投票
1 回答
340 浏览

azure - iPhone作为物联网设备的网关——Azure IOT HUB

在 azure iot hub 中是否有一种方法......我们可以让 ios 设备充当树莓派等叶节点或其他设备的网关,以从 azure iot hub 发送/接收数据。

是否有任何可用的 iOS sdk

0 投票
2 回答
419 浏览

traffic - IoT Edge AMQP 流量开销

在过去的几天里,我一直在努力分析 IoT Edge 设备在将数据传输到 IoT 中心时产生的流量。

集线器中的指标完全符合我对每小时约 120KB 的预期,这大约是我通过模块客户端发送的消息的大小。

但是当我监控设备的网络流量时,结果是发送了 20MB,接收了大约 10MB,对于 AMQPS,每小时总共超过 30MB,这是一个巨大的差异。

有没有人遇到过这种情况,有没有办法找出数据差异的原因。