EdgeX Foundry是一个开源边缘数据平台,旨在简化边缘设备、传感器和应用程序的集成,采用Apache 2.0许可证,由Linux基金会管理。
下面是一个主要信息的表格,方便您快速了解:
特性维度 |
EdgeX Foundry 3.1 "Napa" LTS |
版本代号 |
Napa |
版本号 |
3.1 |
状态 |
长期支持版本 (LTS) |
LTS支持期限 |
社区提供自发布起两年的支持(尽最大努力的基础上的社区支持) |
核心改进 |
增强的可用性和平台配置 |
关键新特性 |
文件的URI远程加载、所有服务的通用配置、文档彻底检查、核心数据保留功能、记录和重播服务 |
商业支持选项 |
可从IOTech等公司获得商业技术支持 |
🎯 快速搭建EdgeX Foundry
目前快速体验和搭建EdgeX Foundry最便捷的方式是通过Docker容器进行部署。
准备工作
- 安装Docker: 确保您的系统已安装Docker。您可以从Docker官网获取安装指南。
- 安装Docker Compose: Docker Compose通常随Docker Desktop一起安装。如果您使用的是Linux系统,可能需要单独安装它。
部署步骤
EdgeX社区提供了预构建的Docker镜像和Compose文件,使得部署非常简单。
-
获取Docker Compose文件:您可以从EdgeX Foundry的官方GitHub仓库获取适用于Napa (v3.1)版本的 docker-compose.yml
文件。例如,对于x86架构的系统,通常可以使用 curl
命令下载:
# 示例:下载docker-compose文件(请注意替换为官方提供的3.1版本确切的URL)
# 由于搜索结果中的URL是旧版本的,建议直接从EdgeX官方文档获取最新的3.1 LTS版本compose文件
# curl -o docker-compose.yml https://raw.githubusercontent.com/edgexfoundry/edgex-compose/3.1/docker-compose-no-secty.yml
-
启动EdgeX容器:使用 docker-compose
命令来拉取镜像并启动所有服务:
docker-compose up -d
这个过程会自动下载所需的所有镜像并启动容器。
-
验证部署:使用以下命令检查容器是否全部成功启动:
docker-compose ps
# 或者
docker ps
当所有EdgeX容器都正确拉取并启动且没有错误时,您应该能看到所有服务状态正常。
访问与测试
🧰 针对自身项目进行开发
当您需要根据自身项目需求对EdgeX进行定制化开发时,通常会涉及以下几个方面:
1. 开发自定义设备服务
如果您的项目需要连接特定协议或品牌的设备(非标准或私有协议),而EdgeX现有设备服务无法满足,您就需要开发自定义设备服务。
- 作用:设备服务负责与具体的物理设备通信,将设备数据转换成EdgeX内部统一的数据模型,并执行下发的控制命令。
- 开发工具:EdgeX提供了设备服务SDK(支持Go、C、C++等语言),它封装了与EdgeX核心服务交互的通用逻辑,您只需专注于实现设备通信协议的部分。
- 流程:一般包括使用SDK初始化设备服务、定义设备配置文件(描述设备资源和命令)、实现协议驱动的接口(如处理读、写操作)等。
2. 开发自定义应用服务
应用服务位于EdgeX架构的"北向",负责接收、处理(如过滤、聚合、转换、富化等)从核心数据或其他服务传来的数据,并分发到不同的外部系统或云端。
- 作用:实现项目特定的业务逻辑和数据流。例如,将设备数据转换为特定云平台(如AWS IoT, Azure IoT Hub)要求的格式并上传,或者根据数据分析结果触发本地动作。
- 开发工具:EdgeX提供了应用函数SDK(支持Go、Java等),帮助您快速构建应用服务。您可以使用SDK提供的数据处理函数(如Filter, JSONPath等),也可以编写自定义的处理逻辑。
- 流程:配置数据流入(通常从消息总线订阅)、编写数据处理管道(Pipeline)、定义数据输出目标。
3. 利用新特性:记录和重播服务
EdgeX 3.1 LTS新增的记录和重播服务对于开发和测试非常有用。
- 在开发中的应用:您可以使用此服务记录真实设备的数据流,然后在开发环境中重播这些数据,从而在没有物理设备的情况下进行功能测试、性能评估或场景模拟。这尤其适合于调试和验证您自定义的应用服务或数据分析逻辑。
4. 配置与扩展
- 利用文件的URI:将设备配置文件、设备定义等统一存储在远程位置(如HTTP服务器、Git仓库),并通过URI在启动时加载。这便于管理大量设备的配置,保持环境间的一致性,非常适合规模化部署。
- 核心数据保留策略:根据项目对边缘数据存储的需求,配置核心数据服务的保留策略(例如保存最近1000条读数),可以有效地管理边缘节点的存储空间,使其行为更可控。
📝 开发建议
- 参考官方文档与社区:EdgeX 3.1 LTS版本对官方文档进行了彻底的检查和优化,新手上手会更加顺畅。遇到问题时,积极查阅文档和参与社区讨论是很好的途径。
- 循序渐进:从理解EdgeX的微服务架构和数据流开始(南向设备接入->核心数据/元数据->应用服务导出/处理->北向系统),然后再针对性地进行开发。
- 测试与验证:充分利用Docker容器化的特点,在隔离的环境中开发和测试您的自定义服务,确保与EdgeX其他服务的兼容性。
💎 总结
EdgeX Foundry 3.1 "Napa" 作为最新的长期支持版本,提供了更好的稳定性和一些实用的新特性。通过Docker可以快速搭建环境进行体验和初步开发。针对自身项目需求进行开发时,重点在于开发自定义设备服务连接专属设备,以及开发自定义应用服务处理数据并对接特定云端或系统。同时,巧妙利用3.1版本的新特性,如记录和重播服务、文件的URI和核心数据保留策略,能显著提升开发测试效率和部署的灵活性。
希望这些信息能帮助您开始EdgeX Foundry的旅程。如果您有更具体的设备协议或云端平台需求,进一步的研究和探索会更有针对性。