

# Invocar Lambda con eventos de otros servicios de AWS
<a name="lambda-services"></a>

Algunos Servicios de AWS pueden invocar directamente las funciones de Lambda mediante *desencadenadores*. Estos servicios envían eventos a Lambda y la función se invoca inmediatamente cuando se produce el evento especificado. Los desencadenadores son adecuados para eventos discretos y para el procesamiento en tiempo real. Al [crear un desencadenador mediante la consola de Lambda](#lambda-invocation-trigger), esta interactúa con el servicio de AWS correspondiente para configurar la notificación de eventos en ese servicio. En realidad, el servicio que genera los eventos es el que almacena y administra el desencadenador, no Lambda.

Los eventos son datos estructurados en formato JSON. La estructura JSON varía según el servicio que la genera y el tipo de evento, pero todas contienen los datos que la función necesita para procesar el evento.

Una función puede tener varios desencadenadores. Cada desencadenador actúa como un cliente que invoca su función de manera independiente, y cada evento que Lambda envía a su función tiene datos de un solo desencadenador. Lambda convierte el documento de evento en un objeto y se lo pasa al controlador de la función.

La invocación basada en eventos puede ser [sinrónica](invocation-sync.md) o [asincrónic](invocation-async.md)a, en función del servicio.
+ Para la invocación síncrona, el servicio que genera el evento espera la respuesta de la función. Ese servicio define los datos que la función necesita devolver en la respuesta. El servicio controla la estrategia de error, como, por ejemplo, si se debe reintentar en caso de errores.
+ Para la invocación asíncrona, Lambda coloca el evento en la cola antes de pasárselo a la función. Cuando Lambda pone en cola el evento, envía inmediatamente una respuesta de operación correcta al servicio que lo generó. Después de que la función procese el evento, Lambda no devuelve una respuesta al servicio de generación de eventos.

## Creación de un desencadenador
<a name="lambda-invocation-trigger"></a>

La forma más sencilla de crear un desencadenador es utilizar la consola de Lambda. Al crear un desencadenador mediante la consola, Lambda agrega de forma automática los permisos necesarios a la [política basada en recursos](access-control-resource-based.md) de la función.

**Creación de un desencadenador mediante la consola de Lambda**

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Seleccione la función para la que desee crear un desencadenador.

1. En el panel **Información general de la función**, elija **Agregar desencadenador**.

1. Seleccione el servicio de AWS en el que desee invocar su función.

1. Rellene las opciones del panel **Configuración del desencadenador** y seleccione **Agregar**. En función del Servicio de AWS que elija para invocar la función, las opciones de configuración del desencadenador serán diferentes.

## Servicios que pueden invocar funciones de Lambda
<a name="listing-of-services-and-links-to-more-information"></a>

En la siguiente tabla se enumeran los servicios que pueden invocar funciones de Lambda.


****  

| Servicio | Método de invocación | 
| --- | --- | 
| [Transmisión gestionada de Amazon para Apache Kafka](with-msk.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Apache Kafka autoadministrado](with-kafka.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Amazon API Gateway](services-apigateway.md) | Invocación síncrona basada en eventos | 
| [AWS CloudFormation](services-cloudformation.md) | Invocación asíncrona basada en eventos | 
| [Registros de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample) | Invocación asíncrona basada en eventos | 
| [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda-cc.html) | Invocación asíncrona basada en eventos | 
| [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-invoke-lambda-function.html) | Invocación asíncrona basada en eventos | 
| [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-events.html) | Invocación síncrona basada en eventos | 
| [AWS Config](governance-config.md) | Invocación asíncrona basada en eventos | 
| [Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/connect-lambda-functions.html) | Invocación sincrónica basada en eventos | 
| [Amazon DocumentDB](with-documentdb.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Amazon DynamoDB](with-ddb.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Elastic Load Balancing (Equilibrador de carga de aplicación)](services-alb.md) | Invocación sincrónica basada en eventos | 
| [Amazon EventBridge (CloudWatch Events)](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) | Basado en eventos; invocación asíncrona (buses de eventos), invocación asíncrona o sincrónica (canalizaciones y planificaciones) | 
| [AWS IoT](services-iot.md) | Invocación asíncrona basada en eventos | 
| [Amazon Kinesis](with-kinesis.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html) | Invocación sincrónica basada en eventos | 
| [Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html) | Invocación síncrona basada en eventos | 
| [Amazon MQ](with-mq.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Amazon Simple Email Service](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-lambda.html) | Invocación asíncrona basada en eventos | 
| [Amazon Simple Notification Service](with-sns.md) | Invocación asíncrona basada en eventos | 
| [Amazon Simple Queue Service](with-sqs.md) | [Asignación de orígenes de eventos](invocation-eventsourcemapping.md) | 
| [Amazon Simple Storage Service (Amazon S3)](with-s3.md) | Invocación asíncrona basada en eventos | 
| [Amazon Simple Storage Service Batch](services-s3-batch.md) | Invocación síncrona basada en eventos | 
| [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_lambda.html) | Rotación de secretos | 
| [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/connect-lambda.html) | Invocación sincrónica o asíncrona basada en eventos | 
| [Amazon VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/lambda-functions.html) | Invocación sincrónica basada en eventos | 