AWS IoT Greengrass
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建和打包 Lambda 函数

  1. 将 Lambda 函数代码下载到计算机(而不是 Greengrass 核心设备):

    1. 在 Web 浏览器中,打开 GitHub 上的 greengrassHelloWorldCounter.py 文件。

    2. 选择原始以打开未格式化版本的文件。

      
                                    突出显示了“Raw (原始)”按钮的 GitHub 控件。
    3. 使用 Ctrl + S(对于 Mac,则为 Command + S)保存 greengrassHelloWorldCounter.py 文件的副本。将该文件保存到包含 greengrasssdk 文件夹的文件夹。

    注意

    对于类 UNIX 系统,您可以运行以下终端命令来下载该 greengrassHelloWorldCounter.py 文件:

    wget https://raw.githubusercontent.com/aws-samples/aws-greengrass-samples/master/hello-world-counter-python/greengrassHelloWorldCounter.py
  2. greengrassHelloWorldCounter.py 文件与开发工具包一起打包到 .zip 文件中,如模块 3(第 1 部分)中所述。将该程序包命名为 hello_world_counter_python_lambda.zip

    
                            显示“hello_word_counter_python_lambda.zip”的压缩内容的屏幕截图。
  3. 在 Lambda 控制台中,创建一个名为 Greengrass_HelloWorld_Counter 的 Python 2.7 函数,如模块 3(第 1 部分)中所述。您可以使用现有角色。

  4. 上传 Lambda 函数部署软件包:

    1. 配置选项卡上的函数代码下,设置以下字段:

      • 对于 代码输入种类,选择上传 .zip 文件

      • 对于 Runtime,选择 Python 2.7

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

    2. 选择上传,然后选择 hello_world_counter_python_lambda.zip

      
                            具有如下设置的函数代码屏幕截图:“代码输入种类”设置为“上传 .zip 文件”、“运行语言”设置为“Python 2.7”、“处理程序”设置为“greengrassHelloWorldCounter.function_handler”且“函数程序包”设置为“hello_world_counter_python_lambda.zip”。
    3. 在页面顶部,选择 Save

      注意

      AWS Lambda 控制台上的测试键不可与该函数一同使用。AWS IoT Greengrass 核心 SDK 不包含在 AWS Lambda 控制台中独立运行 Greengrass Lambda 函数所需的模块。这些模块(例如 greengrass_common)会在被部署到您的 Greengrass 核心之后提供给这些函数。

  5. 发布函数的第一个版本:

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

    2. 选择 Publish

  6. 为函数版本创建别名:

    1. 操作菜单中,选择创建别名,然后设置以下值:

      • 对于名称,输入 GG_HW_Counter

      • 对于 Version (版本),选择 1

    2. 选择 Create

      
                            “Name (名称)”字段设置为“GG_HW_Counter”、“Version (版本)”字段设置为 1 且突出显示了“Create (创建)”按钮的“Create a new alias (创建新别名)”屏幕截图。

    别名可为您的 Lambda 函数创建单个实体,AWS IoT Greengrass 设备可以订阅该实体,而无需在每次修改函数时使用 Lambda 版本号更新订阅。