调用 Lambda 函数 - AWS Lambda

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

调用 Lambda 函数

您可以直接使用 Lambda 控制台函数 URL HTTP(S)端点、Lambda APIAWS 开发工具包AWS Command Line Interface(AWS CLI)和 AWS 工具包直接调用 Lambda 函数。您还可以配置其他 AWS 服务,用于调用您的函数以响应事件或外部请求或按计划运行。例如,当在 S3 存储桶中创建对象时,Amazon Simple Storage Service(Amazon S3)可以调用您的函数,或者 Amazon EventBridge(CloudWatch Events)可以按计划调用您的函数。您还可以配置 Lambda 从流或队列中读取项目,并调用您的函数来处理这些项目。

调用函数时,您可以选择同步或异步调用。使用同步调用时,您将等待函数处理该事件并返回响应。使用异步调用时,Lambda 会将事件排队等待处理并立即返回响应。对于异步调用,Lambda 可以处理重试并将调用记录发送到目标

从另一个 AWS 服务 调用 Lambda 函数

要让其他 AWS 服务直接调用您的函数,您需要创建触发器。触发器是您配置的一种资源,用于在某些事件或条件发生时允许其他 AWS 服务调用您的函数。您的函数可具有多个触发器。每个触发器都可以作为一个客户端独立调用您的函数,Lambda 传递到您的函数的每个事件仅具有一个触发器的数据。

您可以使用 Lambda 控制台创建函数的触发器。您也可以使用 AWS Serverless Application Model(AWS SAM)中的 Events 属性将其他服务配置为调用您的函数。要了解更多信息,请参阅《AWS Serverless Application Model 开发人员指南》中的 AWS::Serverless::Function

要使用 Lambda 控制台创建触发器
  1. 打开 Lamba 控制台的函数页面

  2. 选择要为其创建触发器的函数。

  3. 函数概述窗格中,选择添加触发器

  4. 选择要调用函数的 AWS 服务。

  5. 填写触发器配置窗格中的选项,然后选择添加

    根据您选择调用函数的 AWS 服务,触发器配置选项会有所不同。

有关可使用触发器调用您的 Lambda 函数的 AWS 服务的完整列表,以及有关为不同服务配置触发器的更多信息,请参阅将 Lambda 与其他服务一起使用

从流或队列中调用 Lambda 函数

要使您的 Lambda 函数能够处理流或队列中的项目,例如 Amazon Kinesis 流或 Amazon Simple Queue Service(Amazon SQS)队列中的项目,您需要创建事件源映射。事件源映射是 Lambda 中的一种资源,它从流或队列中读取项目并创建包含多批项目的事件,以发送到您的 Lambda 函数。您的函数处理的每个事件可以包含数百个或数千个项。

您可以使用 Lambda 控制台、AWS CLI、Lambda API 或 AWS 开发工具包,为您的 Lambda 函数创建事件源映射。您也可以使用 AWS SAM 或 AWS CloudFormation 添加事件源映射。要在 Lambda 控制台中创建事件源映射,请按照说明在 从另一个 AWS 服务 调用 Lambda 函数 中创建一个触发器,然后选择支持使用事件源映射作为源的 AWS 服务之一。

要使用 AWS CLI、Lambda API 或 AWS 开发工具包创建事件源映射,并查看可以与事件源映射一起使用的 AWS 服务的列表,请参阅 Lambda 事件源映射。有关使用 AWS SAM 中的 Events 属性创建事件源映射的更多信息,请参阅《AWS Serverless Application Model 开发人员指南》中的 AWS::Serverless::Function

错误和重试

根据调用函数的方式,扩展行为和可能发生的错误类型会有所不同。同步调用函数时,您会在响应中收到错误并且可以重试。异步调用函数时,可使用事件源映射或配置另一个服务来调用您的函数,而重试要求以及您的函数扩展处理大量事件的方式各不相同。有关更多信息,请参阅 AWS Lambda 中的错误处理和自动重试