本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
调用 Lambda 函数
您可以直接使用 Lambda 控制台、函数 URL HTTP(S)端点、Lambda API、Amazon 开发工具包
调用函数时,您可以选择同步或异步调用。使用同步调用时,您将等待函数处理该事件并返回响应。使用异步调用时,Lambda 会将事件排队等待处理并立即返回响应。对于异步调用,Lambda 可以处理重试并将调用记录发送到目标。
从另一个 Amazon Web Service 调用 Lambda 函数
要让其他 Amazon 服务直接调用您的函数,您需要创建触发器。触发器是您配置的一种资源,用于在某些事件或条件发生时允许其他 Amazon 服务调用您的函数。您的函数可具有多个触发器。每个触发器都可以作为一个客户端独立调用您的函数,Lambda 传递到您的函数的每个事件仅具有一个触发器的数据。
您可以使用 Lambda 控制台创建函数的触发器。您也可以使用 Amazon Serverless Application Model(Amazon SAM)中的 Events
属性将其他服务配置为调用您的函数。要了解更多信息,请参阅《Amazon Serverless Application Model 开发人员指南》中的 AWS::Serverless::Function。
要使用 Lambda 控制台创建触发器
-
打开 Lamba 控制台的函数页面
。 -
选择要为其创建触发器的函数。
-
在函数概述窗格中,选择添加触发器。
-
选择要调用函数的 Amazon 服务。
-
填写触发器配置窗格中的选项,然后选择添加。
根据您选择调用函数的 Amazon Web Service,触发器配置选项会有所不同。
有关可使用触发器调用您的 Lambda 函数的 Amazon 服务的完整列表,以及有关为不同服务配置触发器的更多信息,请参阅将 Lambda 与其他服务一起使用。
从流或队列中调用 Lambda 函数
要使您的 Lambda 函数能够处理流或队列中的项目,例如 Amazon Kinesis 流或 Amazon Simple Queue Service(Amazon SQS)队列中的项目,您需要创建事件源映射。事件源映射是 Lambda 中的一种资源,它从流或队列中读取项目并创建包含多批项目的事件,以发送到您的 Lambda 函数。您的函数处理的每个事件可以包含数百个或数千个项。
您可以使用 Lambda 控制台、Amazon CLI、Lambda API 或 Amazon 开发工具包,为您的 Lambda 函数创建事件源映射。您也可以使用 Amazon SAM 或 Amazon CloudFormation 添加事件源映射。要在 Lambda 控制台中创建事件源映射,请按照说明在 从另一个 Amazon Web Service 调用 Lambda 函数 中创建一个触发器,然后选择支持使用事件源映射作为源的 Amazon 服务之一。
要使用 Amazon CLI、Lambda API 或 Amazon 开发工具包创建事件源映射,并查看可以与事件源映射一起使用的 Amazon 服务的列表,请参阅 Lambda 事件源映射。有关使用 Amazon SAM 中的 Events
属性创建事件源映射的更多信息,请参阅《Amazon Serverless Application Model 开发人员指南》中的 AWS::Serverless::Function。
错误和重试
根据调用函数的方式,扩展行为和可能发生的错误类型会有所不同。同步调用函数时,您会在响应中收到错误并且可以重试。异步调用函数时,可使用事件源映射或配置另一个服务来调用您的函数,而重试要求以及您的函数扩展处理大量事件的方式各不相同。有关更多信息,请参阅 Amazon Lambda 中的错误处理和自动重试。