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

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_sqs
TypeScript
@aws-solutions-constructs/aws-lambda-sqs
Java
software.amazon.awsconstructs.services.lambdasqs

Overview

Questo AWS Solutions Construct implementa una funzione AWS Lambda collegata a una coda Amazon SQS.

Ecco una definizione di modello distribuibile minima in TypeScript:

import { LambdaToSqs, LambdaToSqsProps } from "@aws-solutions-constructs/aws-lambda-sqs"; new LambdaToSqs(this, 'LambdaToSqsPattern', { 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' } });

Initializer

new LambdaToSqs(scope: Construct, id: string, props: LambdaToSqsProps);

Parametri

Puntelli di costruzione modelli

Nome Tipo Descrizione
EsistenteLambdaobj? lambda.Function Una funzione Lambda opzionale esistente da utilizzare al posto della funzione predefinita. Fornire sia questo chelambdaFunctionPropsIn caso contrario, si verifica un errore
LambdafunctionPunps? lambda.FunctionProps Proprietà facoltative fornite dall'utente per sovrascrivere le proprietà predefinite per la funzione Lambda.
ExistingQueueObj? sqs.Queue Una coda SQS esistente facoltativa da utilizzare al posto della coda predefinita. Fornire sia questo chequeuePropsIn caso contrario, si verifica un errore
QueueProps? sqs.QueueProps Proprietà facoltative fornite dall'utente per sovrascrivere le proprietà predefinite per la coda SQS.
EnableQueuePurging? boolean Indica se concedere autorizzazioni aggiuntive alla funzione Lambda che consente di eliminare la coda SQS. L'impostazione predefinita è false.
DeployDeadLetterQueue? boolean Se creare una coda secondaria da utilizzare come coda DLQ. L'impostazione predefinita è true.
DeadLetterQueueProps? sqs.QueueProps Elementi di scena facoltativi forniti dall'utente per sovrascrivere gli oggetti di scena predefiniti per la coda delle lettere morte. Utilizzato solo se il valoredeployDeadLetterQueueè impostato su true.
MaxReceiveCount? number Il numero di volte in cui un messaggio può essere rimosso senza successo prima di essere spostato nella coda DLQ. L'impostazione predefinita è 15.
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 di interfaccia nel VPC per Amazon SQS. Se viene fornito un VPC esistente,deployVpcnon può esseretrue: . Unec2.IVpcviene utilizzato per consentire ai client di fornire i VPC che esistono al di fuori dello stack utilizzando ilec2.Vpc.fromLookup()Metodo.
DeployVPC? boolean Se creare un nuovo VPC basato suvpcPropsin cui distribuire questo modello. Impostazione di questo limite sutruedistribuirà il VPC minimo e più privato per eseguire il pattern:
  • Una sottorete isolata in ciascuna zona di disponibilità utilizzata dal programma CDK

  • enableDnsHostnameseenableDnsSupportsaranno entrambi impostati sutrue

Se questa proprietà ètrue, quindiexistingVpcnon può essere specificato. L'impostazione predefinita è false.
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 sovrascritti. SedeployVpcnon ètrue, questa proprietà verrà ignorata.
QueueEnvironmentVariableName? string Nome facoltativo per la variabile di ambiente URL della coda SQS impostata per la funzione Lambda.

Proprietà del modello

Nome Tipo Descrizione
DeadLetterQueue? sqs.Queue Restituisce un'istanza della coda di lettere morte creata dal modello, se ne viene distribuita una.
LambdaFunction lambda.Function Restituisce un'istanza della funzione Lambda creata dal pattern.
SQSqueue sqs.Queue Restituisce un'istanza della coda SQS creata dal pattern.
VPC? ec2.IVpc Restituisce un'istanza del VPC creato o utilizzato dal pattern (se presente). Questo può essere un VPC creato dal modello o un VPC fornito al costruttore del pattern.

Impostazioni predefinite

L'implementazione predefinita del Costrutto senza alcun override 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.

  • Consenti alla funzione di inviare solo messaggi alla coda (l'eliminazione può essere abilitata usando il comandoenableQueuePurge).

  • Abilitare il rilevamento di X-Ray

  • Impostazione delle variabili di ambiente:

    • SQS_QUEUE_URL

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

Coda Amazon SQS

  • Distribuire la coda DLQ SQS per la coda SQS di origine.

  • Abilitare la crittografia lato server per la coda SQS di origine tramite la chiave AWS gestita.

  • Applicazione della crittografia dei dati in transito

Architecture

GitHub

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