

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Acción de invocación de una función de Lambda
<a name="receiving-email-action-lambda"></a>

La acción de Lambda llama al código a través de una función de Lambda y, opcionalmente, se lo notifica a usted a través de Amazon SNS. Esta acción tiene las siguientes opciones y requisitos.

**Opciones**
+ **Lambda function** (Función de Lambda): ARN de la función de Lambda. *Un ejemplo del ARN de una función Lambda es arn:aws:lambda:us-east-1:account-id:function:. MyFunction*
+ **Invocation type** (Tema de invocación): tipo de invocación de la función de Lambda. Un tipo **RequestResponse**de invocación significa que la ejecución de la función produce una respuesta inmediata. Un tipo de invocación de **Event (Evento)** significa que la función se invoca de forma asíncrona. Le recomendamos que utilice el tipo de invocación **Event (Evento)** a menos que su caso de uso requiera la ejecución sincrónica.

  Se produce un desfase de 30 segundos en las invocaciones **RequestResponse**.

  Para obtener más información, consulte [Invocar funciones de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html) en la *Guía para desarrolladores de AWS Lambda *.
+ **SNS Topic (Tema de SNS)**: nombre o ARN del tema de Amazon SNS al que se debe enviar la notificación cuando se desencadena la función de Lambda especificada. Un ejemplo de un ARN de tema de Amazon SNS es *arn:aws:sns:us-east* - 1:123456789012:. MyTopic Para obtener instrucciones, consulte el [tema Creación de un tema de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) en la *Guía para desarrolladores de Amazon Simple Notification Service*.

**Requisitos**
+ La función Lambda que elija debe estar en la misma AWS región que el punto de conexión de Amazon SES que utilice para recibir el correo electrónico.
+ El tema de Amazon SNS que elija debe estar en la misma AWS región que el punto de conexión de Amazon SES que utilice para recibir correos electrónicos.

## Escritura de la función de Lambda
<a name="receiving-email-action-lambda-function"></a>

Para procesar el correo electrónico, la función de Lambda se puede invocar de manera asíncrona (es decir, utilizando el tipo de invocación `Event`). El objeto de evento transferido a su función de Lambda contendrá metadatos pertenecientes al evento de correo electrónico de entrada. También puede utilizar los metadatos para acceder al contenido del mensaje desde su bucket de Amazon S3.

Si desea controlar realmente el flujo de correo electrónico, debe invocar la función de Lambda de forma síncrona (es decir, utilizando el tipo de invocación `RequestResponse`) y la función de Lambda debe llamar al método `callback` con dos argumentos: el primer argumento es `null` y el segundo argumento es una propiedad `disposition` que se establece en `STOP_RULE`, `STOP_RULE_SET` o `CONTINUE`. Si el segundo argumento es `null` o no tiene una propiedad `disposition` válida, el flujo de correo continúa y se procesan acciones y reglas adicionales, que es lo mismo que con `CONTINUE`.

Por ejemplo, puede detener el conjunto de reglas de recepción escribiendo la siguiente línea al final del código de la función de Lambda:

```
callback( null, { "disposition" : "STOP_RULE_SET" });
```

Para ver ejemplos AWS Lambda de códigos, consulte[Ejemplos de funciones de Lambda](receiving-email-action-lambda-example-functions.md). Para ver ejemplos de casos de uso de alto nivel, consulte [Ejemplos de casos de uso](receiving-email-action-lambda-example-use-cases.md).

### Formato de entrada
<a name="receiving-email-action-lambda-input"></a>

Amazon SES transfiere información a la función de Lambda en formato JSON. El objeto de nivel superior contiene una matriz `Records`, que se rellena con las propiedades `eventSource`, `eventVersion` y `ses`. El objeto `ses` contiene objetos `receipt` y `mail`, que tienen exactamente el mismo formato que en las notificaciones de Amazon SNS descritas en [Contenido de las notificaciones](receiving-email-notifications-contents.md).

Los datos que Amazon SES transmite a Lambda incluyen metadatos acerca del mensaje, así como varios encabezados de correo electrónico. Sin embargo, no contiene el cuerpo del mensaje.

A continuación, se ofrece una vista de alto nivel de la estructura de la entrada que Amazon SES proporciona a la función de Lambda.

```
{
   "Records": [
      {
        "eventSource": "aws:ses",
        "eventVersion": "1.0",
        "ses": {
           "receipt": {
               <same contents as SNS notification>
            },
           "mail": {
               <same contents as SNS notification>
           }
         }
     }
   ]
}
```

### Valores de retorno:
<a name="receiving-email-action-lambda-function-return-values"></a>

La función de Lambda puede controlar el flujo de correo electrónico devolviendo uno de los siguientes valores:
+ `STOP_RULE`: no se procesarán acciones adicionales en la regla de recepción actual, pero se pueden procesar reglas de recepción adicionales.
+ `STOP_RULE_SET`: no se procesarán acciones o reglas de recepción adicionales.
+ `CONTINUE` o cualquier otro valor no válido: esto significa que se pueden procesar acciones y reglas de recepción adicionales.

**Topics**
+ [Escritura de la función de Lambda](#receiving-email-action-lambda-function)
+ [Muestra de evento de correo electrónico entrante](receiving-email-action-lambda-event.md)
+ [Ejemplos de casos de uso](receiving-email-action-lambda-example-use-cases.md)
+ [Ejemplos de funciones de Lambda](receiving-email-action-lambda-example-functions.md)