AWS Lambda
开发人员指南

步骤 3:调用 Lambda 函数 (AWS CLI)

在本节中,您将使用调用 AWS CLI 命令手动调用 Lambda 函数。

$ aws lambda invoke \ --invocation-type RequestResponse \ --function-name helloworld \ --region region \ --log-type Tail \ --payload '{"key1":"value1", "key2":"value2", "key3":"value3"}' \ --profile adminuser \ outputfile.txt

如果您希望您可以将负载保持到一个文件(例如 input.txt),则以参数的形式提供文件名。

--payload file://input.txt \

之前的 invoke 命令指定 RequestResponse 作为调用类型,这将针对函数执行立即返回一个响应。或者,您也可以指定 Event 作为调用类型来异步调用该函数。

通过指定 --log-type 参数,该命令还请求由该函数产生的日志的末尾。响应中的日志数据采用 base64 编码,如以下示例响应中所示:

{ "LogResult": "base64-encoded-log", "StatusCode": 200 }

在 Linux 和 Mac 上,可以使用 base64 命令对日志进行解码。

$ echo base64-encoded-log | base64 --decode

以下是示例日志的已解码的版本。

START RequestId: 16d25499-d89f-11e4-9e64-5d70fce44801 2015-04-01T18:44:12.323Z 16d25499-d89f-11e4-9e64-5d70fce44801 value1 = value1 2015-04-01T18:44:12.323Z 16d25499-d89f-11e4-9e64-5d70fce44801 value2 = value2 2015-04-01T18:44:12.323Z 16d25499-d89f-11e4-9e64-5d70fce44801 value3 = value3 2015-04-01T18:44:12.323Z 16d25499-d89f-11e4-9e64-5d70fce44801 result: "value1" END RequestId: 16d25499-d89f-11e4-9e64-5d70fce44801 REPORT RequestId: 16d25499-d89f-11e4-9e64-5d70fce44801 Duration: 13.35 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 9 MB

有关更多信息,请参阅 Invoke

由于使用了 RequestResponse 调用类型来调用该函数,因此该函数在调用时将实时执行并返回您传递给 context.succeed() 的对象。在本教程中,您将看到写入到您在 CLI 命令中指定的 outputfile.txt 的以下文本:

"value1"

注意

由于您使用同一个 AWS 账户创建和调用 Lambda 函数,因此您可以执行该函数。但是,如果您要向另一个 AWS 账户授予跨账户的权限或者为另一个 AWS 服务授予执行该函数的权限,则必须向与该函数关联的访问权限策略添加权限。使用 Amazon S3 作为事件源(请参阅教程:将 AWS Lambda 与 Amazon S3 结合使用)的 Amazon S3 教程向 Amazon S3 授予此类权限来调用该函数。

您可以在 AWS Lambda 控制台中监控 Lambda 函数的活动。

  • 通过以下网址登录 AWS 管理控制台并打开 AWS Lambda 控制台:https://console.aws.amazon.com/lambda/

    AWS Lambda 控制台在函数的 Cloudwatch Metrics at a glance 部分中显示某些 CloudWatch 指标的图表化表示。

  • 对于每个图表,您还可以选择 logs 链接来直接查看 CloudWatch 日志。

下一步

步骤 4:尝试更多 CLI 命令 (AWS CLI)

本页内容: