

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
<a name="aws-cognito-apigateway-lambda"></a>

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


 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 alla[Semantic versioning](https://semver.org/)Modello. 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**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/it_it/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_cognito\_apigateway\_lambda  | 
|  ![](http://docs.aws.amazon.com/it_it/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-cognito-apigateway-lambda  | 
|  ![](http://docs.aws.amazon.com/it_it/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.cognitoapigatewaylambda  | 

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

 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 il`addAuthorizers()`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
<a name="initializer-6"></a>

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

 *Parametri* 
+  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) 

## Puntelli di costruzione modelli
<a name="pattern-construct-props-6"></a>


|  **Nome**  |  **Tipo**  |  **Descrizione**  | 
| --- | --- | --- | 
|  EsistenteLambdaobj?  |  [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)  |  Istanza esistente dell'oggetto Function Lambda, fornendo sia questo chelambdaFunctionPropscauserà un errore.  | 
|  LambdafunctionPunps?  |  [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)  |  Proprietà facoltative fornite dall'utente per sovrascrivere le proprietà predefinite per la funzione Lambda. Ignorato se unexistingLambdaObjviene fornito.  | 
|  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)  |  Gli oggetti di scena forniti dall'utente facoltativi per sovrascrivere gli oggetti di scena predefiniti per 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)  |  L'utente facoltativo ha fornito oggetti di scena per sovrascrivere gli oggetti di scena predefiniti per il pool di utenti di Cog  | 
|  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)  |  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?  |  [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)  |  Opzionali degli oggetti di scena forniti dall'utente per sovrascrivere gli oggetti di scena predefiniti per il gruppo di log CloudWatch Logs.  | 

## Proprietà modelli
<a name="pattern-properties-6"></a>


|  **Nome**  |  **Tipo**  |  **Descrizione**  | 
| --- | --- | --- | 
|  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)  |  Restituisce un'istanza dell'API REST del gateway API creata dal modello.  | 
|  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)  |  Restituisce un'istanza della funzione Lambda creata dal pattern.  | 
|  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)  |  Restituisce un'istanza del pool di utenti Cognito creato dal pattern.  | 
|  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)  |  Restituisce un'istanza del client del pool di utenti Cognito creato dal pattern.  | 
|  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)  |  Restituisce un'istanza del ruolo IAM creato dal pattern che abilita la registrazione degli accessi dall'API REST del gateway 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)  |  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  |  [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)  |  Restituisce un'istanza dell'autorizzazione API Gateway creata dal modello.  | 

## Impostazioni predefinite
<a name="default-settings-6"></a>

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

### Amazon Cognito
<a name="amazon-cognito"></a>
+  Impostazione dei criteri per le password di utenti di. 
+  Applica la modalità di protezione avanzata per i pool di utenti 

### Amazon API Gateway
<a name="amazon-api-gateway-5"></a>
+  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
<a name="aws-lambda-function-2"></a>
+  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
<a name="architecture-6"></a>

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


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


<table>
<thead>
  <tr><th colspan="2"> Per visualizzare il codice per questo modello, creare/visualizzare problemi e richieste pull e altro ancora: </th></tr>
</thead>
<tbody>
  <tr><td> ![](http://docs.aws.amazon.com/it_it/solutions/latest/constructs/images/GitHub-Mark-32px.png) </td><td> [@aws -soluzioni-costruzioni/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>
