检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
选择镜像:选择需要部署的镜像,单击“确认”。 我的镜像:展示了您在容器镜像服务中创建的所有镜像。 他人共享:展示了其他用户共享的镜像。 版本:选择需要部署的镜像版本。 安装包地址 部署方式为安装包部署时,填写您此前上传到对象存储服务OBS中的安装包地址。 选择容器规格,根据您的需要选择。 图4
输入端点:模块订阅的指定正则MQTT Topic的后缀,EdgeHub向该模块发送数据时则根据该模块配置的输入端点构造MQTT Topic并发送数据。 输出端点:从模块端向EdgeHub发送数据时使用的MQTT Topic后缀;即EdgeHub接收该模块配置的输出端点对应的MQTT Topic的数据。
> 生成 > 发布 ModuleSDK-Demo”。 单击配置按钮,将弹出"配置文件设置"窗口,可根据您实际使用的开发环境进行配置。 配置完成后单击"发布"按钮,即可在您设定的目标位置看到类似下图的发布文件 父主题: 开发指导
duleSDK-Demo的工程进行下面的实践。 添加本地Nuget包源 打开“Visual Studio > 工具 > Nuget包管理器 > 程序包管理器设置”,在弹出的窗口中新增一个可用程序包源,"源"为ModuleSDK对应的“NuGet包”所在的本地路径。 为工程导入Nuget包
fx软件界面如下: Connect左边的蓝色齿轮为设置。 Publish是消息发送,Subscribe为消息接收,Log可查看日志。 单击设置-General,输入以下信息 Broker Address:输入节点的公网地址。 Broker Port: MQTTS协议使用的端口,默认为7883。 尝试连接时间和保持连接时间等自定义。
根据容器应用的功能用途自行选择,本实验采用的镜像是进行数据清洗,故选择“数据处理”。 应用描述 自定义,可不填。 SDK版本 集成边缘SDK的版本号。 版本 选择镜像版本,如“1.0.0”,不勾选“支持多部署”。 支架架构 根据容器应用镜像支持的架构自行选择,本实验采用的镜像只支持x86架构,故选择“x86_64”
ModuleSDK中提供多个通用方法供客户开发应用时使用,使用时可参考每个函数的功能定义。 表1 客户端通用方法 接口 说明 open 打开客户端。 startModuleShadow 启动影子,设置收到影子回调并触发获取影子动作。 getModuleShadow 获取影子,触发获取影子动作。
类型 描述 requestId string 用于唯一标识某次请求的请求ID pointsSetReq PointsSetReq 点位设置请求的对象,该对象结构见下表 @return PointsSetRsp 点位设置响应,网关处理完请求以后,需要返回该响应,该对象结构见下表 表2 PointsSetReq结构说明
插件包升级时,会删除运行目录的所有文件,注意持久化文件的存储。插件包的运行路径为{installer_dir}/IoTEdge/downloaded-job/run/{moduleId}/{appVersion}/。 当前插件包的大小限制为最大500M。 程序内对于文件的访问使用相对目录访问(因为程序的安装目录是不确定的)。
使用时可参考每个函数的功能定义。 表1 DriverClient方法说明 接口 说明 createFromEnv 根据环境变量创建客户端,相关配置参数从环境变量获取。 setGatewayCallback 设置网关回调,实现对子设备下行请求、网关下行事件的处理。 sendDeviceMessage
IoT边缘云服务为应用提供总线对接能力、设备命令下发能力。IoTEdge对应用的日志、数据存储目录进行统一配置,应用相关设置通过环境变量传递给应用。 App从输入点接收来自总线的设备数据上报,对数据进行处理,将处理后的数据通过输出点发送到总线。 App也可以根据设备数据对设备进行反向控制,例如通过命令重启设备。
添加边缘应用具体请参考添加应用。 提供两种不同的部署方式,请根据需要选择合适的部署方式。 容器化部署 部署方式选择”容器化部署”。 建议直接勾选“立即发布”,方便后面直接部署应用的时候,能够获取到最新版本。 软件和运行配置 选择上传到SWR服务的镜像,如未发现镜像,请检查镜像是否为公开,设置镜像为公开方式:容
单击选择 选择镜像:选择需要部署的镜像,单击“确认”。 我的镜像:展示了您在容器镜像服务中创建的所有镜像。 他人共享:展示了其他用户共享的镜像。 版本:选择需要部署的镜像版本。 运行配置 输入端点、输出端点与demo中代码定义的端点一一对应,由于本例演示的是数采模块,因此不对端点进行配置。
专业版节点所在机器断网/断电一段时间后恢复,节点模块一直处于“部署中”怎么处理? 专业版节点欠费充值后,部署、升级模块仍然报错? MQTT设备无法接入边缘节点如何处理?专业版节点所在机器断网/断电一段时间后恢复,节点模块一直处于“部署中”怎么处理? 误删除IoTDA上的edge_node/modbus_ser
环境要求 安装边缘节点的服务器需要与设备在同一网域,因此您可以 局域网:使用两台电脑(一台Windows,一台Linux),或者在一台Windows电脑上使用虚拟化软件安装Linux(网卡需要设置为桥接模式)。 公网:分别使用两台拥有公网的Window和Linux电脑,推荐购买两台ECS服务器。
a查看主节点ip信息,如果当前设置均没有错误的话,在主节点上机器上已经可以查到已绑定的虚拟IP,例如当前设置的vip为172.30.0.201,主节点绑定的网卡为eth0。 图6 查看IP信息 查看网卡名称可以使用ifconfig查看,如下: 图7 查看网卡名称 安装备节点 选择您的边缘节点,单击“节点名称”进入节点详情页。
space_id 否 String 资源空间Id。此参数为非必选参数,用于兼容平台老用户存在多应用的场景。存在多应用的用户需要使用该接口时,必须携带该参数指定注册的设备归属到哪个应用下,否则接口会提示错误。如果用户存在多应用,同时又不想携带该参数,可以联系华为技术支持对用户数据做应用合并。 extension_info
概念相关 什么是IoT边缘? 开通边缘服务失败怎么处理? IoT边缘如何进行设备管理? IoTEdge与IEF的关系和区别是什么?
码里的output_name)。 调用设备命令,只有当设置的MOTOR_PRODUCT_ID的当前上报数据的设备的产品ID吻合,并且显示状态为error时,通过edge_call_device_command调用设备命令将设备重启。 处理过程结束。 修改Demo里的参数可参考修改代码。
消息总线,设置该函数里的output_name,边缘Hub会订阅类似/modules/user_monitor_app/messages/outputs/output的Topic(这里user_monitor_app是SDK应用对应的模块id,最后的“output“就是Demo代码里的output_name)。