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

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

Amazon Lambda 与 E Amazon Snowball dge 一起使用

Amazon Lambda powered by Amazon IoT Greengrass 是一项计算服务,可让您在 Snowball Edge 设备上本地运行无服务器代码(Lambda 函数)。您可以使用 Lambda 通过消息队列遥测传输 (MQTT) 消息在 Snowball Edge 设备上调用 Lambda 函数,在 Lambda 函数中运行 Python 代码,然后使用它们在云中调用公共服务端点。 Amazon 要在 Snowball Edge 设备上使用 Lambda 函数,您必须在支持的中创建 Snowball Edge 任务。 Amazon Web Services 区域 Amazon IoT Greengrass有关有效内容的列表 Amazon Web Services 区域,请参见Amazon IoT Greengrass中的 Amazon Web Services 一般参考。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 可以在中编写无服务器代码(Lambda 函数)。 Amazon Web Services 云然后,他们就可以很方便地将此代码部署到设备以便本地执行应用程序。

与 Snowball Edge Amazon IoT Greengrass 一起使用时,需要理解以下 Amazon IoT Greengrass 概念:

  • Amazon IoT Greengrass 要求 — 有关要求的 Amazon IoT Greengrass 完整列表,请参阅《Amazon IoT Greengrass Version 2 开发人员指南》中的要求

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

    要在 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 — 用于 Snowball Edge Amazon IoT Greengrass 上提供支持的 Lambda 函数的高级编程语言。 Amazon IoT Greengrass 支持 Python 版本 3.8.x。

将 Lambda 函数部署到 Snowball Edge 设备

要在 Amazon IoT Greengrass 群组中的 Snowball Edge 设备上运行 Lambda 函数,请将该函数作为组件导入。有关使用 Amazon IoT Greengrass 控制台将函数作为组件导入的完整信息,请参阅 Amazon IoT Greengrass Version 2 开发者指南中的 “将 Lambda 函数作为组件(控制台)导入”。

  1. 在 Amazon 物联网控制台的 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. 选择部署