【发布时间】:2023-01-12 21:24:22
【问题描述】:
- 我有一个在 linux VM 中运行的 API 模块(作为 Iot Edge EFLOW),它公开了某个端口,我们取 8000。这个模块是获取数据并将其发送到其他物联网边缘自定义模块的模块在将其发送到物联网集线器之前进行处理。
- 我创建了 2 个模块,1 个 Web API (net6) 和 1 个 CSharp 模块(netcoreapp3.1,使用 VS Code 创建时开箱即用)。
- 我部署了这两个模块并且它们成功运行并且我能够通过我的 REST 调用在 linux 内核(EFlow 内核)中执行 curl。
例如
curl -XPOST -H "Content-type: application/json" -d '{ "date":"2022-04-19T11:17:06Z", "temperature":"10", "pressure":"120", "batterylife":"100" }' 'http://localhost:8000/edgesensor'现在,问题陈述,我想通过我的 Windows 主机调用相同的端点并到达该端口 8000,这没有发生,我得到一个连接被拒绝。
我对该 API 模块的配置如下。
"createOptions": { "ExposedPorts": { "8000/tcp": {} }, "HostConfig": { "PortBindings": { "8000/tcp": [ { "HostPort": "8000" } ] } } }我已经尝试查看提供的示例,例如下面的 EFlow github 链接。
https://github.com/Azure/iotedge-eflow
但此示例使 iot edge 充当设备网关,并将调用它的控制台应用程序充当子设备。
-
这是连接到 EFlow IoT Edge 设备的唯一方法,即使其充当网关,还是可以按照我尝试调用的方式调用它?
-
端口转发也是一种这样的方法。但是 Azure IoT Edge 模块提供的配置中是否有某些东西可以执行此操作,我是否遗漏了什么?
任何意见表示赞赏。
干杯!
-
【问题讨论】:
标签: c# azure visual-studio-code azure-iot-edge