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

Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,不再接收功能更新,只会收到安全补丁和错误修复。有关更多信息,请参阅 。Amazon IoT Greengrass V1维护政策. 强烈建议您迁移到Amazon IoT Greengrass Version 2,它补充说重要新功能对其他平台的支持.

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

创建和打包 Lambda 函数

在此步骤中,您:

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

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

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

 

  1. 在您的计算机上,转到Amazon IoT Greengrass您在中下载和提取的适用于 Python 的核心 SDK创建并打包 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 information (基本信息)” 部分,其中 “函数名称” 字段设置为 “Greengrass_” 部分HelloWorld_Counter” 字段设置为 “Python 3.7”。
  6. 上传 Lambda 函数部署软件包。

    1. 在存储库的代码选项卡,位于代码来源,选择从以下项上传. 从下拉列表中,选择.zip 格式文件.

      
                带有 .zip 文件的上传自下拉列表突出显示。
    2. 选择上传,然后选择您的hello_world_counter_python_lambda.zip部署程序包。然后,选择 Save (保存)

    3. 在存储库的代码函数的选项卡,位于运行时设置,选择编辑,然后输入以下值。

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

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

    4. 选择Save(保存)。

      注意

      这些区域有:测试按钮的Amazon Lambda控制台不使用此函数。这些区域有:Amazon IoT Greengrass核心开发工具包不包含在 Greengrass Lambda 中独立运行 Greengrass Lambda 函数所需的模块Amazon Lambda控制台。这些模块(例如,greengrass_common) 将在函数部署到你的 Greengrass 核心后提供给这些函数。

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

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

    2. 选择 Publish

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

    1. 操作菜单中,选择创建别名.

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

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

    4. 选择Save(保存)。

      
                                    创建别名屏幕截图,其中 “名称” 字段设置为 GGGGGGGW_Counter,“版本” 字段设置为 1 的 1。

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