

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.

# aws-lambda-sqs-lambda
<a name="aws-lambda-sqs-lambda"></a>

![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/experimental.png)


 Todas las clases están en desarrollo activo y están sujetas a cambios o eliminación no compatibles con versiones anteriores en cualquier versión futura. Estos no están sujetos a la[Versionado semántico](https://semver.org/)- El modelo. Esto significa que, aunque puede usarlos, es posible que necesite actualizar el código fuente cuando actualice a una versión más reciente de este paquete. 

**Nota:** Para garantizar una funcionalidad adecuada, los paquetes de AWS Solutions Constructs y los paquetes CDK de AWS del proyecto deben tener la misma versión. 


|  **Idioma**  |  **Paquete**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_lambda\_sqs\_lambda  | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/typescript.png) Mecanografía  |  @aws-solutions-constructs/aws-lambda-sqs-lambda  | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdasqslambda  | 

## Overview
<a name="overview-27"></a>

 Este patrón de soluciones de AWS implementa (1) una función de AWS Lambda configurada para enviar mensajes a una cola; (2) una cola de Amazon SQS; y (3) una función de AWS Lambda configurada para consumir mensajes de la cola. 

 Aquí hay una definición mínima de patrón implementable en TypeScript: 

```
import { LambdaToSqsToLambda, LambdaToSqsToLambdaProps } from "@aws-solutions-constructs/aws-lambda-sqs-lambda";

new LambdaToSqsToLambda(this, 'LambdaToSqsToLambdaPattern', {
    producerLambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/producer-function/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`),
        handler: 'index.handler'
    },
    consumerLambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/consumer-function/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`),
        handler: 'index.handler'
    }
});
```

## Initializer
<a name="initializer-27"></a>

```
new LambdaToSqsToLambda(scope: Construct, id: string, props: LambdaToSqsToLambdaProps);
```

 *Parámetros* 
+  scope[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  props[`LambdaToSqsToLambdaProps`](#pattern-construct-props-27) 

## Patrón de construcción
<a name="pattern-construct-props-27"></a>


|  **Nombre**  |  **Tipo**  |  **Descripción**  | 
| --- | --- | --- | 
|  ProductorLambdaobj existenteProductor?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Una función Lambda opcional existente que se utilizará en lugar de la función predeterminada para enviar mensajes a la cola. Proporcionando tanto esto comoproducerLambdaFunctionPropsprovocará un error.  | 
|  ProductorLambdafunctionProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  Propiedades opcionales proporcionadas por el usuario para anular las propiedades predeterminadas de la función Lambda del productor.  | 
|  ExistingQueueObj?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  Una cola SQS opcional existente que se utilizará en lugar de la cola predeterminada. Proporcionando tanto esto comoqueuePropsprovocará un error.  | 
|  ¿Props en cola?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  Propiedades opcionales proporcionadas por el usuario para anular las propiedades predeterminadas de la cola SQS. Proporcionando tanto esto comoexistingQueueObjprovocará un error.  | 
|  DeployDeadLetterQueue?  |  boolean  |  Si se va a crear una cola secundaria para utilizarse como cola de mensajes fallidos. El valor predeterminado es true.  | 
|  DeadletterQueueProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.QueueProps.html)  |  Props opcionales proporcionados por el usuario para anular los apoyos predeterminados para la cola de letras muertas. Solo se usa si se usa eldeployDeadLetterQueueLa propiedad se establece entrue.  | 
|  ¿maxReceiveCount?  |  number  |  El número de veces que un mensaje se puede quitar sin éxito antes de que se traslade a la cola de mensajes fallidos. El valor predeterminado es 15.  | 
|  ExistenteConsumerlambdaobj?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Función Lambda opcional existente que se utilizará en lugar de la función predeterminada para recibir/consumir mensajes de la cola. Proporcionando tanto esto comoconsumerLambdaFunctionPropsprovocará un error.  | 
|  ConsumerLambdaFunctionProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  Propiedades opcionales proporcionadas por el usuario para anular las propiedades predeterminadas de la función Lambda de consumo.  | 
|  QueueEnvironmentVariableName?  |  string  |  Nombre opcional para el conjunto de variables de entorno URL de cola SQS para la función Lambda del productor.  | 

## Propiedades de patrón
<a name="pattern-properties-27"></a>


|  **Nombre**  |  **Tipo**  |  **Descripción**  | 
| --- | --- | --- | 
|  ConsumerLambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Devuelve una instancia de la función Lambda de consumo creada por el patrón.  | 
|  DeadLetterQueue?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  Devuelve una instancia de la cola de letras muertas creada por el patrón, si se implementa una.  | 
|  ProductorLambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Devuelve una instancia de la función Lambda productor creada por el patrón.  | 
|  SQSqueue  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-sqs.Queue.html)  |  Devuelve una instancia de la cola SQS creada por el patrón.  | 

## Configuración predeterminada
<a name="default-settings-27"></a>

 La implementación lista para usar de este constructo (sin propiedades anuladas) se ajustará a los siguientes valores predeterminados: 

### Funciones AWS Lambda
<a name="aws-lambda-function-27"></a>
+  Configurar el rol de IAM de acceso limitado con privilegios para las funciones de Lambda. 
+  Habilite la reutilización de conexiones con las funciones Keep-Alive para NodeJS Lambda. 
+  Habilite el X-Ray streo
+  Configuración de las variables de entorno:
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`(para Node 10.x y funciones superiores)

### Cola de Amazon SQS
<a name="amazon-sqs-queue-27"></a>
+  Despliegue una cola de mensajes fallidos de la cola principal. 
+  Habilite el cifrado en el lado de servidor para la cola principal mediante una clave KMS gestionada de AWS. 
+  Aplicación del cifrado de los datos en tránsito 

## Architecture
<a name="architecture-27"></a>

![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/aws-lambda-sqs-lambda.png)


## GitHub
<a name="github-27"></a>


<table>
<thead>
  <tr><th colspan="2"> Para ver el código de este patrón, crear/ver problemas y solicitudes de extracción, y mucho más: </th></tr>
</thead>
<tbody>
  <tr><td> ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/GitHub-Mark-32px.png) </td><td> [@aws -soluciones-constructs/aws-lambda-sqs-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-sqs-lambda) </td></tr>
</tbody>
</table>
