Amazon Kinesis Stream come sorgente per Pipes EventBridge - 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à.

Amazon Kinesis Stream come sorgente per Pipes EventBridge

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

Un flusso di dati Kinesis è un insieme di partizioni. Ogni partizione contiene una sequenza di record di dati. Un consumer è un'applicazione che elabora i dati da un flusso di dati Kinesis. È possibile mappare un EventBridge Pipe a un consumatore con throughput condiviso (iteratore standard) o a un consumatore con throughput dedicato con fan-out avanzato.

Per gli iteratori standard, EventBridge utilizza il HTTP protocollo per eseguire il polling di ogni shard nel flusso Kinesis alla ricerca di record. La pipe condivide la velocità di lettura effettiva con altri consumer della partizione.

Per ridurre al minimo la latenza e massimizzare la velocità di lettura effettiva, puoi creare un consumer di flussi di dati con fan-out avanzato. I consumer di flussi ottengono una connessione dedicata a ciascuna partizione che non ha alcun impatto su altre applicazioni che leggono dal flusso. La velocità di elaborazione effettiva dedicata può risultare utile se hai molte applicazioni che leggono gli stessi dati oppure se stai elaborando nuovamente un flusso con record di grandi dimensioni. Kinesis spinge i record a oltre /2. EventBridge HTTP Per informazioni dettagliate su flussi di dati Kinesis, consulta Lettura dei dati dal flusso di dati Amazon Kinesis.

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 degli eventi in Amazon EventBridge Pipes.

[ { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "approximateArrivalTimestamp": 1545084650.987 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" }, { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692540925702759324208523137515618", "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=", "approximateArrivalTimestamp": 1545084711.166 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" } ]

Flussi di polling e batching

EventBridge analizza i frammenti del tuo stream Kinesis alla ricerca di record a una frequenza base di quattro volte al secondo. Quando i record sono disponibili, EventBridge elabora l'evento e attende il risultato. Se l'elaborazione ha esito positivo, EventBridge riprende il polling finché non riceve altri record.

Per impostazione predefinita, EventBridge richiama la pipe non appena i record sono disponibili. Se il batch che EventBridge legge dalla sorgente contiene un solo record, viene elaborato un solo 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 elaborare gli eventi, EventBridge continua a leggere i record dall'origine fino alla raccolta di un batch completo, alla scadenza della finestra di batch o al raggiungimento del limite di payload di 6 MB.

È possibile anche aumentare la concorrenza elaborando più batch da ogni partizione in parallelo. EventBridge può elaborare fino a 10 batch in ogni shard contemporaneamente. Se si aumenta il numero di batch simultanei per shard, si garantisce EventBridge comunque l'elaborazione in ordine 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 che eseguono il EventBridge polling da uno shard tramite un fattore di parallelizzazione compreso tra 1 (impostazione predefinita) e 10. Ad esempio, se si imposta su ParallelizationFactor 2, è possibile avere un massimo di 200 esecuzioni EventBridge Pipe simultanee per elaborare 100 frammenti di dati Kinesis. Ciò permette di dimensionare verso l'alto il throughput di elaborazione quando il volume dei dati è volatile e l'IteratorAge è alta. 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 assicurarti di non perdere alcun evento, specifica la posizione di partenza del flusso come TRIM_HORIZON o AT_TIMESTAMP.

Segnalazione errori articoli batch

Quando EventBridge utilizza ed elabora i dati in streaming da una fonte, per impostazione predefinita il checkpoint si basa sul numero di sequenza più alto di un batch, ma solo quando il batch ha esito positivo. 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 successo e di errore

Se restituisci una delle seguenti condizioni, EventBridge considera un batch come un successo completo:

  • Una batchItemFailure lista vuota

  • Un batchItemFailure elenco nullo

  • Un vuoto EventResponse

  • Un valore nullo EventResponse

Se restituisci una delle seguenti condizioni, EventBridge considera un batch come un completo fallimento:

  • Una stringa vuota itemIdentifier

  • Un valore nullo itemIdentifier

  • Un itemIdentifier con un nome chiave errato

EventBridge riprova gli errori in base alla strategia di ripetizione dei tentativi.