aws-cognito-apigateway-lambda - Costrutti delle soluzioni AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

aws-cognito-apigateway-lambda

Tutte le classi sono in fase di sviluppo attivo e soggette a modifiche o rimozione non compatibili con le versioni precedenti in qualsiasi versione futura. Questi non sono soggetti allaSemantic versioningModello. Ciò significa che, mentre è possibile utilizzarli, potrebbe essere necessario aggiornare il codice sorgente quando si esegue l'aggiornamento a una versione più recente di questo pacchetto.

Nota: Per garantire la corretta funzionalità, i pacchetti AWS Solutions Constructs e i pacchetti AWS CDK nel progetto devono essere della stessa versione.

Linguaggio Pacchetto
Python
aws_solutions_constructs.aws_cognito_apigateway_lambda
TypeScript
@aws-solutions-constructs/aws-cognito-apigateway-lambda
Java
software.amazon.awsconstructs.services.cognitoapigatewaylambda

Overview

Questo Construct di soluzioni AWS implementa Amazon Cognito proteggendo un'API REST supportata da Amazon API Gateway Lambda.

Ecco una definizione di modello distribuibile minima in 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' } });

Se stai definendo risorse e metodi sulla tua API (ad es.proxy = false), è necessario chiamare iladdAuthorizers()dopo che l'API è completamente definita. Ciò garantisce che ogni metodo nella tua API sia protetto.

Di seguito è illustrato un esempio in 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);

Parametri

Puntelli di costruzione modelli

Nome Tipo Descrizione
EsistenteLambdaobj? lambda.Function Istanza esistente dell'oggetto Function Lambda, fornendo sia questo chelambdaFunctionPropscauserà un errore.
LambdafunctionPunps? lambda.FunctionProps Proprietà facoltative fornite dall'utente per sovrascrivere le proprietà predefinite per la funzione Lambda. Ignorato se unexistingLambdaObjviene fornito.
ApiGatewayProps? api.LambdaRestApiProps Gli oggetti di scena forniti dall'utente facoltativi per sovrascrivere gli oggetti di scena predefiniti per API Gateway
CognitouserPoolProps? cognito.UserPoolProps L'utente facoltativo ha fornito oggetti di scena per sovrascrivere gli oggetti di scena predefiniti per il pool di utenti di Cog
CognitouserPoolClientProps? cognito.UserPoolClientProps Gli oggetti di scena forniti dall'utente facoltativo per sovrascrivere gli oggetti di scena predefiniti per il client del pool di utenti di Cog
LogGroupProps? logs.LogGroupProps Opzionali degli oggetti di scena forniti dall'utente per sovrascrivere gli oggetti di scena predefiniti per il gruppo di log CloudWatch Logs.

Proprietà modelli

Nome Tipo Descrizione
ApiGateway api.RestApi Restituisce un'istanza dell'API REST del gateway API creata dal modello.
LambdaFunction lambda.Function Restituisce un'istanza della funzione Lambda creata dal pattern.
userPool cognito.UserPool Restituisce un'istanza del pool di utenti Cognito creato dal pattern.
UserPoolclient cognito.UserPoolClient Restituisce un'istanza del client del pool di utenti Cognito creato dal pattern.
APigatewayCloudWatchRole iam.Role Restituisce un'istanza del ruolo IAM creato dal pattern che abilita la registrazione degli accessi dall'API REST del gateway API a CloudWatch.
ApiGatewayLogGroup logs.LogGroup Restituisce un'istanza del gruppo di log creato dal modello a cui vengono inviati i log di accesso API REST del API Gateway API.
APigatewayAuthorizer api.CfnAuthorizer Restituisce un'istanza dell'autorizzazione API Gateway creata dal modello.

Impostazioni predefinite

L'implementazione predefinita di questo modello senza sostituzioni imposterà i seguenti valori predefiniti:

Amazon Cognito

  • Impostazione dei criteri per le password di utenti di.

  • Applica la modalità di protezione avanzata per i pool di utenti

Amazon API Gateway

  • Distribuzione di un endpoint API ottimizzato per gli edge

  • Attivazione della registrazione CloudWatch per API Gateway

  • Configurare il ruolo IAM di accesso ai privilegi minimi per il API Gateway

  • Impostare l'AuthorizationType predefinito per tutti i metodi API su IAM

  • Abilita il monitoraggio di X-Ray

Funzione di AWS Lambda

  • Configurare il ruolo IAM di accesso con privilegi limitati per la funzione Lambda

  • Abilita il riutilizzo delle connessioni con Keep-Alive per la funzione NodeJS Lambda

  • Abilita il monitoraggio di X-Ray

  • Impostazione delle variabili di ambiente:

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(per le funzioni Node 10.x e successive)

Architecture

GitHub

Per visualizzare il codice per questo modello, creare/visualizzare problemi e richieste pull e altro ancora:
@aws -soluzioni-costruzioni/aws-cognito-apigateway-lambda