将 Amazon Lambda 与其他服务一起使用 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 Amazon Lambda 与其他服务一起使用

Amazon Lambda 与其他Amazon服务集成以调用函数或采取其他操作。下面是一些常见用例:

根据您使用 Lambda 的服务,调用通常以两种方式之一工作。事件驱动调用或 Lambda 轮询队列或数据流,并调用函数以响应队列或数据流中的活动。Lambda 以一种不涉及调用函数的方式与 Amazon Elastic File System 和 Amazon X-Ray 集成。

有关更多信息,请参阅事件驱动调用Lambda 轮询。或者,在以下部分中查找要使用的服务,以查找有关将 Lambda 与该服务一同使用的信息的链接。

您还可以使用 Lambda 函数,通过其中一个 Amazon 软件开发工具包(SDK),以编程方式与其他 Amazon Web Services 进行交互。例如,您可以通过 Lambda 函数创建 Amazon S3 存储桶,或使用函数中的 API 调用向 DynamoDB 表写入数据。要了解有关 Amazon SDK 的更多信息,请参阅用于在 Amazon 上进行构建的工具

在下表中找到要使用的服务,以确定应使用哪种调用方法。按照服务名称中的链接查找有关如何设置服务之间的集成的信息。这些主题还包括可用于测试函数的示例事件。

提示

此表中的条目按服务名称的字母顺序排列,但不包括“Amazon”或”Amazon”前缀。您还可以使用浏览器的搜索功能在列表中查找您的服务。

服务 调用方法

Amazon Alexa

事件驱动;同步调用

Amazon Managed Streaming for Apache Kafka

Lambda 轮询

自行管理的 Apache Kafka

Lambda 轮询

Amazon API Gateway

事件驱动;同步调用

Amazon CloudFormation

事件驱动;异步调用

Amazon CloudFront (Lambda@Edge)

事件驱动;同步调用

Amazon EventBridge (CloudWatch Events)

事件驱动;异步调用

Amazon CloudWatch Logs

事件驱动;异步调用

Amazon CodeCommit

事件驱动;异步调用

Amazon CodePipeline

事件驱动;异步调用

Amazon Cognito

事件驱动;同步调用

Amazon Config

事件驱动;异步调用

Amazon Connect

事件驱动;同步调用

Amazon DynamoDB

Lambda 轮询

Amazon Elastic File System

特殊集成

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

事件驱动;同步调用

Amazon IoT

事件驱动;异步调用

Amazon IoT 事件

事件驱动;异步调用

Amazon Kinesis

Lambda 轮询

Amazon Data Firehose

事件驱动;同步调用

Amazon Lex

事件驱动;同步调用

Amazon MQ

Lambda 轮询

Amazon Simple Email Service

事件驱动;异步调用

Amazon Simple Notification Service

事件驱动;异步调用

Amazon Simple Queue Service

Lambda 轮询

Amazon Simple Storage Service (Amazon S3)

事件驱动;异步调用

Amazon Simple Storage Service 批处理

事件驱动;同步调用

Secrets Manager

事件驱动;同步调用

Amazon VPC Lattice

事件驱动;同步调用

Amazon X-Ray

特殊集成

事件驱动调用

某些服务会生成可以调用 Lambda 函数的事件。有关设计这些架构类型的更多信息,请参阅 Serverless Land 中的 Event driven architectures

当您实施事件驱动型架构时,您可以授予事件生成服务权限,以便在函数的基于资源的策略中调用函数。然后配置该服务以生成调用函数的事件。

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

Lambda 将事件文档转换为一个对象,并将该对象传递给函数处理程序。对于编译型语言,Lambda 在库中提供事件类型的定义。有关更多信息,请参阅有关使用您的语言构建函数的主题:使用 C# 构建 Lambda 函数使用 Go 构建 Lambda 函数使用 Java 构建 Lambda 函数或者使用 PowerShell 构建 Lambda 函数

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

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

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

有关 Lambda 如何管理同步和异步调用函数的错误处理的详细信息,请参阅Amazon Lambda 中的错误处理和自动重试

Lambda 轮询

对于生成队列或数据流的服务,您可以在 Lambda 中设置事件源映射,以便让 Lambda 轮询队列或数据流。

当您实施 Lambda 轮询架构时,授予 Lambda 访问函数执行角色中的其他服务的权限。Lambda 从其他服务读取数据、创建事件并调用您的函数。