aws-lambda-dynamodb - 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-lambda-dynamodb

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 allaIl controllo delle versioni semanticheModello. 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_lambda_dynamodb
TypeScript
@aws-solutions-constructs/aws-lambda-dynamodb
Java
software.amazon.awsconstructs.services.lambdadynamodb

Overview

Questo AWS Solutions Construct implementa la funzione AWS Lambda e la tabella Amazon DynamoDB con autorizzazioni con privilegi minimi.

Ecco una definizione di modello distribuibile minima in TypeScript:

import { LambdaToDynamoDBProps, LambdaToDynamoDB } from '@aws-solutions-constructs/aws-lambda-dynamodb'; const props: LambdaToDynamoDBProps = { 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' } }; new LambdaToDynamoDB(this, 'test-lambda-dynamodb-stack', props);

Initializer

new LambdaToDynamoDB(scope: Construct, id: string, props: LambdaToDynamoDBProps);

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.
DynamoTableProps? dynamodb.TableProps L'utente facoltativo ha fornito oggetti di scena per sovrascrivere gli oggetti di scena predefiniti per DynamoDB Table
TableObj esistente? dynamodb.Table Istanza esistente dell'oggetto tabella DynamoDB, fornendo sia questo chedynamoTablePropscauserà un errore.
TablePermissions? string Autorizzazioni di tabella facoltative da concedere alla funzione Lambda. Può essere specificata una delle seguenti opzioni:All,Read,ReadWrite, oppureWrite: .
TableEnvironmentVariableName? string Nome facoltativo per la variabile di ambiente della tabella DynamoDB impostata per la funzione Lambda.
VPC esistente? ec2.IVpc Un VPC opzionale esistente in cui deve essere distribuito questo modello. Quando viene distribuita in un VPC, la funzione Lambda utilizzerà ENI nel VPC per accedere alle risorse di rete e verrà creato un endpoint gateway nel VPC per Amazon DynamoDB. Se viene fornito un VPC esistente,deployVpcnon può esseretrue: . Questo utilizzaec2.IVpcper consentire ai client di fornire VPC che esistono al di fuori dello stack utilizzando il metodoec2.Vpc.fromLookup()Metodo.
VPCProp? ec2.VpcProps Proprietà facoltative fornite dall'utente per sovrascrivere le proprietà predefinite per il nuovo VPC.enableDnsHostnames,enableDnsSupport,natGateways, esubnetConfigurationsono impostati dal modello, quindi tutti i valori per quelle proprietà fornite qui verranno ignorati. SedeployVpcnon ètrueallora questa proprietà verrà ignorata.
DeployVPC? boolean Se creare un nuovo VPC basato suvpcPropsin cui distribuire questo modello. Impostando questo su true verrà distribuito il VPC minimo e più privato per eseguire il pattern:
  • Una sottorete isolata in ogni zona di disponibilità utilizzata dal programma CDK

  • enableDnsHostnameseenableDnsSupportsaranno entrambi impostati sutrue

Se questa proprietà ètrue, quindiexistingVpcnon può essere specificato. L'impostazione predefinita è false.

Proprietà modelli

Nome Tipo Descrizione
DynamoTable dynamodb.Table Restituisce un'istanza della tabella DynamoDB creata dalla serie.
LambdaFunction lambda.Function Restituisce un'istanza della funzione Lambda creata dal pattern.
VPC? ec2.IVpc Restituisce un'interfaccia sul VPC utilizzato dal modello (se presente). Questo può essere un VPC creato dal pattern o dal VPC fornito al costruttore del pattern.

Impostazioni predefinite

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

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.

  • Attivare il tracciamento X-Ray.

  • Impostazione delle variabili di ambiente:

    • DDB_TABLE_NAME (predefinito)

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

Tabella Amazon DynamoDB

  • Impostare la modalità di fatturazione per DynamoDB Table su richiesta (Paga per richiesta).

  • Abilitare la crittografia lato server per DynamoDB Table utilizzando la chiave di gestione delle chiavi gestita AWS.

  • Crea una chiave di partizione chiamata 'id' per DynamoDB Table.

  • Mantenere la tabella quando si elimina lo stack CloudFormation.

  • Backup continui e ripristino point-in-time.

Architecture

GitHub

Per visualizzare il codice per questo modello, creare/visualizzare problemi e richieste pull e altro ancora:
@aws -solutions-constructs/aws-lambda-dynamodb