AWS IoT Greengrass是什么?
AWS IoT Greengrass 可将 AWS 无缝扩展至边缘设备,因此可以在本地操作其生成的数据,同时仍可将云用于管理、分析和持久存储。借助 AWS IoT Greengrass,您可以构建 IoT 解决方案,从而将不同类型的设备与云连接起来,并实现设备互连。连接的设备可以运行AWS Lambda函数、基于机器学习模型执行预测,保持设备数据同步以及与其他设备安全通信 。
为什么要使用AWS IoT Greengrass?
• 近乎实时响应本地事件。它可在本地操作其生成的数据,因此可以快速响应本地事件。
• 脱机运行。它能够允许互联设备在间歇连接到云的情况下运行。
• 安全通信。它可对本地和云通信的设备数据进行身份验证和加密,在身份未经证实的情况下,设备与云之间就不会进行数据交换。
• 通过AWS Lambda实现简化的设备编程。借助 AWS IoT Greengrass,您可以在本地执行 AWS Lambda 函数,从而降低了开发嵌入式软件的复杂性。
• 降低运行IoT应用程序的成本。通过对设备进行编程以在本地过滤数据,并只将应用程序所需的数据传输到云,大大降低成本。
• 集成高质量测试工具。AWS IoT Device Tester for AWS IoT Greengrass 是一个测试自动化工具,可以加速您对 AWS IoT Greengrass 的基于 Linux 的 IoT 设备的测试。
如何使用AWS IoT Greengrass?
一、设置 Amazon EC2 实例
1.登录AWS管理控制台,并使用 Amazon Linux AMI 启动一个 Amazon EC2 实例。启动Amazon Linux实例,并装好JDK8和NodeJS6。
2.选择相应的实例类型并登陆。
二、在 AWS IoT 上配置 AWS IoT Greengrass
1.在您的计算机上登录 AWS 管理控制台并打开 AWS IoT 控制台。如果这是您第一次打开此控制台,请选择开始使用。
2.在AWS IoT控制台页面,选择 Greengrass。
3.在 Welcome to AWS IoT Greengrass 页面上,选择 Create a Group (创建组)。
4.在设置Greengrass group 页面上,选择使用简单创建。
5. 输入组的名称(例如 MyFirstGroup),点击下一步。
6. 使用 AWS Greengrass 核心的默认名称,点击下一步。
7. 在运行脚本化的简单组创建页面上,选择创建组和核心。
8.在确认页面上,下载核心的安全资源和 AWS Greengrass 核心软件。
a. 在 Download and store your Core's security resources (下载并存储您的核心的安全资源) 下,选择 Download these resources as a tar.gz (将这些资源作为一个 tar.gz 下载) 以便为 AWS Greengrass 核心下载所需的安全资源。
b. 在软件配置下,选择与核心设备最相配的 CPU 体系结构、分发版本(和操作系统,如有必要)。例 如:
• 对于 Raspberry Pi,下载适用于 Raspbian 的 ARMv7l 软件包。
• 对于 Amazon EC2 实例,下载适用于 Linux 的 x86_64 软件包。
• 对于 NVIDIA Jetson TX2,下载适用于 Ubuntu 程序的 ARMv8 (AArch64)。
• 对于 Intel Atom,下载适用于 Linux 的 x86_64 软件包。
9.在下载安全资源和 AWS IoT Greengrass Core 软件后,选择完成。组配置页面将显示在控制台中。
三、在核心设备上启动 AWS IoT Greengrass
在上面第9个步骤中,您已将两个文件下载到计算机:
• greengrass-OS-architecture-1.5.0.tar.gz。此压缩文件包含在核心设备上运行的 AWS Greengrass 核心软件。
• -setup.tar.gz。该压缩文件包含允许在 AWS IoT 之间进行安全通信所用的安全证书,以及config.json,其中包含特定于 AWS Greengrass 核心和 AWS IoT 终端节点的配置信息。
1.将两个压缩文件从计算机传输到 AWS Greengrass 核心设备。
解压 AWS Greengrass 核心软件和安全资源。
• 第一条命令在 AWS Greengrass 核心设备的根文件夹中创建 /greengrass 目录(通过 -C / 参 数)。
• 第二条命令将证书复制到 /greengrass/certs 文件夹中,并将 config.json 文件复制到 /greengrass/config 文件夹中(通过 -C /greengrass 参数)。
2.在核心设备上启动 AWS IoT Greengrass。
cd /greengrass/ggc/core/
sudo ./greengrassd start
您应看到 Greengrass successfully started 消息,记录 PID。
3. 您可以运行以下命令来确认 AWS Greengrass 核心软件(守护程序)是否正常工作。将 PID-number 替换为您的 PID:
ps aux | grep PID-number
四、AWS IoT Greengrass 上的 Lambda 函数
创建并打包 Lambda 函数,并将其部署到AWS IoT Greengrass核心设备上运行。
a) 打开Lambda控制台并选择Create function。
b) 在functions页面中选择Create function,然后选择Blueprints。
c) 这里我们选择greengrass-hello-world。
d) 在greengrass页面,选择Publish new version,在这里我们对新创建的version用“1”来描述,点击发布。
e) 为Lambda函数版本创建alias(别名),这里命名为hello,再选择对应的之前创建的version“1”,点击创建。
f)现在可以为AWS IoT Greengrass配置Lambda函数了。在AWS IoT Core控制台的Greengrass下,选择groups中之前创建的组。在组配置页面上,选择Lambdas ,再选择添加lambda。
g) 选择使用现有Lambda。
h) 搜索在上一步中创建的Lambda的名称HelloWorld,点击下一步。
i)在Lambdas页面中,点击左上角省略号,选择编辑设置。
j) 在Lambda配置页面上,这里将超时设置为3秒。对于Lambda生命周期,这里选择“ 使此函数具有长期使用寿命”,使其无限期运行。
k) 在组配置页面上选择订阅,再选择添加订阅。
l) 在选择源页面中,选择Lambdas选项下的HelloWorld。
m) 在服务选项中选择IoT Cloud。
n) 对于Topic过滤器(filter),这里我们输入hello/world,点击下一步。
o) 现在可以将云配置部署到AWS IoT Greengrass核心设备上了。在AWS IoT核心控制台的组配置页面上,从右上角 Actions的下拉框中选择Deploy。
p) 部署完成后,可以在部署页面中看到状态是successfully completed。
q)接下来就可以验证Lambda函数能否在设备上运行了。从AWS IoT核心控制台的导航窗格中,选择Test。
r) 选择订阅主题,Subscription主题中输入hello/world,服务质量选择0,MQTT有效负载显示选择字符串。
s) 如果Lambda函数正在设备上运行,就会出现以下的消息。
本篇关于AWS IoT Greengrass的部署与实践,主要是用Linux当IOT Device,通过现在不同的操作系统对应IOT Soft 去启动不同的设备,当IOT Device GreenGrass连接到IOT Core上时,在Lambda里面生成Lambda函数,然后部署到GreenGrass上面,最后使其在GreenGrass上面运行。