

# 使用来自其 Amazon 他服务的事件调用 Lambda
<a name="lambda-services"></a>

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

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

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

取决于服务，事件驱动调用可以是[同步的](invocation-sync.md)，也可以是[异步的](invocation-async.md)。
+ 对于同步调用，生成事件的服务服务等待来自您的函数的响应。该服务定义函数需要在响应中返回的数据。该服务控制错误策略，例如是否重试错误。
+ 对于异步调用，Lambda 先将事件排队，然后再将事件传递给您的函数。当 Lambda 将事件排队时，它会立即向生成事件的服务发送成功响应。函数处理事件后，Lambda 不会返回事件生成服务的响应。

## 创建触发器
<a name="lambda-invocation-trigger"></a>

创建触发器最简单的方法是使用 Lambda 控制台。使用控制台创建触发器时，Lambda 会自动将所需的权限添加到函数[基于资源的策略](access-control-resource-based.md)。

**要使用 Lambda 控制台创建触发器**

1. 打开 Lamba 控制台的[函数](https://console.amazonaws.cn/lambda/home#/functions)页面。

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

1. 在**函数概述**窗格中，选择**添加触发器**。

1. 选择要调用函数的 Amazon 服务。

1. 填写**触发器配置**窗格中的选项，然后选择**添加**。根据您选择调用函数的 Amazon Web Services 服务，触发器配置选项会有所不同。

## 可以调用 Lambda 函数的服务
<a name="listing-of-services-and-links-to-more-information"></a>

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


****  

| 服务 | 调用方法 | 
| --- | --- | 
|  [Amazon Managed Streaming for Apache Kafka](with-msk.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [自行管理的 Apache Kafka](with-kafka.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [Amazon API Gateway](services-apigateway.md)  |  事件驱动；同步调用  | 
|  [Amazon CloudFormation](services-cloudformation.md)  |  事件驱动；异步调用  | 
|  [Amazon CloudWatch Logs](https://docs.amazonaws.cn/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample)  |  事件驱动；异步调用  | 
|  [Amazon CodeCommit](https://docs.amazonaws.cn/codecommit/latest/userguide/how-to-notify-lambda-cc.html)  |  事件驱动；异步调用  | 
|  [Amazon CodePipeline](https://docs.amazonaws.cn/codepipeline/latest/userguide/actions-invoke-lambda-function.html)  |  事件驱动；异步调用  | 
|  [Amazon Cognito](https://docs.amazonaws.cn/cognito/latest/developerguide/cognito-events.html)  |  事件驱动；同步调用  | 
|  [Amazon Config](governance-config.md)  |  事件驱动；异步调用  | 
|  [Amazon Connect](https://docs.amazonaws.cn/connect/latest/adminguide/connect-lambda-functions.html)  |  事件驱动；同步调用  | 
|  [Amazon DocumentDB](with-documentdb.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [Amazon DynamoDB](with-ddb.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [Elastic Load Balancing（应用程序负载均衡器）](services-alb.md)  |  事件驱动；同步调用  | 
|  [Amazon EventBridge (CloudWatch Events)](https://docs.amazonaws.cn/eventbridge/latest/userguide/eb-what-is.html)  |  事件驱动；异步调用（事件总线）、同步或异步调用（管道和计划）  | 
|  [Amazon IoT](services-iot.md)  |  事件驱动；异步调用  | 
|  [Amazon Kinesis](with-kinesis.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [Amazon Data Firehose](https://docs.amazonaws.cn/firehose/latest/dev/data-transformation.html)  |  事件驱动；同步调用  | 
|  [Amazon Lex](https://docs.amazonaws.cn/lexv2/latest/dg/lambda.html)  |  事件驱动；同步调用  | 
|  [Amazon MQ](with-mq.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [Amazon Simple Email Service](https://docs.amazonaws.cn/ses/latest/dg/receiving-email-action-lambda.html)  |  事件驱动；异步调用  | 
|  [Amazon Simple Notification Service](with-sns.md)  |  事件驱动；异步调用  | 
|  [Amazon Simple Queue Service](with-sqs.md)  |  [事件源映射](invocation-eventsourcemapping.md)  | 
|  [Amazon Simple Storage Service（Amazon S3）](with-s3.md)  |  事件驱动；异步调用  | 
|  [Amazon Simple Storage Service 批处理](services-s3-batch.md)  |  事件驱动；同步调用  | 
|  [Secrets Manager](https://docs.amazonaws.cn/secretsmanager/latest/userguide/rotate-secrets_lambda.html)  |  密钥轮换  | 
|  [Amazon Step Functions](https://docs.amazonaws.cn/step-functions/latest/dg/connect-lambda.html)  |  事件驱动；同步或异步调用  | 
|  [Amazon VPC Lattice](https://docs.amazonaws.cn/vpc-lattice/latest/ug/lambda-functions.html)  |  事件驱动；同步调用  | 