AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

步骤 2.3:创建 Lambda 函数并手动调用该函数(使用示例事件数据)

请在此部分中执行以下操作:

  • 通过上传部署程序包来创建 Lambda 函数。

  • 通过手动调用 Lambda 函数来对其进行测试。您应使用示例事件数据,而不是创建事件源。在下一节中,您将创建 Android 移动应用程序并测试端到端体验。

步骤 2.3.1:创建 Lambda 函数(上传部署程序包)

在本步骤中,您将使用 AWS CLI 上传部署程序包。

在命令提示符处,使用 adminuser profile 运行下面的 Lambda CLI create-function 命令。

您需要提供 .zip 文件路径和执行角色 ARN 来更新该命令。--runtime 参数值可以是 nodejs6.10nodejs4.3java8,具体取决于您编写代码所选的语言。

Copy
$ aws lambda create-function \ --region us-east-1 \ --function-name AndroidBackendLambdaFunction \ --zip-file fileb://file-path-to-jar-or-zip-deployment-package \ --role execution-role-arn \ --handler handler-name \ --runtime runtime-value \ --profile adminuser

或者,您也可以将 .zip 文件上传到同一 AWS 区域中的 Amazon S3 存储桶,然后在之前的命令中指定该存储桶和对象名称。您需要将 --zip-file 参数替换为 --code 参数,如下所示:

Copy
--code S3Bucket=bucket-name,S3Key=zip-file-object-key

注意

您可以使用 AWS Lambda 控制台创建 Lambda 函数,在这种情况下,应记下 create-function AWS CLI 命令参数的值。您应在控制台 UI 中提供相同的值。

步骤 2.3.2:测试 Lambda 函数(手动调用)

使用示例事件数据手动调用函数。建议您使用控制台来调用函数,因为控制台 UI 提供了用于查看执行结果(包括执行摘要、代码写入的日志和函数返回的结果)的用户友好型界面(因为控制台始终执行同步执行 - 使用 RequestResponse 调用类型来调用 Lambda 函数)。

测试 Lambda 函数(AWS 管理控制台)

  1. 步骤 2.2:手动调用 Lambda 函数并验证结果、日志和指标中按照入门练习中的步骤创建并调用 Lambda 函数。在选择 Lambda 函数后,从 Actions 菜单中选择 Configure test event 以指定以下示例事件数据:

    Copy
    { "firstName": "first-name", "lastName": "last-name" }
  2. 在控制台中验证结果。

    • Execution result 应为具有以下返回值的 Succeeded

      Copy
      { "greetings": "Hello first-name, last-name." }
    • 查看 SummaryLog output 部分。

测试 Lambda 函数 (AWS CLI)

  1. 将下面的示例事件 JSON 保存到文件 input.txt 中。

    Copy
    { "firstName": "first-name", "lastName": "last-name" }
  2. 执行下面的 invoke 命令:

    Copy
    $ aws lambda invoke \ --invocation-type Event \ --function-name AndroidBackendLambdaFunction \ --region us-east-1 \ --payload file://file-path/input.txt \ --profile adminuser outputfile.txt

    注意

    在本教程示例中,消息保存在 outputfile.txt 文件中。如果您请求同步执行(RequestResponse 作为调用类型),函数将在响应正文中返回字符串消息。

    对于 Node.js,该消息可能为以下形式之一(您在代码中指定的任何一个):

    context.succeed("message")

    context.fail("message")

    context.done(null, "message)

    对于 Java,它是返回语句中的消息:

    return "message"

下一步

步骤 3:创建 Amazon Cognito 身份池