在 UP Squared 开发板上启动 Amazon Web Services Greengrass Core
本指南将介绍在 UP Squared 开发板上使用 Ubuntu 启动 Amazon Web Services (AWS) Greengrass Core 的步骤。
引言
本指南将介绍在 UP Squared* 开发板上使用 Ubuntu* 启动 Amazon Web Services (AWS) Greengrass* Core 的步骤。
关于 UP Squared* 开发板
UP Squared 平台以其低功耗和高性能(非常适合物联网 (IoT))为特点,是基于 Intel Apollo Lake 平台速度最快的 x86 创客开发板。它包含 Intel Celeron® 处理器双核 N3350 和 Intel® Pentium® 品牌四核 N4200 处理器。
AWS Greengrass*
AWS Greengrass 是一款将 AWS 云功能扩展到本地设备的软件,允许设备在本地进行数据收集和分析。这可以减少设备与数据处理层之间的延迟,并降低将数据发送到云的存储和带宽成本。用户可以创建 AWS Lambda 函数,使 Greengrass 能够同步数据、过滤数据以供进一步分析,并安全地与其他设备通信。
操作系统兼容性
UP Squared 开发板可以运行 Ubilinux*、Ubuntu*、Windows® 10 IoT Core、Windows® 10、Yocto Project* 和 Android* Marshmallow 操作系统。有关 UP Squared 的更多信息,请访问此网站。
硬件组件
此项目中使用的硬件组件如下所示
- UP Squared
- UP Squared 电源 5V@6A
- 带 HDMI 接口的显示器
- HDMI线
- 通过互联网连接或 UP Squared* Wi-Fi 套件进行网络连接
- USB 键盘和鼠标
创建 AWS Greengrass* 组
AWS Greengrass 组是 AWS Greengrass 核心设备及其与之通信的设备的设置集合。首先,登录 Amazon Web Services (AWS)* 管理控制台,打开 AWS IoT 控制台,然后从导航栏右上角选择一个 **区域**,然后选择 **Greengrass**。
在 **欢迎使用 AWS Greengrass** 屏幕上,选择 **开始**。
在 **设置您的 Greengrass 组** 页面上,选择 **使用简易创建** 来创建 AWS Greengrass 组。
为您的 **Greengrass 组** 选择一个名称,然后点击 **下一步**。
为 AWS Greengrass Core 使用默认名称,然后选择 **下一步**。
在 **运行脚本化简易组创建** 页面上,选择 **创建组和 Core**。
AWS Greengrass 组创建过程中,您应该会看到以下页面。
当您看到证书以及公钥和私钥时,您已成功创建新的 Greengrass 组。点击 **将这些资源下载为 tar.gz** 来下载证书和私钥以供稍后使用。选择 **x86_64** 作为 CPU 架构,然后点击 **下载 Greengrass** 开始下载 Greengrass。
选择 **完成**。
开发板
开始之前,请确保 **Ubuntu*** 操作系统已安装在 UP Squared 开发板上。为了确保 Ubuntu 操作系统是最新的并已安装所有依赖的 Ubuntu 包,请打开命令提示符(终端)并输入以下命令:
sudo apt-get update
通过在终端中输入以下命令来安装 sqlite3 包
sudo apt-get install sqlite3
创建 Greengrass 用户和组账户
sudo adduser --system gcc_user sudo addgroup --system gcc_group
解压在前面“**图 7:设置 AWS Greengrass 组:证书和私钥**”步骤中下载的 Greengrass Core 软件。
通过在终端中输入以下命令来下载 cmake 包
wget https://cmake.com.cn/files/v3.8/cmake-3.8.0.tar.gz
执行以下命令
tar -xzvf cmake-3.8.0.tar.gz cd cmake-3.8.0 ./configure make sudo make install
使用以下命令安装 OpenSSL
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz tar -xzvf openssl-1.0.2k.tar.gz cd openssl-1.0.2k ./config --prefix=/usr make sudo make install sudo ln –sf /usr/local/ssl/bin/openssl ‘which openssl’ openssl version -v
启用硬链接和软链接保护
激活硬链接和软链接保护以提高设备安全性。将以下两行添加到 /etc/sysctl.d/10-link-restrictions.conf。
fs.protected hardlinks = 1 fs.protected symlinks = 1
重启 UP Squared 开发板并运行以下命令来验证系统变量
sudo sysctl -a | grep fs.protected
安装 Greengrass 证书和密钥
将上面“图 7:设置 AWS Greengrass 组:证书和私钥”中创建的证书和私钥文件复制到 UP Squared 开发板,如下所示:
- cloud.pem.crt:上面创建的 4f7a73faa9-cert.pem.crt
- cloud.pem.key:上面创建的 4f7a73faa9-private.pem.key
- root-ca-cert.pem:wget https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem -O root-ca-cert.pem
~/greengrass/certs 目录应如下所示:
编辑 config.json
打开命令提示符(终端)并导航到 ~/greengrass/config 文件夹。编辑 config.json 以如下方式配置 Greengrass Core:
{ "coreThing": { "caPath": "root-ca-cert.pem", "certPath": "cloud.pem.crt", "keyPath": "cloud.pem.key", "thingArn": "arn:aws:iot:us-east-1:xxxxxxxxxxxx:thing/MyGreengrass1stGroup_Core", "iotHost": "yyyyyyyyyyyy.iot.us-east-1.amazonaws.com", "ggHost": "greengrass.iot.us-east-1.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes" } }, "system": { "shadowSyncTimeout": 120 } }
注意:shadowSyncTimeout
的默认值为 1。
- • thingArn:导航到 AWS IoT 控制台,在左侧选择 **管理**,然后选择 **Thing** 下的 **MyGreengrass1stGroup**。
ThingARN 应如下所示:
- iotHost:导航到 AWS IoT 控制台,**Endpoint** 位于 AWS IoT 控制台左下角的 **设置** 下。
启动 AWS Greengrass* Core
打开命令提示符(终端)并导航到 ~/greengrass/config 文件夹
cd ~/greengrass/ggc/core sudo ./greengrassd start
当您看到“Greengrass successfully started”消息时,即表示 Greengrass Core 已成功创建。
要确认 Greengrass Core 进程正在运行,请运行以下命令:
ps aux | grep greengrass
摘要
我们已介绍了如何在 UP Squared 开发板上启动 Greengrass Core。在此基础上,您可以尝试一些项目来探索 UP Squared 开发板的潜力。例如,您可以创建 Greengrass 部署,添加一组可以与本地 IoT 端点通信的设备,启用 Lambda 函数来过滤数据以供进一步分析,等等。
参考文献
Amazon Kinesis* 服务 API 参考
http://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html
http://docs.aws.amazon.com/greengrass/latest/developerguide/gg-config.html
Up Squared
http://www.up-board.org/upsquared
Amazon
https://aws.amazon.com/kinesis/streams/getting-started
IoT 参考
https://software.intel.com/en-us/iot/hardware/devkit
关于作者
Nancy Le 是 Intel 公司软件与服务部门的一名软件工程师,专注于 Intel Atom® 处理器和 IoT 规模赋能项目。
*其他名称和品牌可能被声明为他人的财产。