标签: azure-iot-edge

python中的集成测试

我有一个要测试的 python 项目。我已经有了单元测试,unittest但我需要做集成测试。

为此,我有两个应用程序:我必须测试的真实应用程序和一个“测试”应用程序,它将向第一个应用程序发送请求,等待响应,然后将其与预期结果进行比较:

在此处输入图片说明

这样我就可以测试应用程序是否正确响应请求。

目前,我有我上面描述的内容,但在 main.py(不是特定的测试文件)中。另外,比较只是用打印功能完成的,所以我可以看到它的工作原理。但是我必须执行这些测试并能够以常规格式(例如 junit xml)获得结果。

我如何编写、运行和获取这些测试的结果?

编辑

我正在开发 Azure IoT Edge 模块,并且正在使用 Route 来连接模块。这是测试模块的代码,我需要在其中执行测试:

import random
import time
import sys
import iothub_client
import json

# pylint: disable=E0611
from iothub_client import IoTHubModuleClient, IoTHubClientError, IoTHubTransportProvider
from iothub_client import IoTHubMessage, IoTHubMessageDispositionResult, IoTHubError

# Callback received when the message that we're forwarding is processed.
def send_confirmation_callback(message, result, user_context):
    print ( "Confirmation[%d] received for message with result = %s" % (user_context, result) )

# receive_message_callback is invoked when an …
Run Code Online (Sandbox Code Playgroud)

python testing integration-testing azure-iot-hub azure-iot-edge

8
推荐指数
1
解决办法
1万
查看次数

Azure IoT Edge 与协议网关(IoT 中心)

我们现有的物联网平台使用 Azure 协议网关并且运行良好。我刚刚意识到 MS Azure 推出了一个新版本的协议网关,称为IoT Edge。我只是在寻找 IoT Edge 中可用的新功能,现在我完全混淆了这两个组件:

  • IoT Edge 主要支持设备和网关之间的本地连接。如果这不是我的要求的一部分怎么办?我还应该升级到 IoT Edge 吗?
  • 我没有看到任何性能改进 - 协议网关与物联网边缘

我知道答案可能是一个更广泛的讨论,但谁能提供一个简单的解释?

azure iot windows-10-iot-core azure-iot-hub azure-iot-edge

8
推荐指数
1
解决办法
2753
查看次数

如何为 .NET 解决方案构建具有多个依赖项的 Docker 映像?

它可能有点长,但我认为它很容易阅读......所以让我们开始......

我有一个使用IoT Edge Tools创建的 IoT-Edge 解决方案。它生成一个 Dockerfile,该文件非常适合没有外部 DLL 作为依赖项的项目。

当我在这个模块 ( ) 中添加多个 DLL ( MySqlAdapter, BaseAdapter, ) 时,问题就出现了,而在尝试构建镜像时没有更改 Dockerfile,HelperMyEdgeModule

它抛出一个错误:

正在跳过项目“/MySqlAdapter/MySqlAdapter.csproj”,因为找不到它。正在跳过项目“/MySqlAdapter/MySqlAdapter.csproj”,因为找不到它。

...

...:警告:引用的项目“../MySqlAdapter/MySqlAdapter.csproj”不存在。[/app/MyEdgeModule.csproj]

这是生成的 DockerfileMyEdgeModule

FROM microsoft/dotnet:2.1-sdk AS build-env
WORKDIR /app

COPY *.csproj ./
RUN dotnet restore

COPY *.csproj ./
RUN dotnet restore

COPY . ./
RUN dotnet publish -c Release -o out

FROM microsoft/dotnet:2.1-runtime-stretch-slim
WORKDIR /app
COPY --from=build-env /app/out ./

RUN useradd -ms /bin/bash moduleuser
USER moduleuser

ENTRYPOINT ["dotnet", "MyEdgeModule.dll"]
Run Code Online (Sandbox Code Playgroud)

这些类库项目位于 …

c# docker dockerfile azure-iot-edge

6
推荐指数
1
解决办法
3447
查看次数

Azure EventHubTrigger函数应用程序中的偏移量

预期: 使用带有 EventHubTrigger-CSharp 模板的函数应用程序会在新事件进入时运行。

实现:使用https://azure.microsoft.com/en-us/documentation/articles/functions-bindings-event-hubs/ 中的非常基本的示例

结果: 解释方法:

public static void Run(string myEventHubMessage, TraceWriter log)
{
    log.Info($"C# Event Hub trigger function processed a message: {myEventHubMessage}");
}
Run Code Online (Sandbox Code Playgroud)

确实传递事件队列中的“第一个”而不是当前的。

额外的:

问题: 如何在函数应用中接收集线器上的最新事件?

更多信息: 我需要将新信号从事件中心转发到外部 mqtt api(到目前为止有效)。也许我需要另一种方法?

azure-eventhub azure-iot-hub azure-functions azure-iot-edge

5
推荐指数
2
解决办法
4472
查看次数

自定义 C# 模块与 Edge 上的 Azure 函数

目前有两个主要选项可以在 Azure IoT Edge 上创建自定义的基于代码的模块:

  • 自定义模块(目前是 .NET Core,很快还有 Python 等)
  • Azure Functions(目前只有 .NET Core)

所以现在我的问题是,当我想在 .NET Core (C#) 中编写自定义代码时,使用一个比另一个有什么好处?

函数所需的样板代码要少得多,但性能如何呢?

azure .net-core azure-functions azure-iot-edge

5
推荐指数
2
解决办法
572
查看次数

从1000台设备中获取connectionState的最佳方法-Azure IoTHub

connectionState从1000台设备中获取数据的最佳方法。当前没有那么多设备,但是需要有效的解决方案。

根据我的理解,目前我可以connectionState使用

  1. IotHub Queries(select * from devices)registryManager.GetDevicesAsync(100);-这些方法在查询1000个设备时不是实时的,或者在设备数量增加时效率不高。
  2. HeartBeat-我不喜欢这样做,因为当设备数量很大时,这会导致配额过载,从而导致发送太多消息。
  3. 运营监控/诊断监控-第一个很好,但是到2018年10月它已被弃用,第二个大约需要2分钟才能在eventhub中获取消息(这种延迟我已经尝试过并发现)。

如果以上任何一项我有误,请提出一些建议并纠正我。

azure azure-eventhub azure-iot-hub azure-iot-sdk azure-iot-edge

5
推荐指数
1
解决办法
516
查看次数

IoT Edge 中心异常 - 无法启动 Kestrel

我正在自定义 Debian Linux 发行版上运行 IoT Edge 透明网关,但我时不时地遇到此错误“无法启动 Kestrel”。有谁知道这个错误的原因是什么?

2018-05-06 23:54:49.750 +00:00 [INF] - Starting Edge Hub
2018-05-06 23:54:49.756 +00:00 [INF] - Version - 1.0.0-preview022.11567621 (12a8e1bb63e619b17ca685efd470ad3f412034f4)
2018-05-06 23:54:49.757 +00:00 [INF] - 
        ?????? ???????????   ?????????? ????????
       ???????????????????   ???????????????????
       ????????  ????? ???   ?????????????????
       ???????? ?????  ???   ?????????????????
       ???  ???????????????????????  ???????????
       ???  ??????????? ??????? ???  ???????????

 ??? ??????? ?????????    ???????????????  ??????? ????????
 ?????????????????????    ???????????????????????? ????????
 ??????   ???   ???       ??????  ???  ??????  ??????????
 ??????   ???   ???       ??????  ???  ??????   ?????????
 ????????????   ???       ?????????????????????????????????
 ??? ??????? …
Run Code Online (Sandbox Code Playgroud)

azure-iot-edge

5
推荐指数
1
解决办法
562
查看次数

Azure IoT Edge 模块的装载路径

我按照文档https://docs.microsoft.com/en-us/azure/iot-edge/how-to-develop-python-module 中的示例进行操作并进行了一些尝试。

我尝试像在 docker 中那样将路径装入 IoT 模块容器,但没有成功。我在 deployments.template.json 的 createOptions 中添加了以下内容:

"createOptions": {
    "Volumes": {
        "D:\\test":"/test"
    }
}
Run Code Online (Sandbox Code Playgroud)

这会导致 RUNTIME RESPONSE: 400 - 部署配置格式错误或无效。

我的问题:

  • 是否甚至可以像在 docker 中那样安装从主机到 IoTEdge 模块的路径?
  • 如果是,如何?
  • 我在哪里可以找到所有 createOptions 参数的参考?

azure azure-iot-edge

5
推荐指数
1
解决办法
1688
查看次数

代表 Azure IoT 中心上的其他设备

在我们的场景中,我们有一堆设备与网关进行本地通信。网关负责聚合来自设备的事件并将其发送到云端。它还应该从云端接收设备配置更改并将其传输到特定设备。

根据我的阅读,我认为这实际上是一个典型的 IoT 中心场景。我们非常希望使用 IoT Hub 提供的设备管理、消息传递甚至双胞胎。

但是,设备之间的通信方式已经实现,不得更改。这意味着设备本身无法创建连接并提供 IoT 中心凭据。这排除了使用azure-iot-protocol-gateway或类似的。

我们宁愿需要网关充当可以代表其他设备的设备。网关会检测哪些设备在他的本地网络中并订阅它们的主题(通过 MQTT 或 AMQP)。

这甚至可能吗?设备能否代替其他设备发送事件或收听 Cloud-To-Device 消息?

azure iot azure-iot-hub azure-iot-edge

5
推荐指数
1
解决办法
198
查看次数

Azure IoT Edge 固件和内部自定义文件

我有在 Ubuntu 服务器下工作的设备,我创建了两个应用程序,它们实际上是我的“固件”我的目标是通过使用 Azure IoT Edge 更新这两个应用程序并创建某种发送健康和传感器状态的代理。我读了几篇文章,但仍有疑问:

  1. 如何创建包含两个 bin 应用程序的自定义固件,将其解压到目标设备上并移动到特定文件夹?
  2. 是否可以在 .NET CORE 中编写该代理是否受支持?

提前感谢有关如何创建自定义固件的任何链接。

firmware azure .net-core azure-iot-hub azure-iot-edge

5
推荐指数
1
解决办法
99
查看次数