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

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

设置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 11

  • Windows Server 2019

  • Windows Server 2022

注意

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

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

要构建基于 Linux 的自定义操作系统,可以使用BitBake的食谱Amazon IoT Greengrass V2在里面meta-aws项目。这个meta-aws项目提供了你可以用来构建的食谱Amazon中的边缘软件功能嵌入式 Lin使用构建的系统OpenEmbedded和 Yocto 项目构建框架。这个Yocto 项目是一个开源协作项目,无论硬件架构如何,都可以帮助您为嵌入式应用程序构建基于 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 Greengrass V2

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

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

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

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在路径设备上的环境变量。要使用 Java 开发自定义组件,必须安装 Java 开发套件 (JDK)。我们建议你使用亚马逊 Corretto 11要么OpenJDK 11

  • GNU C 库(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核心软件即系统服务。

    • (可选)useraddgroupadd,以及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 Web Services 一般参考

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

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

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在路径设备上的系统变量。要使用 Java 开发自定义组件,必须安装 Java 开发套件 (JDK)。我们推荐亚马逊 Corretto 11要么OpenJDK 11

    注意

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

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

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

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

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

Lambda 函数要求

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

  • 基于 Linux 的操作系统。

  • 您的设备必须具有mkfifoshell 命令。

  • 您的设备必须运行 Lambda 函数所需的编程语言库。您必须在设备上安装所需的库并将其添加到PATH环境变量。Greengrass 支持所有 Lambda 支持的 Python、Node.js 和 Java 运行时版本。Greengrass 对已过时的 Lambda 运行时版本不施加任何额外限制。有关以下内容的更多信息Amazon IoT Greengrass对 Lambda 运行时的支持,请参见跑Amazon Lambda功能

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

    • Linux 内核 4.4 或更高版本。

    • 内核必须支持cgroupv1,并且必须启用并装载以下 cgroup:

      • 这个记忆cgroup 用于Amazon 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 Greengrass V2

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 账户根用户。根用户有权访问该账户中的所有 Amazon Web Services和资源。作为安全最佳实践,请 为管理用户分配管理访问权限,并且只使用根用户执行 需要根用户访问权限的任务

保护 IAM 用户

注册 Amazon Web Services 账户 后,启用多重身份验证(MFA)保护您的管理用户。有关说明,请参阅 IAM 用户指南中的为 为 IAM 用户(控制台)启用虚拟 MFA 设备

要授予其他用户访问您的 Amazon Web Services 账户 资源的权限,请创建 IAM 用户。为了保护您的 IAM 用户,请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。

有关创建和保护 IAM 用户的更多信息,请参阅 IAM 用户指南中的以下主题: