创建和打包 Lambda 函数 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

您正在查看Amazon IoT Greengrass Version 1.Amazon IoT Greengrass Version 2是最新的主要版本Amazon IoT Greengrass. 有关使用Amazon IoT Greengrass V2,请参阅Amazon IoT Greengrass Version 2开发人员指南.

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

创建和打包 Lambda 函数

在此步骤中,您:

  • 创建包含函数代码和依赖项的 Lambda 函数部署程序包。

  • 使用 Lambda 控制台创建 Lambda 函数和上传部署程序包。

  • 发布 Lambda 函数的版本并创建指向该版本的别名。

 

  1. 在您的计算机上,转到Amazon IoT Greengrass您下载和解压缩的 Python 核心软件开发工具包创建并打包 Lambda 函数在模块 3-1 中进行。

    本模块中的 Lambda 函数使用:

    • examples\HelloWorldCounter 中的 greengrassHelloWorldCounter.py 文件。这是您的 Lambda 函数代码。

    • greengrasssdk 文件夹。这是开发工具包。

  2. 创建 Lambda 函数部署软件包:

    1. greengrasssdk 文件夹复制到包含 greengrassHelloWorldCounter.pyHelloWorldCounter 文件夹中。

    2. greengrassHelloWorldCounter.pygreengrasssdk 文件夹保存到名为 hello_world_counter_python_lambda.zipzip 文件。py 文件和 greengrasssdk 文件夹必须位于该目录的根目录中。

      
                                    显示“hello_word_counter_python_lambda.zip”的压缩内容的屏幕截图。

      在已安装 zip 的类 UNIX 系统(包括 Mac 终端)上,您可以使用以下命令打包文件和文件夹:

      zip -r hello_world_counter_python_lambda.zip greengrasssdk greengrassHelloWorldCounter.py

    现在您已准备好创建您的 Lambda 函数和上传部署程序包。

  3. 打开 Lambda 控制台并选择创建函数.

  4. 选择 Author from scratch

  5. 将您的函数命名为 Greengrass_HelloWorld_Counter 并设置其余字段,如下所示:

    • 对于 Runtime (运行时),选择 Python 3.7

    • 适用于Permissions (权限),请保留默认设置。这将创建一个授予基本 Lambda 权限的执行角色。不使用该角色Amazon IoT Greengrass. 或者,您可以重复使用在模块 3-1 中创建的角色。

    选择 Create function(创建函数)。

    
                            “Basic data (基本信息)” 部分,其中 “Function name (函数名称)” 字段设置为 “Greengrass_HelloWorld 计数器”,“Runtime (运行时)” 字段设置为 “Python 3.7”。
  6. 上传 Lambda 函数部署软件包。

    1. 在存储库的代码选项卡,在源代码中,选择正在从. 从下拉列表中,选择.zip 文件.

      
                突出显示 .zip 文件的 “从上传” 下拉菜单。
    2. 选择上传,然后选择您的hello_world_counter_python_lambda.zip部署程序包。然后,选择 Save (保存)

    3. 在存储库的代码选项卡,在Runtime 设置中,选择编辑,然后输入以下值。

      • 对于 Runtime (运行时),选择 Python 3.7

      • 对于 Handler (处理程序),输入 greengrassHelloWorldCounter.function_handler

    4. 选择 Save

      注意

      这些区域有:测试按钮Amazon Lambda控制台与此函数一起使用时不起作用。这些区域有:Amazon IoT Greengrass核心 SDK 不包含独立运行 Greengrass Lambda 函数所需的模块Amazon Lambda控制台。这些模块(例如greengrass_common)在这些函数部署到您的 Greengrass 核心后提供给这些函数。

  7. 发布函数的第一个版本。

    1. 操作菜单中,选择页面顶部的发布新版本. 对于版本描述,输入 First version

    2. 选择 Publish

  8. 为函数版本创建别名。

    1. 操作菜单中,选择页面顶部的创建别名.

      
                                    “Actions (操作)”菜单设置为“Create alias (创建别名)”的屏幕截图。
    2. 对于名称,请输入 GG_HW_Counter

    3. 对于 Version (版本),选择 1

    4. 选择 Save

      
                                    “名称” 字段设置为 “GGG_HW_Counter” 并将 “版本” 字段设置为 1 的 “版本” 屏幕截图。

    别名可为 Lambda 函数创建一个单一实体,可供 Greengrass 设备订阅。这样,每次修改函数后,您就不必使用新的 Lambda 函数版本号更新订阅。