终止支持通知:2026 年 10 月 7 日,AWS将停止对的支持。AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后,您将无法再访问这些AWS IoT Greengrass V1资源。如需了解更多信息,请访问迁移自AWS IoT Greengrass Version 1。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon EC2 实例
按照本主题中的步骤设置 Amazon EC2 实例用作您的 AWS IoT Greengrass 核心。
提示
或者,要使用脚本来设置您的环境并为您安装 AWS IoT Greengrass Core 软件,请参阅快速入门:Greengrass 设备安装程序。
尽管您可以使用 Amazon EC2 实例完成本教程,但 AWS IoT Greengrass 最好与物理硬件一起使用。我们建议您尽可能设置 Raspberry Pi,而不是使用 Amazon EC2 实例。如果您使用的是 Raspberry Pi,则无需按照本主题中的步骤操作。
-
登录 AWS Management Console
并使用 Amazon Linux AMI 启动一个 Amazon EC2 实例。有关 Amazon EC2 实例的信息,请参阅 Amazon EC2 入门指南。 -
在您的 Amazon EC2 实例运行后,启用端口 8883 以允许传入的 MQTT 通信,以便其他设备可以与核心连接。 AWS IoT Greengrass
-
在 Amazon EC2 控制台的导航窗格中,选择 安全组。
-
选择您刚刚启动的实例的安全组,然后选择入站规则选项卡。
-
选择编辑入站规则。
要启用端口 8883,您应向安全组添加自定义 TCP 规则。有关更多信息,请参阅《Amazon EC2 用户指南》中的向安全组添加规则。
-
在编辑入站规则页面上,选择添加规则,输入以下设置,然后选择保存。
-
对于 Type(类型),选择 Custom TCP Rule(自定义 TCP 规则)。
-
对于端口范围,输入
8883。 -
对于 Source(源),请选择 Anywhere(任何位置)。
-
对于描述,输入
MQTT Communications。
-
-
-
连接到 Amazon EC2 实例。
-
在导航窗格中,选择 Instances (实例),选择您的实例,然后选择 Connect (连接)。
-
按照 Connect To Your Instance (连接到您的实例) 页面上的说明操作,使用 SSH 和您的私有密钥文件连接到您的实例。
您可以对 Windows 使用 PuTTY,对 macOS 使用终端。有关更多信息,请参阅《Amazon EC2 用户指南》中的连接到 Linux 实例。
您现在已准备好为 AWS IoT Greengrass设置 Amazon EC2 实例。
-
-
连接到 Amazon EC2 实例后,创建
ggc_user和ggc_group账户:sudo adduser --system ggc_user sudo groupadd --system ggc_group注意
如果
adduser命令在系统上不可用,请使用以下命令。sudo useradd --system ggc_user -
为了提高安全性,请确保在启动时在 Amazon EC2 实例的操作系统上启用硬链接和软链接 (symlink) 保护。
注意
启用硬链接和软链接保护的步骤因操作系统而异。请参阅您的发行版的文档。
-
运行以下命令以检查是否启用了硬链接和软链接保护:
sudo sysctl -a | grep fs.protected如果硬链接和软链接设置为
1,则您的保护已正确启用。继续执行步骤 6。注意
软链接以
fs.protected_symlinks表示。 -
如果硬链接和软链接未设置为
1,请启用这些保护。导航到您的系统配置文件。cd /etc/sysctl.d ls -
使用您最喜欢的文本编辑器(Leafpad、GNU nano 或 vi)将以下两行添加到系统配置文件的末尾。在 Amazon Linux 1 上,这是
00-defaults.conf文件。在 Amazon Linux 2 上,这是99-amazon.conf文件。您可能需要更改权限(使用chmod命令)以对此文件进行写入,或使用sudo命令以根身份进行编辑(例如,sudo nano)。00-defaults.conffs.protected_hardlinks = 1 fs.protected_symlinks = 1 -
重启 Amazon EC2 实例。
sudo reboot数分钟后,使用 SSH 连接到您的实例,然后运行以下命令来确认更改。
sudo sysctl -a | grep fs.protected您应该看到硬链接和软链接都设置为 1。
-
-
提取并运行以下脚本以挂载 Linux 控制组
(cgroups)。这 AWS IoT Greengrass 允许为 Lambda 函数设置内存限制。Cgroup 还需要 AWS IoT Greengrass 在默认的容器化模式下运行。 curl https://raw.githubusercontent.com/tianon/cgroupfs-mount/951c38ee8d802330454bdede20d85ec1c0f8d312/cgroupfs-mount > cgroupfs-mount.sh chmod +x cgroupfs-mount.sh sudo bash ./cgroupfs-mount.sh您的 Amazon EC2 实例现在应该已为 AWS IoT Greengrass做好准备。
-
可选。安装流管理器所需的 Java 8 运行时。此教程不使用流管理器,但它将使用默认情况下启用流管理器的 Default Group creation (默认组创建) 工作流。在部署组之前,使用此命令在核心设备上安装 Java 8 运行时或禁用流管理器。模块 3 中提供了有关禁用流管理器的说明。
-
对于 Debian-based 发行版:
sudo apt install openjdk-8-jdk -
对于红色 Hat-based 发行版:
sudo yum install java-1.8.0-openjdk
-
-
为确保您拥有所有必需的依赖项,请从示例存储库下载并运行 Greengrass 依赖项检查器。AWS IoT Greengrass
GitHub 这些命令将在您的 Amazon EC2 实例中下载、解压并运行依赖项检查程序脚本。 mkdir greengrass-dependency-checker-GGCv1.11.x cd greengrass-dependency-checker-GGCv1.11.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip unzip greengrass-dependency-checker-GGCv1.11.x.zip cd greengrass-dependency-checker-GGCv1.11.x sudo ./check_ggc_dependencies | more重要
本教程需要 Python 3.7 运行时才能运行本地 Lambda 函数。启用流管理器后,还需要 Java 8 运行时。如果
check_ggc_dependencies脚本生成提示缺少这些必备运行时的警告,请确保先安装它们,然后再继续。您可以忽略提示缺少其他可选运行时的警告。
您的 Amazon EC2 实例配置已完成。继续模块 2:安装 AWS IoT Greengrass 核心软件。