设置 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 Core 软件。

支持的平台

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

注意

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

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

要构建基于 Linux 的自定义操作系统,可以在项目 Amazon IoT Greengrass V2 中使用 BitBake 配方。meta-awsmeta-aws项目提供了一些方法,可用于在使用Yocto Project构建 Amazon 框架OpenEmbedded和Yocto Project构建框架构建的嵌入式Linux 系统中构建边缘软件功能。Yocto Pro ject 是一个开源协作项目,无论硬件架构如何,它都能帮助您为嵌入式应用程序构建基于 Linux 的自定义系统。在您的设备上 Amazon IoT Greengrass V2 安装、配置和自动运行 Amazon IoT Greengrass Core 软件的 BitBake 秘诀。

设备要求

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

注意

您可以使用 Amazon IoT Device Tester Amazon IoT Greengrass 来验证您的设备是否可以运行 Amazon IoT Greengrass Core 软件并与通信 Amazon Web Services 云。有关更多信息,请参阅 用 Amazon IoT Device Tester 于 Amazon IoT Greengrass V2

Linux
  • 使用支持Amazon Web Services 区域的 Amazon IoT Greengrass V2。有关支持的区域列表,请参见 Amazon Web Services 一般参考 中的 Amazon IoT Greengrass V2 端点和配额

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

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

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在设备上的PATH环境变量上可用。要使用 Java 开发自定义组件,必须安装 Java 开发套件 (JDK)。我们建议您使用 Amazon Corrett o 或JDK开放长期支持版本。需要版本 8 或更高版本。

  • GNUC 库 (glibc) 版本 2.25 或更高版本。

  • 您必须以 root 用户身份运行 Amazon IoT Greengrass Core 软件。例如sudo,使用。

  • 运行 Amazon IoT Greengrass Core 软件(例如root)的 root 用户必须具有sudo与任何用户和任何组一起运行的权限。该/etc/sudoers文件必须授予该用户以其他组sudo身份运行的权限。中用户的权限/etc/sudoers应类似于以下示例。

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

  • 必须使用exec权限装入该/tmp目录。

  • 以下所有 shell 命令:

    • ps -ax -o pid,ppid

    • sudo

    • sh

    • kill

    • cp

    • chmod

    • rm

    • ln

    • echo

    • exit

    • id

    • uname

    • grep

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

    • (可选)systemctl。此命令用于将 Amazon IoT Greengrass Core 软件设置为系统服务。

    • (可选)useraddgroupadd、和usermod。这些命令用于设置ggc_user系统用户和ggc_group系统组。

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

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

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

Windows
  • 使用支持Amazon Web Services 区域的 Amazon IoT Greengrass V2。有关支持的区域列表,请参见 Amazon Web Services 一般参考 中的 Amazon IoT Greengrass V2 端点和配额

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

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

  • Java 运行时环境 (JRE) 版本 8 或更高版本。Java 必须在设备上的PATH系统变量上可用。要使用 Java 开发自定义组件,必须安装 Java 开发套件 (JDK)。我们建议您使用 Amazon Corrett o 或JDK开放长期支持版本。需要版本 8 或更高版本。

    注意

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

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

  • 您必须将 Amazon IoT Greengrass Core 软件作为系统服务进行安装。指定--setup-system-service true何时安装软件。

  • 每个运行组件进程的用户都必须存在于 LocalSystem 账户中,并且该用户的名字和密码必须位于该 LocalSystem 账户的 Credential Manager 实例中。当你按照说明安装 C Amazon IoT Greengrass ore 软件时,你可以设置这个用户。

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

Lambda 函数要求

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

  • 基于 Linux 的操作系统。

  • 您的设备必须有 mkfifo shell 命令。

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

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

    • Linux 内核 4.4 或更高版本。

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

      • 用于为 Amazon IoT Greengrass 容化 Lambda 函数设置内存限制的内存 cgroup。

      • 设备 cg roup 用于容器化 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 设备的功能注意事项

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

设置一个 Amazon Web Services 账户

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

报名参加 Amazon Web Services 账户
  1. 打开https://portal.aws.amazon.com/billing/注册。

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

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

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

保护IAM用户

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

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

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