设置Amazon IoT Greengrass核心设备 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设置Amazon IoT Greengrass核心设备

完成本部分中的任务以安装、配置和运行Amazon IoT Greengrass核心

注意

本节介绍的高级安装和配置Amazon IoT Greengrass核心 如果您是的新用户Amazon IoT Greengrass V2,我们建议您先完成入门教程设置核心设备并探索其功能Amazon IoT Greengrass.

支持的平台和要求

在开始之前,确保满足以下要求才能安装和运行Amazon IoT Greengrass核心

提示

您可以搜索符合条件的设备Amazon IoT Greengrass V2在里面Amazon合作伙伴设备目录.

支持的平台

Amazon IoT Greengrass正式支持运行以下平台的设备。平台未包含在此列表中的设备可能有效,但是Amazon IoT Greengrass仅在这些指定的平台上进行测试。

Linux

架构:

  • Armv7l

  • Armv8 (AArch64)

  • x86_64

Windows

架构:

  • x86_64

版本:

  • Windows 10

  • Windows Server 2019

注意

一段时间Amazon IoT GreengrassWindows 设备目前不支持这些功能。有关更多信息,请参阅 不同操作系统的 Greengrass 功能兼容性Windows 设备的功能注意事项

Linux 平台也可以运行Amazon IoT Greengrass V2在 Docker 容器中。有关更多信息,请参阅 运行Amazon IoT GreengrassDocker 容器中的核心软件

要构建基于 Linux 的自定义操作系统,可以使用 BitBake 配方Amazon IoT Greengrass V2在里面meta-aws项目. 这些区域有:meta-awsproject 提供了可用于构建的配方Amazon中的边缘软件功能嵌入式使用以下方法构建的系统OpenEmbedded和 Yocto Project 构建框架。这些区域有:Yocttttto 项目是一个开源协作项目,可帮助您为嵌入式应用程序构建基于 Linux 的自定义系统,无论硬件架构如何。这些区域有: BitBake 配方Amazon IoT Greengrass V2安装、配置并自动运行Amazon IoT Greengrass设备上的核心软件

设备要求

设备必须满足以下要求才能安装和运行Amazon IoT Greengrass核心软件 v2.x。

注意

您可以使用Amazon IoT Device Tester为了Amazon IoT Greengrass验证您的设备是否可以运行Amazon IoT Greengrass核心软件并与之通信Amazon Web Services 云. 有关更多信息,请参阅 使用Amazon IoT Device Tester为了Amazon IoT GreengrassV2

Linux
  • 使用Amazon Web Services 区域支持Amazon IoT Greengrass V2. 有关受支持的区域列表,请参阅Amazon IoT Greengrass V2终端节点和配额在里面Amazon一般参考.

  • 至少 256 MB 的磁盘空间Amazon IoT Greengrass核心 此要求不包括部署到核心设备的组件。

  • 至少分配给 96 MB RAMAmazon IoT Greengrass核心 此要求不包括在核心设备上运行的组件。有关更多信息,请参阅 使用 JVM 选项控制内存分配

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在路径设备上的环境变量。要使用 Java 开发自定义组件,必须安装 Java 开发工具包 (JDK)。建议您使用ACorretto on 11要么OpenJDK 11.

  • GU(glibc) 版本 2.25 或更高版本。

  • 您必须运行Amazon IoT Greengrass作为 root 用户的核心软件。使用sudo,例如.

  • 运行 root 用户Amazon IoT Greengrass核心软件,例如root,必须具有运行权限sudo与任何用户和任何群组共享。这些区域有:/etc/sudoers文件必须授予此用户运行权限sudo和其他群体一样。用户在中的权限/etc/sudoers应类似于以下示例:

    root ALL=(ALL:ALL) ALL
  • 核心设备必须能够对一组端点和端口执行出站请求。有关更多信息,请参阅 允许设备通过代理或防火墙进行流量

  • 这些区域有:/tmp必须使用以下命令挂载目录exec权限。

  • 以下所有 shell 命令:

    • ps -ax -o pid,ppid

    • sudo

    • sh

    • kill

    • cp

    • chmod

    • rm

    • ln

    • echo

    • exit

    • id

    • uname

    • grep

  • 您的设备可能还需要以下可选 shell 命令:

    • (可选)systemctl。此命令用于设置Amazon IoT Greengrass核心软件即系统服务。

    • (可选)useradd,groupadd,以及usermod. 这些命令用于设置ggc_user系统用户和ggc_group系统组。

    • (可选)mkfifo。此命令用于将 Lambda 函数作为组件运行。

  • 要为组件进程配置系统资源限制,您的设备必须运行 Linux 内核版本 2.6.24 或更高版本。

  • 要运行 Lambda 函数,您的设备必须满足其他要求。有关更多信息,请参阅 Lambda 函数的要求

Windows
  • 使用Amazon Web Services 区域支持Amazon IoT Greengrass V2. 有关受支持的区域列表,请参阅Amazon IoT Greengrass V2终端节点和配额在里面Amazon一般参考.

  • 至少 256 MB 的磁盘空间Amazon IoT Greengrass核心 此要求不包括部署到核心设备的组件。

  • 至少分配给 160 MB RAMAmazon IoT Greengrass核心 此要求不包括在核心设备上运行的组件。有关更多信息,请参阅 使用 JVM 选项控制内存分配

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在路径设备上的系统变量。要使用 Java 开发自定义组件,必须安装 Java 开发工具包 (JDK)。我们建议ACorretto on 11要么OpenJDK 11.

    注意

    使用 2.5.0Greengrass,必须使用 64 位版本的 Java 运行时环境 (JRE)。Greengrass nucleus 版本 2.5.1 支持 32 位和 64 位 JRE。

  • 安装的用户Amazon IoT Greengrass核心软件必须是管理员。

  • 你必须安装Amazon IoT Greengrass核心软件即系统服务。指定--setup-system-service true安装软件时。

  • 每个运行组件进程的用户都必须存在于 LocalSystem 账户,并且用户名和密码必须在 Credential Manager 实例中 LocalSystem 账户。当您按照以下说明进行操作时,可以设置此用户安装Amazon IoT Greengrass核心软件.

  • 核心设备必须能够对一组端点和端口执行出站请求。有关更多信息,请参阅 允许设备通过代理或防火墙进行流量

Lambda 函数的要求

您的设备必须满足以下要求才能运行 Lambda 函数:

  • 基于 Linux 的操作系统。

  • 您的设备必须具有mkfifoshell

  • 您的设备必须运行 Lambda 函数所需的编程语言库。您必须在设备上安装所需的库并将其添加到PATH环境变量。

    • Python版本 3.9 适用于使用 Python 3.9 运行时的函数。

    • Python版本 3.8 适用于使用 Python 3.8 运行时的函数。

    • 适用于使用 Python 3.7 运行时的函数的 Python 版本 3.7。

    • 适用于使用 Python 2.7 运行时的函数的 Python 版本 2.7。

    • Node.js版本 14.x 适用于使用 Node.js 14.x 运行时的函数。

    • 适用于使用 Node.js 12.x 运行时的函数的 Node.js 版本 12.x。

    • Node.js版本 10.x 适用于使用 Node.js 10.x 运行时的函数。

    • Java版本 11 或更高版本适用于使用 Java 11 运行时的函数。

    • 适用于使用 Java 8 运行时的函数的 Java 版本 8 或更高版本。

    有关更多信息Amazon IoT Greengrass对 Lambda 运行时的支持,请参阅运行Amazon Lambda功能.

  • 要运行容器化 Lambda 函数,您的设备必须满足以下要求:

    • Linux 内核 4.4 或更高版本。

    • 内核必须支持c组v1,并且必须启用并装载以下 cgroups:

      • 这些区域有:记忆cgroup forAmazon IoT Greengrass为容器化 Lambda 函数设置内存限制。

      • 这些区域有:设备cgroup 用于容器化 Lambda 函数访问系统设备或卷。

      这些区域有:Amazon IoT Greengrass核心软件不支持 cgroups v2。

      要满足此要求,请使用以下 Linux 内核参数启动设备。

      cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
      提示

      在 Raspberry Pi 上,编辑/boot/cmdline.txt文件以设置设备的内核。

    • 您必须在设备上启用以下 Linux 内核配置:

      • 命名空间:

        • CONFIG_IPC_NS

        • CONFIG_UTS_NS

        • CONFIG_USER_NS

        • CONFIG_PID_NS

      • Cgroups:

        • CONFIG_CGROUP_DEVICE

        • CONFIG_CGROUPS

        • CONFIG_MEMCG

      • 其他:

        • CONFIG_POSIX_MQUEUE

        • CONFIG_OVERLAY_FS

        • CONFIG_HAVE_ARCH_SECCOMP_FILTER

        • CONFIG_SECCOMP_FILTER

        • CONFIG_KEYS

        • CONFIG_SECCOMP

        • CONFIG_SHMEM

      提示

      查看 Linux 发行版的文档以了解如何验证和设置 Linux 内核参数。您还可以使用Amazon IoT Device Tester为了Amazon IoT Greengrass以验证您的设备是否满足这些要求。有关更多信息,请参阅 使用Amazon IoT Device Tester为了Amazon IoT GreengrassV2

Windows 设备的功能注意事项

一段时间Amazon IoT GreengrassWindows 设备目前不支持这些功能。查看功能差异以确认 Windows 设备是否满足您的要求。有关更多信息,请参阅 不同操作系统的 Greengrass 功能兼容性

设置Amazon Web Services 账户

如果您还没有 Amazon Web Services 账户,请完成以下步骤来创建一个。

注册 Amazon Web Services 账户

  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

    当您注册Amazon Web Services 账户,一个Amazon Web Services 账户根用户已创建。root 用户有权访问所有Amazon Web Services和账户中的资源。作为安全实践为管理用户分配管理访问权限,并且只使用 root 用户执行需要根用户的任务.

自行创建管理员用户并将该用户添加到管理员组(控制台)

  1. 选择 Root user(根用户)并输入您的 Amazon Web Services 账户 电子邮件地址,以账户拥有者身份登录 IAM 控制台。在下一页上,输入您的密码。

    注意

    强烈建议您遵守以下使用 Administrator IAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。

  2. 在导航窗格中,选择 Users(用户),然后选择 Add users(添加用户)。

  3. 对于 User name(用户名),输入 Administrator

  4. 选中 Amazon Web Services Management Console access (Amazon Web Services Management Console 管理控制台访问)旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

  5. (可选)默认情况下,Amazon要求新用户在首次登录时创建新密码。您可以清除 User must create a new password at next sign-in(用户必须在下次登录时创建新密码)旁边的复选框以允许新用户在登录后重置其密码。

  6. 选择 Next:。Permissions (下一步:权限)

  7. 设置权限下,选择将用户添加到组

  8. 选择创建组

  9. Create group(创建组)对话框中,对于 Group name(组名称),输入 Administrators

  10. 选择 Filter policies(筛选策略),然后选择 Amazon managed - job function(Amazon 托管 – 工作职能)以筛选表内容。

  11. 在策略列表中,选中AdministratorAccess. 然后选择 Create group(创建组)。

    注意

    您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 Amazon Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程第 1 步中的说明进行操作。

  12. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh(刷新)以在列表中查看该组。

  13. 选择 Next:。标签

  14. (可选) 通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅 IAM 用户指南中的标记 IAM 实体

  15. 选择 Next:。审核以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user(创建用户)。

您可使用这一相同的流程创建更多组和用户,并允许您的用户访问 Amazon Web Services 账户 资源。要了解有关使用策略限制用户对特定 Amazon 资源的权限的信息,请参阅访问管理示例策略