

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-cognito-apigateway-lambda
<a name="aws-cognito-apigateway-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[Versiones semánticas](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\_cognito\_apigateway\_lambda  | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/typescript.png) Mecanografía  |  @aws-solutions-constructs/aws-cognito-apigateway-lambda  | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cognitoapigatewaylambda  | 

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

 Este Construct de soluciones de AWS implementa Amazon Cognito protegiendo una API REST respaldada por Lambda de Amazon API Gateway.

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

```
import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda';

new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', {
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        handler: 'index.handler'
    }
});
```

 Si está definiendo recursos y métodos en su API (por ejemplo,`proxy = false`), debe llamar a la`addAuthorizers()`después de que la API esté completamente definida. Esto garantiza que todos los métodos de su API estén protegidos.

 A continuación se muestra un ejemplo en TypeScript: 

```
import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda';

const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', {
    lambdaFunctionProps: {
        // This assumes a handler function in lib/lambda/index.js
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        runtime: lambda.Runtime.NODEJS_12_X,
        handler: 'index.handler'
    },
    apiGatewayProps: {
      proxy: false
    }
});

const resource = construct.apiGateway.root.addResource('foobar');
resource.addMethod('POST');

// Mandatory to call this method to Apply the Cognito Authorizers on all API methods
construct.addAuthorizers();
```

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

```
new CognitoToApiGatewayToLambda(scope: Construct, id: string, props: CognitoToApiGatewayToLambdaProps);
```

 *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[`CognitoToApiGatewayToLambdaProps`](#pattern-construct-props-6) 

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


|  **Nombre**  |  **Tipo**  |  **Descripción**  | 
| --- | --- | --- | 
|  ¿ExistenteLambdaobj?  |  [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)  |  Instancia existente del objeto Lambda Function, proporcionando tanto esto comolambdaFunctionPropsprovocará un error.  | 
|  ¿LambdaFunctionProps?  |  [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. Se pasa por alto si unexistingLambdaObjse encuentra.  | 
|  ¿ApigateWayProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.LambdaRestApi.html)  |  Los apoyos proporcionados por el usuario opcionales para anular los apoyos predeterminados para API Gateway  | 
|  ¿CognitouserPoolProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolProps.html)  |  Los accesorios proporcionados por el usuario opcionales para anular los accesorios predeterminados para el grupo de usuarios de Cognito  | 
|  ¿CognitouserPoolClientProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClientProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClientProps.html)  |  Los accesorios proporcionados por el usuario opcionales para anular los accesorios predeterminados para Cognito User Pool Client  | 
|  LogGroupProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  Los apoyos opcionales proporcionados por el usuario para anular los apoyos predeterminados para el grupo de registros de CloudWatch Logs.  | 

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


|  **Nombre**  |  **Tipo**  |  **Descripción**  | 
| --- | --- | --- | 
|  ApiGateway  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  Devuelve una instancia de la API REST de API Gateway creada por el patrón.  | 
|  LambdaFunction  |  [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 creada por el patrón.  | 
|  userPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html)  |  Devuelve una instancia del grupo de usuarios de Cognito creado por el patrón.  | 
|  UserPoolClient  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html)  |  Devuelve una instancia del cliente de grupo de usuarios de Cognito creado por el patrón.  | 
|  ApigatewayCloudWatchRole  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  Devuelve una instancia de la función de IAM creada por el patrón que permite el registro de acceso desde API Gateway REST API a CloudWatch.  | 
|  ApigatewayLogGroup  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  Devuelve una instancia del grupo de registros creado por el patrón al que se envían los registros de acceso de API REST de API de API Gateway de API.  | 
|  ApiGateWayAuthorizer  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.CfnAuthorizer.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.CfnAuthorizer.html)  |  Devuelve una instancia del autorizador de API Gateway creado por el patrón.  | 

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

 La implementación lista para usar de este patrón sin anulación establecerá los siguientes valores predeterminados:

### Amazon Cognito
<a name="amazon-cognito"></a>
+  Configuración de directiva de contraseñas para grupos de usuarios de 
+  Aplicar el modo de seguridad avanzada para grupos de usuarios 

### Amazon API Gateway
<a name="amazon-api-gateway-5"></a>
+  Implementación de un extremo de API optimizado para bordes 
+  Habilitar el registro de CloudWatch para API Gateway 
+  Configurar el rol de IAM de acceso mínimo con privilegios para API Gateway 
+  Establezca el AuthorizationType predeterminado para todos los métodos API en IAM 
+  Habilitar el X-Ray streo

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

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

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


## GitHub
<a name="github-6"></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-cognito-apigateway-lambda](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-cognito-apigateway-lambda) </td></tr>
</tbody>
</table>
