将 Amazon Lambda 与 Amazon Snowball Edge 配合使用 - Amazon Snowball Edge 开发者指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 Amazon Lambda 与 Amazon Snowball Edge 配合使用

由 Amazon IoT Greengrass 提供支持的 Amazon Lambda 是一项计算服务,可让您在 Snowball Edge 设备上本地运行无服务器代码(Lambda 函数)。您可以使用 Lambda 通过消息队列遥测传输 (MQTT) 消息在 Snowball Edge 设备上调用 Lambda 函数,运行 Lambda 函数中的 Python 代码,并用它们在云中调用公共 Amazon 服务端点。要在 Snowball Edge 设备上使用 Lambda 函数,您必须在 Amazon IoT Greengrass 支持的 Amazon Web Services 区域中创建 Snowball Edge 作业。有关有效 Amazon Web Services 区域的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon IoT Greengrass。Snowball Edge 上的 Lambda 在提供 Lambda 和 Snowball Edge 设备可用的区域。

注意

如果您为每个函数分配建议的最少 128MB 内存,则单个作业中最多可以有七个 Lambda 函数。

在您开始之前

在使用 Python 语言在 Snowball Edge 上创建 Lambda 函数之前,建议您熟悉以下服务、概念和相关主题。

Amazon IoT Greengrass 的先决条件

Amazon IoT Greengrass 是一个软件,它将 Amazon Web Services 云功能扩展到本地设备。Amazon IoT Greengrass 使本地设备可以更靠近信息源收集和分析数据,同时在本地网络上安全地相互通信。具体来说就是,使用 Amazon IoT Greengrass 的开发人员可以在 Amazon Web Services 云中编写无服务器代码(Lambda 函数)。然后,他们就可以很方便地将此代码部署到设备以便本地执行应用程序。

在将 Amazon IoT Greengrass 与 Snowball Edge 结合使用时,务必理解以下 Amazon IoT Greengrass 概念:

  • Amazon IoT Greengrass 要求 – 有关 Amazon IoT Greengrass 要求的完整列表,请参阅 https://docs.amazonaws.cn/greengrass/latest/developerguide/gg-gs.html#gg-requirements 开发人员指南 中的Amazon IoT Greengrass Version 2要求

  • Amazon IoT Greengrass Core – 下载 Amazon IoT Greengrass Core 软件并将其安装在设备上运行的 EC2 实例上。请参阅本指南中的在 Amazon EC2 实例上使用 Amazon IoT Greengrass

    要在 Snowball Edge 设备上使用 Lambda 函数,您必须先在设备上的 Amazon EC2 实例上安装 Amazon IoT Greengrass 核心软件。您计划在 Snowball Edge 设备上使用的 Lambda 函数必须由用于在 Snowball Edge 设备上安装 Amazon IoT Greengrass 的同一个账户创建。有关在 Snowball Edge 设备上安装 Amazon IoT Greengrass 的信息,请参阅使用 Amazon IoT Greengrass 在与 Amazon EC2 兼容的实例上运行预安装的软件

  • Amazon IoT Greengrass 组 – Snowball Edge 是 Amazon IoT Greengrass 组的一部分,是该组的核心设备。有关组的更多信息,请参阅《Amazon IoT Greengrass 开发人员指南》中的 Amazon Greengrass IoT Groups

  • MQTT – Amazon IoT Greengrass 使用行业标准的轻量级 MQTT 协议在组内通信。您的 Amazon IoT Greengrass 组中任何与 MQTT 兼容的设备或软件都可以调用 MQTT 消息。如果您定义了相关的 MQTT 消息,则这些消息可以调用 Lambda 函数。

Amazon Lambda 的先决条件

Amazon Lambda 是一项计算服务,可使您无需预配置或管理服务器即可运行代码。在将 Lambda 与 Snowball Edge 结合使用时,务必理解以下 Lambda 概念:

  • Lambda 函数 – 您的自定义代码,上传并发布到 Lambda 并在 Snowball Edge 上使用。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的 Lambda 函数

  • Lambda 控制台 – 您可以在此控制台中上传、更新并发布用于在 Snowball Edge 上运行的 Python 语言的 Lambda 函数。有关 Lambda 控制台的更多信息,请参阅《Amazon Lambda 开发人员指南》中的 Lambda 控制台

  • Python – 用于您的 Lambda 函数的高级编程语言,由 Snowball Edge 上的 Amazon IoT Greengrass 提供支持。Amazon IoT Greengrass 支持 Python 版本 3.8.x。

将 Lambda 函数部署到 Snowball Edge 设备

要在 Amazon IoT Greengrass 组中的 Snowball Edge 设备上运行 Lambda 函数,请将该函数作为组件导入。有关使用 Amazon IoT Greengrass 控制台将函数作为组件导入的完整信息,请参阅《Amazon IoT Greengrass Version 2 开发人员指南》中的 Import a Lambda function as a component (console)

  1. 在 Amazon IoT 控制台中的 Greengrass 组件页面上,选择创建组件

  2. 组件源中,选择导入 Lambda 函数。在 Lambda 函数中,选择函数的名称。在 Lambda 函数版本中,选择函数的版本。

  3. 要让函数订阅其可以采取操作的消息,请选择添加事件源并选择事件。在超时(秒)中,提供以秒为单位的超时时间。

  4. 固定中,选择是否固定您的函数。

  5. 选择创建组件

  6. 选择部署

  7. 部署中,选择添加到现有部署,然后选择您的 Greengrass 组。选择下一步

  8. 公有组件中,选择以下组件:

    • aws.greengrass.Cli

    • aws.greengrass.LambdaLauncher

    • aws.greengrass.LambdaManager

    • aws.greengrass.LambdaRuntimes

    • aws.greengrass.Nucleus

  9. 选择部署