Streams e trigger DynamoDB AWS Lambda - Amazon DynamoDB

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à.

Streams e trigger DynamoDB AWS Lambda

Amazon DynamoDB è integrato AWS Lambda in modo da poter creare trigger, parti di codice che rispondono automaticamente agli eventi in DynamoDB Streams. Con i trigger è possibile creare applicazioni che rispondono alle modifiche di dati nelle tabelle DynamoDB.

Se abiliti DynamoDB Streams su una tabella, puoi associare il flusso Amazon Resource Name ARN () a una funzione che scrivi AWS Lambda . Tutte le operazioni di mutazione su quella tabella DynamoDB possono quindi essere acquisite come elemento nel flusso. Ad esempio, è possibile impostare un trigger in modo che quando un elemento in una tabella viene modificato, nel flusso della tabella venga immediatamente visualizzato un nuovo record.

Nota

Se sottoscrivi più di due funzioni Lambda a un flusso DynamoDB, potrebbe verificarsi una limitazione della lettura.

Il servizio AWS Lambda esegue il polling del flusso alla ricerca di nuovi record quattro volte al secondo. Quando sono disponibili nuovi record di flusso, la funzione Lambda viene richiamata in modo sincrono. Puoi sottoscrivere fino a due funzioni Lambda allo stesso flusso DynamoDB. Se sottoscrivi più di due funzioni Lambda allo stesso flusso DynamoDB, potrebbe verificarsi una limitazione della lettura.

La funzione Lambda può inviare una notifica, avviare un flusso di lavoro o eseguire numerose altre operazioni specificate. Ad esempio, è possibile scrivere una funzione Lambda semplicemente per copiare ogni record di flusso in un'archiviazione persistente, come il Gateway di file di Amazon S3 (Amazon S3), per creare un percorso di verifica permanente dell'attività di scrittura della tabella. Oppure, supponi di avere un'applicazione di gioco per dispositivi mobili che scrive in una tabella GameScores. Quando l'attributo TopScore della tabella GameScores viene aggiornato, viene scritto un record di flusso corrispondente nel flusso della tabella. Questo evento potrebbe quindi attivare una funzione Lambda che pubblica un messaggio di congratulazioni su un social network. È anche possibile scrivere questa funzione per ignorare tutti i record di flusso che non sono aggiornamenti di GameScores o che non modificano l'attributo TopScore.

Se la funzione restituisce un errore, Lambda ritenta il batch fino a quando l'elaborazione non riesce o i dati scadono. È inoltre possibile configurare Lambda in modo da riprovare con un batch di dimensioni inferiori, limitare il numero di tentativi, eliminare i record una volta che diventano troppo vecchi e altre opzioni.

Come best practice in materia di prestazioni, la funzione Lambda deve essere di breve durata. Per evitare di introdurre ritardi di elaborazione non necessari, inoltre, non dovrebbe eseguire una logica complessa. In particolare, per un flusso a velocità elevata, è meglio attivare flussi di lavoro Step Function di post-elaborazione asincrona rispetto a funzioni Lambda sincrone a lunga durata.

Non è possibile utilizzare lo stesso trigger Lambda su account diversi AWS . Sia la tabella DynamoDB che le funzioni Lambda devono appartenere allo stesso account. AWS

Per ulteriori informazioni in merito AWS Lambda, consulta la Guida per gli sviluppatori AWS Lambda .