将 Lambda 函数作为组件导入(控制台) - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

将 Lambda 函数作为组件导入(控制台)

当您使用Amazon IoT Greengrass控制台要创建 Lambda 函数组件,请导入现有的Amazon Lambda函数,然后将其配置为创建在 Greengrass 设备上运行的组件。

在开始之前,请查看要求在 Greengrass 设备上运行 Lambda 函数。

第 1 步:选择要导入的 Lambda 函数

  1. Amazon IoT Greengrass控制台导航菜单,选择组件.

  2. 在存储库的组件页面上,选择创建组件.

  3. 在存储库的创建组件页面,下组件信息,选择导入 Lambda 函数.

  4. InLambda 函数,搜索并选择要导入的 Lambda 函数。

    Amazon IoT Greengrass使用 Lambda 函数的名称创建组件。

  5. InLambda 函数版本中,选择要导入的版本。您不能像这样选择 Lambda 别名$LATEST.

    Amazon IoT Greengrass使用 Lambda 函数版本作为有效语义版本创建组件。例如,如果您的函数版本是 3,则组件版本将变为 3.0.0

第 2 步:配置 Lambda 函数参数

在存储库的创建组件页面,下Lambda 函数配置中,配置以下参数以用来运行 Lambda 函数。

  1. (可选)添加 Lambda 函数订阅其工作消息的事件源列表。您可以指定事件源以订阅本地发布/订阅消息以及Amazon IoT CoreMQTT 消息。Lambda 函数在收到来自事件源的消息时调用。

    注意

    要将此函数订阅来自其他 Lambda 函数或组件的消息,请部署旧版订阅路由器组件当您部署此 Lambda 函数组件时。当您部署旧版订阅路由器组件时,请指定 Lambda 函数使用的订阅。

    UNDER事件来源,请执行以下操作以添加事件源:

    1. 对于您添加的每个事件源,请指定以下选项:

      • 主题— 要订阅消息的主题的名称。

      • 类型— 事件源的类型。

    2. 要添加另一个事件源,请选择添加事件源然后重复上一步。要删除事件源,请选择Remove在要删除的事件源旁边。

  2. 适用于超时(秒),输入非固定 Lambda 函数在超时之前可以运行的最长时间(以秒为单位)。默认值为 3 秒。

  3. 适用于Pinned中,选择 Lambda 函数组件是否已固定。默认值为True.

    • 固定(或长时间生存)Lambda 函数在Amazon IoT Greengrass在自己的容器中启动并保持运行。

    • 非固定(或按需)Lambda 函数仅在收到工作项时启动,在其空闲时间达到指定的最长空闲时间之后可退出。如果该函数有多个工作项,Amazon IoT Greengrass核心软件创建该函数的多个实例。

  4. (可选)下其他参数中,设置以下 Lambda 函数参数。

    • 状态超时(秒)— Lambda 函数组件向 Lambda 管理器组件发送状态更新的时间间隔(以秒为单位)。此参数仅适用于固定函数。默认值为 60 秒。

    • 最大队列大小— Lambda 函数组件的消息队列的最大大小。这些区域有:Amazon IoT Greengrass核心软件将消息存储在 FIFO(先进先出)队列中,直到它可以运行 Lambda 函数来消耗每条消息。默认值为 1,000 条消息。

    • 实例的最大数量— 非固定 Lambda 函数可以同时运行的最大实例数。默认值为 100 个实例。

    • 最大空闲时间(秒)— 非固定 Lambda 函数在Amazon IoT Greengrass核心软件会停止其过程。默认值为 60 秒。

    • 编码类型— Lambda 函数支持的负载类型。从以下选项中进行选择:

      • JSON

      • 二进制

      默认值为 JSON。

  5. (可选)指定要在 Lambda 函数运行时传递给该函数的命令行参数列表。

    1. UNDER其他参数,处理参数,选择添加参数.

    2. 对于添加的每个参数,请输入要传递给函数的参数。

    3. 要删除参数,请选择Remove在要删除的论点旁边。

  6. (可选)指定 Lambda 函数运行时可用的环境变量。使用环境变量,您可以存储和更新配置设置,而无需更改函数代码。

    1. UNDER其他参数,环境变量,选择添加环境变量.

    2. 对于添加的每个环境变量,请指定以下选项:

      • 密钥— 变量名称。

      • — 此变量的默认值。

    3. 要删除环境变量,请选择Remove在要删除的环境变量旁边。

第 3 步:(可选)为 Lambda 函数指定支持的平台

所有核心设备都具有操作系统和体系结构的属性。在部署 Lambda 函数组件时,Amazon IoT Greengrass核心软件将您指定的平台值与核心设备上的平台属性进行比较,以确定该设备是否支持 Lambda 函数。

注意

在将 Greengrass 核心组件部署到核心设备时,您还可以指定自定义平台属性。有关更多信息,请参阅 。平台覆盖参数Greengrass 核组件.

UNDERLambda 函数配置、附加参数、平台,请执行以下操作以指定此 Lambda 函数支持的平台。

  1. 对于每个平台,指定以下选项:

    • 操作系统— 平台的操作系统的名称。目前,唯一支持的值是 linux

    • 架构— 平台的处理器架构。支持的值为:

      • amd64

      • arm

      • aarch64

      • x86

  2. 要添加另一个平台,请选择添加平台然后重复上一步。要删除受支持的平台,请选择Remove在要删除的平台旁边。

第 4 步:(可选)指定 Lambda 函数的组件依赖关系

组件依赖项识别其他Amazon-提供的组件或你的函数使用的自定义组件。当您部署 Lambda 函数组件时,部署包括这些依赖项,供您的函数运行。

重要

要导入您创建要在其上运行的 Lambda 函数Amazon IoT GreengrassV1,您必须为函数使用的功能(例如密码、本地阴影和流管理器)定义单个组件依赖关系。将这些组件定义为硬依赖项以便在依赖项更改状态时,Lambda 函数组件将会重新启动。有关更多信息,请参阅 导入 V1 Lambda 函数

UNDERLambda 函数配置、附加参数、组件依赖关系中,请完成以下步骤以指定 Lambda 函数的组件依赖关系。

  1. 选择添加依赖项.

  2. 对于您添加的每个组件依赖项,请指定以下选项:

    • 组件名称— 组件名称。例如,输入aws.greengrass.StreamManager以包括流管理器组件.

    • 版本要求— npm风格的语义版本约束,用于标识此组件依赖关系的兼容版本。您可以指定单个版本或一系列版本。例如,输入^1.0.0指定此 Lambda 函数取决于流管理器组件的第一个主要版本中的任何版本。有关语义版本约束的更多信息,请参阅npm semver 计算器.

    • 类型— 依赖项的类型。从以下选项中进行选择:

      • 硬性— 如果依赖项更改状态,Lambda 函数组件将会重新启动。这是默认选项。

      • 软性— 如果依赖项更改状态,Lambda 函数组件不会重新启动。

  3. 要删除组件依赖关系,请选择Remove在组件依赖关系旁边

第 5 步:(可选)在容器中运行 Lambda 函数

默认情况下,Lambda 函数在Amazon IoT GreengrassCore 软件。您还可以选择在没有任何隔离的情况下将 Lambda 函数作为进程运行(也就是说,在无容器模式)。

UNDERLinux 进程配置,对于隔离模式,从以下选项中进行选择以选择 Lambda 函数的容器化:

  • Greengrass 容器— Lambda 函数在容器中运行。这是默认选项。

  • 无容器— Lambda 函数作为进程运行,没有任何隔离。

如果您在容器中运行 Lambda 函数,请完成以下步骤以配置 Lambda 函数的流程配置。

  1. 配置内存量和系统资源(例如卷和设备)以供容器使用。

    UNDER容器参数中,执行以下操作。

    1. 适用于内存大小中,输入要分配给容器的内存大小。您可以在中指定内存大小MB要么Kb.

    2. 适用于只读系统文件夹,选择容器是否可以从设备的中读取信息。/sysfolder。默认值为False.

  2. (可选)配置容器化 Lambda 函数可以访问的本地卷。当你定义卷时,Amazon IoT Greengrass核心软件将源文件挂载到容器内的目标。

    1. UNDER,选择添加卷.

    2. 对于您添加的每个卷,请指定以下选项:

      • 物理卷— 核心设备上源文件夹的路径。

      • 逻辑卷— 容器中目标文件夹的路径。

      • 许可—(可选)从容器访问源文件夹的权限。从以下选项中进行选择:

        • Read-only— Lambda 函数具有对源文件夹的只读访问权限。这是默认选项。

        • Read-write (读/写)— Lambda 函数具有对源文件夹的读/写访问权限。

      • 添加组所有者—(可选)是否以源文件夹的所有者的身份添加运行 Lambda 函数组的系统组。默认值为False.

    3. 要移除卷,请选择Remove在要删除的卷旁边。

  3. (可选)配置容器化 Lambda 函数可以访问的本地系统设备。

    1. UNDERDevices,选择添加设备.

    2. 对于您添加的每台设备,请指定以下选项:

      • 挂载路径— 核心设备上的系统设备的路径。

      • 许可—(可选)从容器访问系统设备的权限。从以下选项中进行选择:

        • Read-only— Lambda 函数具有对系统设备的只读访问权限。这是默认选项。

        • Read-write (读/写)— Lambda 函数具有对源文件夹的读/写访问权限。

      • 添加组所有者—(可选)是否将运行 Lambda 函数组添加为系统设备的所有者。默认值为False.

第 6 步:创建 Lambda 函数组件

为 Lambda 函数组件配置设置后,选择Create完成新组件的创建。

要在核心设备上运行 Lambda 函数,您可以将新组件部署到核心设备。有关更多信息,请参阅部署Amazon IoT Greengrass组件到设备