aws-cognito-apigateway-lambda - Construcciones de Soluciones de AWS

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

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 laVersiones semánticasEl 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
Python
aws_solutions_constructs.aws_cognito_apigateway_lambda
Mecanografía
@aws-solutions-constructs/aws-cognito-apigateway-lambda
Java
software.amazon.awsconstructs.services.cognitoapigatewaylambda

Overview

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 laaddAuthorizers()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

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

Parámetros

Patrón de construcción

Nombre Tipo Descripción
¿ExistenteLambdaobj? lambda.Function Instancia existente del objeto Lambda Function, proporcionando tanto esto comolambdaFunctionPropsprovocará un error.
¿LambdaFunctionProps? lambda.FunctionProps Propiedades opcionales proporcionadas por el usuario para anular las propiedades predeterminadas de la función Lambda. Se pasa por alto si unexistingLambdaObjse encuentra.
¿ApigateWayProps? api.LambdaRestApiProps Los apoyos proporcionados por el usuario opcionales para anular los apoyos predeterminados para API Gateway
¿CognitouserPoolProps? cognito.UserPoolProps Los accesorios proporcionados por el usuario opcionales para anular los accesorios predeterminados para el grupo de usuarios de Cognito
¿CognitouserPoolClientProps? cognito.UserPoolClientProps Los accesorios proporcionados por el usuario opcionales para anular los accesorios predeterminados para Cognito User Pool Client
LogGroupProps? logs.LogGroupProps Los apoyos opcionales proporcionados por el usuario para anular los apoyos predeterminados para el grupo de registros de CloudWatch Logs.

Propiedades de patrón

Nombre Tipo Descripción
ApiGateway api.RestApi Devuelve una instancia de la API REST de API Gateway creada por el patrón.
LambdaFunction lambda.Function Devuelve una instancia de la función Lambda creada por el patrón.
userPool cognito.UserPool Devuelve una instancia del grupo de usuarios de Cognito creado por el patrón.
UserPoolClient cognito.UserPoolClient Devuelve una instancia del cliente de grupo de usuarios de Cognito creado por el patrón.
ApigatewayCloudWatchRole iam.Role 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 logs.LogGroup 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 api.CfnAuthorizer Devuelve una instancia del autorizador de API Gateway creado por el patrón.

Configuración predeterminada

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

Amazon Cognito

  • 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

  • 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

  • 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

GitHub

Para ver el código de este patrón, crear/ver problemas y solicitudes de extracción, y mucho más:
@aws -soluciones-constructs/aws-cognito-apigateway-lambda