将 AWS Lambda 与其他服务一起使用 - AWS Lambda

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

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

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

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

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

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

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

提示

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

服务 调用方法

Amazon Alexa

事件驱动;同步调用

Amazon Managed Streaming for Apache Kafka

Lambda 轮询

自行管理的 Apache Kafka

Lambda 轮询

Amazon API Gateway

事件驱动;同步调用

AWS CloudFormation

事件驱动;异步调用

Amazon CloudFront (Lambda@Edge)

事件驱动;同步调用

Amazon EventBridge (CloudWatch Events)

事件驱动;异步调用

Amazon CloudWatch Logs

事件驱动;异步调用

AWS CodeCommit

事件驱动;异步调用

AWS CodePipeline

事件驱动;异步调用

Amazon Cognito

事件驱动;同步调用

AWS Config

事件驱动;异步调用

Amazon Connect

事件驱动;同步调用

Amazon DynamoDB

Lambda 轮询

Amazon Elastic File System

特殊集成

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

事件驱动;同步调用

AWS IoT

事件驱动;异步调用

AWS 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

事件驱动;同步调用

AWS X-Ray

特殊集成

事件驱动调用

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

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

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

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

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

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

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

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

Lambda 轮询

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

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