Flusso Amazon DynamoDB come origine - Amazon EventBridge

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

Flusso Amazon DynamoDB come origine

È possibile utilizzare EventBridge Pipes per ricevere record in un flusso DynamoDB. Puoi quindi eventualmente filtrare o migliorare questi record prima di inviarli a una delle destinazioni disponibili per l'elaborazione. Esistono impostazioni specifiche di flussi Amazon DynamoDB che puoi scegliere quando configuri una pipe. EventBridge Pipes mantiene l'ordine dei record dal flusso di dati durante l'invio dei dati alla destinazione.

Importante

La disabilitazione di un flusso DynamoDB che è l'origine di una pipe fa sì che tale pipe diventi inutilizzabile, anche se successivamente si riabilita il flusso. Ciò avviene perché:

  • Non è possibile interrompere, avviare o aggiornare una pipe la cui origine è disabilitata.

  • Non è possibile aggiornare una pipe con una nuova origine dopo la creazione. Quando riabiliti un flusso DynamoDB, a quel flusso viene assegnato un nuovo nome della risorsa Amazon (ARN) e non è più associato alla tua pipe.

Se riabiliti il flusso DynamoDB, dovrai creare una nuova pipe utilizzando il nuovo ARN del flusso.

Esempio di evento

L'evento di esempio seguente mostra le informazioni ricevute dalla pipe. È possibile utilizzare questo evento per creare e filtrare i modelli di eventi o per definire la trasformazione degli input. Non tutti i campi possono essere filtrati. Per ulteriori informazioni su quali campi è possibile filtrare, consulta Filtraggio Amazon EventBridge Pipes.

[ { "eventID": "1", "eventVersion": "1.0", "dynamodb": { "Keys": { "Id": { "N": "101" } }, "NewImage": { "Message": { "S": "New item!" }, "Id": { "N": "101" } }, "StreamViewType": "NEW_AND_OLD_IMAGES", "SequenceNumber": "111", "SizeBytes": 26 }, "awsRegion": "us-west-2", "eventName": "INSERT", "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable", "eventSource": "aws:dynamodb" }, { "eventID": "2", "eventVersion": "1.0", "dynamodb": { "OldImage": { "Message": { "S": "New item!" }, "Id": { "N": "101" } }, "SequenceNumber": "222", "Keys": { "Id": { "N": "101" } }, "SizeBytes": 59, "NewImage": { "Message": { "S": "This item has changed" }, "Id": { "N": "101" } }, "StreamViewType": "NEW_AND_OLD_IMAGES" }, "awsRegion": "us-west-2", "eventName": "MODIFY", "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable", "eventSource": "aws:dynamodb" } ]

Flussi di polling e batching

EventBridge esegue il polling delle partizioni presenti nel flusso DynamoDB per cercare i record a una velocità di base di quattro volte al secondo. Quando sono disponibili dei record, EventBridge elabora l'evento e attende il risultato. Se l'elaborazione ha esito positivo, EventBridge riprende a eseguire il polling fino a che non riceve più record.

Per impostazione predefinita, EventBridge richiama la pipe non appena i record sono disponibili. Se il batch che EventBridge legge dall'origine contiene un solo record, viene elaborato solo un evento. Per evitare di elaborare pochi record, puoi indicare alla pipe di memorizzare nel buffer i record per un massimo di cinque minuti configurando un periodo di batching. Prima di richiamare gli eventi, EventBridge continua a leggere i record dall'origine fino a quando non ha raccolto un batch completo, fino alla scadenza del periodo di batching o fino a quando il batch non ha raggiunto il limite del payload di 6 MB.

È anche possibile aumentare la simultaneità elaborando più batch da ogni partizione in parallelo. EventBridge può elaborare fino a 10 batch contemporaneamente in ogni partizione. Se aumenti il numero di batch simultanei per partizione, EventBridge garantisce comunque l'ordine di elaborazione a livello di chiave di partizione.

Configura l'impostazione ParallelizationFactor per elaborare una partizione di un flusso di dati Kinesis o DynamoDB con più esecuzioni di pipe simultanee. È possibile specificare il numero di batch simultanei di cui EventBridge esegue il polling da una partizione tramite un fattore di parallelizzazione compreso tra 1 (predefinito) e 10. Ad esempio, se imposti ParallelizationFactor su 2, possono esserci al massimo 200 esecuzioni di pipe EventBridge simultanee per elaborare 100 partizioni di dati Kinesis. Ciò permette di aumentare la velocità effettiva di elaborazione quando il volume di dati non è stabile e IteratorAge è alto. Si noti che il fattore di parallelizzazione non funzionerà se si utilizza l'aggregazione Kinesis.

Posizioni di partenza di polling e flussi

Tieni presente che il polling di origine dei flussi durante la creazione e gli aggiornamenti della pipe alla fine è coerente.

  • Durante la creazione della pipe, potrebbero essere necessari alcuni minuti per l'avvio degli eventi di polling dal flusso.

  • Durante gli aggiornamenti della pipe per la configurazione del polling di origine, potrebbero essere necessari alcuni minuti per interrompere e riavviare gli eventi di polling dal flusso.

Ciò significa che se specifichi LATEST come posizione iniziale del flusso, la pipe potrebbe perdere degli eventi inviati durante la creazione o gli aggiornamenti della pipe. Per garantire che nessun evento venga perso, specifica la posizione iniziale del flusso come TRIM_HORIZON.

Segnalazione errori articoli batch

Quando EventBridge utilizza ed elabora i dati di streaming da un'origine, per impostazione predefinita imposta i checkpoint al numero di sequenza più alto di un batch solo quando il batch è riuscito completamente. Per evitare di rielaborare i messaggi correttamente elaborati in un batch non riuscito, puoi configurare l'arricchimento o la destinazione in modo da restituire un oggetto che indichi quali messaggi hanno avuto esito positivo e quali non. Questa operazione è nota come risposta batch parziale.

Per ulteriori informazioni, consulta Errori batch parziali.

Condizioni di batch riuscito e non riuscito

EventBridge considera un batch come riuscito completamente se viene restituito uno dei seguenti elementi:

  • Un elenco batchItemFailure vuoto

  • Un batchItemFailure elenco nullo

  • Un vuoto EventResponse

  • Un valore nullo EventResponse

EventBridge considera un batch come non riuscito completamente se viene restituito uno dei seguenti elementi:

  • Una stringa itemIdentifier vuota

  • Un valore nullo itemIdentifier

  • Un itemIdentifier con un nome chiave errato

EventBridge esegue nuovi tentativi per gli errori in base alla strategia di ripetizione.