使用来自其 AWS 他服务的事件调用 Lambda - AWS Lambda

使用来自其 AWS 他服务的事件调用 Lambda

某些 AWS 服务可以使用触发器直接调用 Lambda 函数。这些服务将事件推送到 Lambda,并在指定事件发生时立即调用该函数。触发器适用于离散事件和实时处理。当您使用 Lambda 控制台创建触发器时,控制台会与相应的 AWS 服务交互以配置该服务的事件通知。触发器实际上由生成事件的服务而不是 Lambda 存储和管理。

事件使用 JSON 格式的数据结构。JSON 结构因生成它的服务和事件类型而异,但它们都包含函数处理事件所需的数据。

一个函数可具有多个触发器。每个触发器都可以作为一个客户端独立调用您的函数,Lambda 传递到您的函数的每个事件仅具有一个触发器的数据。Lambda 将事件文档转换为一个对象,并将该对象传递给函数处理程序。

取决于服务,事件驱动调用可以是同步的,也可以是异步的

  • 对于同步调用,生成事件的服务服务等待来自您的函数的响应。该服务定义函数需要在响应中返回的数据。该服务控制错误策略,例如是否重试错误。

  • 对于异步调用,Lambda 先将事件排队,然后再将事件传递给您的函数。当 Lambda 将事件排队时,它会立即向生成事件的服务发送成功响应。函数处理事件后,Lambda 不会返回事件生成服务的响应。

创建触发器

创建触发器最简单的方法是使用 Lambda 控制台。使用控制台创建触发器时,Lambda 会自动将所需的权限添加到函数基于资源的策略

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

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

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

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

  5. 填写触发器配置窗格中的选项,然后选择添加。根据您选择调用函数的 AWS 服务,触发器配置选项会有所不同。

下表列出了可以调用 Lambda 函数的服务。

服务 调用方法

Amazon Alexa

事件驱动;同步调用

Amazon Managed Streaming for Apache Kafka

事件源映射

自行管理的 Apache Kafka

事件源映射

Amazon API Gateway

事件驱动;同步调用

AWS CloudFormation

事件驱动;异步调用

Amazon CloudFront (Lambda@Edge)

事件驱动;同步调用

Amazon CloudWatch Logs

事件驱动;异步调用

AWS CodeCommit

事件驱动;异步调用

AWS CodePipeline

事件驱动;异步调用

Amazon Cognito

事件驱动;同步调用

AWS Config

事件驱动;异步调用

Amazon Connect

事件驱动;同步调用

Amazon DynamoDB

事件源映射

Amazon Elastic File System

特殊集成

Elastic Load Balancing(应用程序负载均衡器)

事件驱动;同步调用

AWS IoT

事件驱动;异步调用

Amazon Kinesis

事件源映射

Amazon Data Firehose

事件驱动;同步调用

Amazon Lex

事件驱动;同步调用

Amazon MQ

事件源映射

Amazon Simple Email Service

事件驱动;异步调用

Amazon Simple Notification Service

事件驱动;异步调用

Amazon Simple Queue Service

事件源映射

Amazon Simple Storage Service (Amazon S3)

事件驱动;异步调用

Amazon Simple Storage Service 批处理

事件驱动;同步调用

Secrets Manager

事件驱动;同步调用

Amazon VPC Lattice

事件驱动;同步调用

AWS X-Ray

特殊集成