一般性问题

什么是 AWS Greengrass?

AWS Greengrass 是允许您以安全方式在互联设备上运行本地计算、消息收发、数据缓存、同步和 ML Inference 功能的软件。借助 AWS Greengrass,连接的设备可以运行 AWS Lambda 函数、基于机器学习模型执行预测,保持设备数据同步以及与其他设备安全通信 – 甚至在没有连接互联网的情况下也可实现这些功能。

AWS Greengrass 可将 AWS 无缝扩展至设备,因此可以在本地操作其生成的数据,同时仍可将云用于管理、分析和持久存储。借助 Greengrass,您可以使用熟悉的语言和编程模型,在云中创建设备软件,然后再将其部署到您的设备。您可对 AWS Greengrass 进行编程,使之可筛选设备数据,并仅将必要信息传输回云中。

有关 AWS Greengrass 功能的更多信息,请单击此处

ML Inference 是 AWS Greengrass 的一项功能,它可以使用在云中构建和训练的模型轻松地在 Greengrass 设备上本地执行机器学习推理。要了解有关 Greengrass ML Inference 的更多信息,请单击此处

如何开始使用 Greengrass?

请单击此处,查阅 Greengrass 入门指南。您可以单击此处购买 Raspberry Pi,或参阅下面的内容以查看其他合格设备的列表以及一系列详细的技术依赖关系。

AWS Greengrass 服务可以在哪些 AWS 地区使用?

目前,AWS Greengrass 可在以下 AWS 地区使用:

• 美国东部(弗吉尼亚北部)
• 美国西部(俄勒冈)
• 欧洲(法兰克福)
• 亚太地区 (悉尼)
• 亚太地区 (东京)

不管您身处哪个地理位置,只要您能够访问上述任何一个 AWS 地区,就可以使用 AWS Greengrass。

AWS Greengrass 软件有哪些主要组件? 每个组件的作用是什么?

AWS Greengrass 由三个软件发行版组成:AWS Greengrass Core、AWS IoT 设备 SDK 和 AWS Greengrass SDK。下面的图表对这三个软件发行版进行了比较。

AWS Greengrass 还与 Amazon FreeRTOS 一起使用。有关 Greengrass 和 Amazon FreeRTOS 的详细信息,请参阅“Greengrass 连接到 Amazon FreeRTOS 和其他设备”的“常见问题”部分。

  目的 运行位置
AWS Greengrass 核心 提供本地服务(计算、消息收发、状态、安全),并在本地与运行 AWS IoT 设备 SDK 的设备通信。 运行通用操作系统(如 Linux)的基于 CPU 的设备(x86 或 ARM)
AWS IoT 设备软件开发工具包 允许设备与 Greengrass Core 在本地交互 几乎所有支持 C++ 或 Python 2.7 的设备。  同时包含在 Amazon FreeRTOS 中
AWS Greengrass 开发工具包 允许 Lambda 函数与 Greengrass Core 中的本地服务进行交互 在部署到 Greengrass Core 的 Lambda 函数中

AWS Greengrass 支持哪些 Lambda 开发语言?

Greengrass 支持以下语言编写的 Lambda 函数:

  • Python 2.7
  • Node.JS 6.10
  • Java 8
  • C
  • C++
  • 支持导入 C 库的任何语言。​ 

哪些 Lambda 可以部署到 Greengrass?

使用 Python 2.7、Node.JS 6.10 或 Java 8 Lambda Runtime 的任何 Lambda 都可以部署到 Greengrass Core。部署到 Greengrass 的 Lambda 必须与 Greengrass Core 软件开发工具包打包在一起。此外,您还可以选择将 AWS 开发工具包添加到您的 Lambda 软件包中,以便轻松与 DynamoDB 等 AWS 服务进行交互。

请注意:当 Greengrass Core 处于脱机模式时,您的 Lambda 所依赖的一些云服务 (例如,DynamoDB) 将不能供您的 Lambda 函数使用,并且这些服务在脱机模式下无法调用 API。此外,如果您在同一软件包中同时包含 Greengrass Core 开发工具包和 AWS 开发工具包,则您的 Lambda 函数需要为每种开发工具包使用相应的命名空间。

本地资源访问

什么是 Greengrass 本地资源?

“本地资源”是指 Greengrass 主机上物理存在的总线和外围设备,或 Greengrass 主机操作系统上的文件系统卷。例如,若要与通过 Modbus/CANBUS 连接的设备进行通信,Greengrass Lambda 函数需要访问该设备上的串行端口。本地资源是在 Greengrass 组范围内定义的,Greengrass 组中所有的 Lambdas 都可以使用已定义的本地资源。

什么时候可以访问本地资源?

Greengrass 本地资源允许 Lambda 函数与硬件(如传感器和执行器)安全交互。例如,您的 Lambda 函数可以从设备上的相机读取视频流,或将命令和控制发送到 GPIO。

本地资源访问功能是否免费?

该功能是 Greengrass 的一部分,将免费提供给 Greengrass 客户。

ML Inference

什么是 Greengrass ML Inference?

Greengrass ML Inference 是一种 Greengrass 本地机器学习 (ML) 推理功能,可让您更快速、更轻松地在 Greengrass 设备上部署和运行机器学习模型。开发人员现在可以将经过云训练的机器学习模型作为资源添加到 Greengrass 组,将其部署到目标设备,并将其应用到本地生成的数据以供本地推理。该功能包含以下内容:与 Amazon SageMaker 的集成,可查找经过 SageMaker 训练的模型;新的 Greengrass“机器学习”资源类型,用于向 Greengrass 设备声明并部署经过云训练的模型;以及用于 NVIDIA Jetson NX2、Intel Atom 和 Raspberry Pi 设备的预先构建的 MXNet 和 TensorFlow。

如何使用不在 Amazon SageMaker 中训练的 ML 模型?

您可将 ML 模型以 .tar.gz 和 .zip 格式放入 S3 中,以将其带到其他地方训练。然后,让 Greengrass 知道 S3 URI 和 Greengrass 将部署到目标设备。

AWS Greengrass ML Inference 服务在哪些 AWS 区域可用?

目前,AWS Greengrass ML Inference 在以下 AWS 区域可用:

  • 美国东部(弗吉尼亚北部)
  • 美国西部(俄勒冈)
  • 亚洲(东京)
  • 亚洲(悉尼)
  • 欧洲(法兰克福)
  • 欧洲 (都柏林)

不论您所处的地理位置如何,只要您能够访问上述任何一个 AWS 区域,就可以使用 AWS Greengrass ML Inference。

协议适配器

如何能将 OPC-UA 协议用于 AWS Greengrass?

Greengrass 现在支持 OPC-UA,这是一个常用的工业通信信息交换标准。由于 Greengrass 支持 OPC-UA,您现在可以轻松地从工业设备获取和处理消息,并根据您定义的业务规则将消息发送给其他设备或云。我们的 OPC-UA 实施是安全的,支持基于证书的验证。它基于一个众所周知的开源实施,并且完全可以根据您的特定用例进行定制。

是提供自己的 OPC-UA 协议实施,还是实施其他的协议?

对 Greengrass 而言,这两种方法都可以,你既可以使用这个相同的架构以提供自己的 OPC-UA 实施,也可以实施自己对自定义、传统和专有消息收发协议的支持。 

如何使用 Greengrass 实施替代协议?

由于在 Greengrass Cores 上运行的 Lambda 函数可以访问网络资源,因此您可以使用 Lambda 实施在 TCP-IP 之上实施的任何协议支持。另外,您还可以利用 Greengrass 本地资源访问来实现对需要访问硬件适配器/驱动程序的协议的支持。

无线 (OTA) 更新

Greengrass 无线 (OTA) 更新是什么?

AWS 将不时发布 Greengrass Core 软件的更新版本以提供下列优势:

  • 引入新的或改进的功能
  • 漏洞修复
  • 提高安全性

使用 Greengrass 无线 (OTA) 更新,客户可以获得所有这些优势,无需手动下载并重新安装 Greengrass Core 软件。

是否必须使用 Greengrass OTA 更新?

不。您始终都可以选择手动下载和安装更新,或者执行其他的软件部署过程。

将如何获知有新的 Greengrass Core 版本可用?

Greengrass Core 的新版本可用时,我们将在 AWS Greengrass 软件开发人员论坛公布。可以在此处找到该论坛的链接。

Greengrass Core 平台兼容性

什么是 AWS Greengrass Core 设备? 这类设备必须达到哪些最低硬件规格?

AWS Greengrass Core 软件可在网络集线器、网关或其他设备上运行,能够自动与云同步和交互。Greengrass Core 旨在配备通用处理器的设备上运行,这种处理器非常强大,能够运行 Linux 等通用操作系统。Greengrass 至少需要 1GHz 的计算频率 (ARM 或 X86)、128MB RAM 以及其他资源,才能根据使用案例满足所需操作系统、消息吞吐量和 AWS Lambda 执行的要求。Greengrass Core 可运行在各种设备上,从 Raspberry Pi 到服务器级设备。

哪些 CPU 架构和操作系统与 AWS Greengrass Core 兼容?

以下操作系统和 CPU 架构与 Greengrass Core 兼容:

  • 架构:ARMv7l;操作系统:Linux;发行版:Raspian
  • 架构:x86_64;操作系统:Linux;发行版:Amazon Linux
  • 架构:x86_64;操作系统:Linux;发行版:Ubuntu 14.04 – 16.04
  • 架构:ARMv8 (AArch64);操作系统:Linux;发行版:Ubuntu 14.04 – 16.04

哪些设备与 AWS Greengrass Core 兼容?如何才能快速开始体验?

Greengrass Core 与符合下述技术要求的大多数设备兼容。如果想快速开始体验,您可以从我们的合作伙伴那里购买以下设备之一:

经 Greengrass Core 版本 1.0.0 (2016 年 6 月 7 日发布) 测试

经 Greengrass Core 版本 1.1.0 (2017 年 9 月 20 日发布) 测试

经 Greengrass Core 版本 1.3.0(2017 年 11 月 29 日发布)测试

经 Greengrass Core 版本 1.5.0(2018 年 3 月 29 日发布)测试

Greengrass 能在低于 1GHz 的硬件上运行吗?

AWS Greengrass Core 软件已由我们的合作伙伴进行测试,可在以下设备上运行:

经 Greengrass Core 版本 1.0.0 (2016 年 6 月 7 日发布) 测试

SAMA5D2 MPU 系列;SAMA5D2 产品

经 Greengrass Core 版本 1.1.0 (2017 年 9 月 20 日发布) 测试

Digi CC-WMX6UL-START;ConnectCore 6UL 入门套件

Digi CC-WMX6UL-KIT;ConnectCore 6UL JSK

运行 Greengrass Core 需要哪些详细的技术依赖关系?

AWS Greengrass Core 可在满足最低硬件要求的设备上运行各种 CPU 架构和操作系统。以下是运行 Greengrass Core 所需的依赖关系。

1.所需的软件包和配置

  • SQLite – 版本 3 或更高版本
  • Glibc 库 – 版本 2.14
  • Linux 内核:虽然多个内核版本可以与 Greengrass 一起使用,但为了获得最佳的安全性和性能,我们建议使用尽可能新的且包含 Greengrass 所需内核配置的 Linux 内核版本
  • bash
  • 系统信任存储
  • boto3 (最新版本)
  • botocore (最新版本)
  • OpenSSL 1.0.2 或更高版本
  • 运行 Python Lambdas 时需要:Python – 版本 2.7 或更高
  • 运行 Java Lambdas 时需要:Java 8
  • 运行 Node.js Lambdas 时需要:Node.js 6.10

2.内核配置

  • 密钥保留:CONFIG_KEYS
  • Mqueue:CONFIG_POSIX_MQUEUE
  • Overlay FS:CONFIG_OVERLAY_FS
  • Seccomp Arch Filter:CONFIG_HAVE_ARCH_SECCOMP_FILTER
  • Seccomp Filter:CONFIG_SECCOMP_FILTER
  • Seccomp:CONFIG_SECCOMP

3.命名空间的内核配置 – 构建内核时必须启用以下这些配置:

  • IPC 隔离:CONFIG_IPC_NS
  • UTS 隔离:CONFIG_UTS_NS
  • 用户隔离:CONFIG_USER_NS
  • PID 隔离:CONFIG_PID_NS

4.Cgroup 的内核配置 – 构建内核时必须启用以下这些配置:

  • 启用 cgroup:CONFIG_CGROUPS
  • 启用 Memory cgroup:CONFIG_MEMCG
  • 启用 devices cgroup:CONFIG_CGROUP_DEVICE

 

将 Greengrass 连接到 Amazon FreeRTOS 和其他设备

如何将设备本地连接到 AWS Greengrass Core?

可以使用 Amazon FreeRTOS 或 AWS IoT 设备 SDK 在本地将设备连接到 AWS Greengrass Core。AWS Greengrass 发现可通过 C++ 和 Python 2.7 在 AWS IoT 设备开发工具包上使用。有关更多信息,请参阅 AWS Greengrass 用户指南。可以在您的 Amazon FreeRTOS 源代码中使用 Greengrass Discovery 库,查找并连接 AWS Greengrass 核心设备。有关更多信息,请参阅 Amazon FreeRTOS 用户指南

什么语言通过 AWS IoT 设备 SDK 支持 Greengrass?

AWS Greengrass 发现可通过 C++ 和 Python 2.7 在 AWS IoT 设备开发工具包上使用。有关更多信息,请参阅 AWS Greengrass 用户指南

什么是 Amazon FreeRTOS?

Amazon FreeRTOS (a:FreeRTOS) 是一个操作系统,使基于微控制器的边缘设备易于编程、部署、保护和维护。Amazon FreeRTOS 基于 FreeRTOS 内核(这是用于微控制器的常见开源操作系统),它包含软件库,可以轻松安全地在本地将设备连接到云并远程更新它们。通过 Amazon FreeRTOS 控制台,可以轻松选择和下载与用例相关的软件组件。Amazon FreeRTOS Qualification Program 确保您选择的微控制器完全支持 Amazon FreeRTOS 的功能。Amazon FreeRTOS 有助于确保基于微控制器的设备的安全性,同时支持数据加密和密钥管理。而且,Amazon FreeRTOS 设备连接到 AWS Greengrass Core 设备,使 Greengrass Group 中的多个 Amazon FreeRTOS 设备可以轻松连接。请单击此处,详细了解 Amazon FreeRTOS。

Amazon FreeRTOS 可以与 AWS Greengrass 一起使用吗?

是的。Amazon FreeRTOS 设备可以直接连接到云或连接到 Greengrass。Amazon FreeRTOS 不要求使用 AWS Greengrass。Amazon FreeRTOS 在 IoT 终端上运行,通常负责 IoT 拓扑中的“感知”和“行为”。

AWS Greengrass 和 Amazon FreeRTOS 有何区别?

AWS Greengrass 是一种允许您以安全方式在互联设备上运行本地计算、消息收发、数据缓存、同步和 ML 推理功能的软件。借助 AWS Greengrass,互联设备可以运行 AWS Lambda 函数、同步设备数据,以及与其他设备安全通信 – 甚至无需连接互联网。通过使用 AWS Lambda,Greengrass 可以确保您的 IoT 设备能够快速响应本地事件,使用正在 Greengrass Core 上运行的 Lambda 函数以与本地资源进行交互,执行间歇性连接,通过无线更新保持更新状态,最大限度地降低将 IoT 数据传输到云的成本。

Amazon FreeRTOS 是用于微控制器的操作系统,在边缘运行,一般不支持可运行 AWS Greengrass 的芯片组。这些微控制器设备可用于各种 IoT 终端,如健身追踪器、起搏器、电表、汽车传动设备和传感器网络。Amazon FreeRTOS 设备无法运行 Greengrass Core,但可以触发 Lambda 函数在 Greengrass Core 设备上的执行。

这两个设备的硬件要求和操作系统是不同的。

  Amazon FreeRTOS AWS Greengrass
软件 操作系统,在微控制器上运行 Linux 设备的运行时和 Greengrass 感知设备的 SDK
硬件要求 >64KB RAM >128MB RAM
类别 嵌入式系统、IoT 终端 边缘设备、本地网关
使用案例 基于微控制器的设备 工业自动化系统、无线路由器、智能手机

详细了解 AWS Greengrass 定价

访问定价页面
准备好开始使用了吗?
注册
还有更多问题?
联系我们