As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Fluxo do Amazon Kinesis como origem para o EventBridge Pipes
É possível usar o EventBridge Pipes para receber registros em um fluxo de dados do Kinesis. Opcionalmente, é possível filtrar ou aprimorar esses registros antes de enviá-los para um dos destinos disponíveis para processamento. Há configurações específicas do Kinesis que podem ser escolhidas ao configurar um pipe. O EventBridge Pipes mantém a ordem dos registros do fluxo de dados ao enviar esses dados para o destino.
Uma transmissão de dados do Kinesis é um conjunto de fragmentos. Cada fragmento contém uma sequência de registros de dados. Um consumidor é um aplicativo que processa os dados de um stream de dados do Kinesis. É possível mapear uma EventBridge Pipe para um consumidor de throughput compartilhado (iterador padrão) ou para um consumidor de throughput dedicado com distribuição avançada.
Para iteradores padrão, o EventBridge usa o protocolo HTTP para sondar cada fragmento no fluxo do Kinesis para registros. O pipe compartilha o throughput de leitura com outros consumidores do fragmento.
Para minimizar a latência e maximizar o throughput de leitura, é possível criar um consumidor de fluxo de dados com distribuição avançada. Os consumidores de fluxo obtêm uma conexão dedicada para cada estilhaço que não afeta outros aplicativos que fazem leitura do fluxo. O throughput dedicado pode ajudar se você tiver muitos aplicativos lendo os mesmos dados, ou se você estiver reprocessando um fluxo com grandes registros. O Kinesis envia registros ao EventBridge por meio de HTTP/2. Para obter detalhes sobre fluxos de dados do Kinesis, consulte Como ler dados do Amazon Kinesis Data Streams.
Evento de exemplo
O exemplo de evento a seguir mostra as informações recebidas pelo pipe. É possível usar esse evento para criar e filtrar seus padrões de eventos ou para definir a transformação de entrada. Nem todos os campos podem ser filtrados. Para mais informações sobre quais campos podem ser filtrados, consulte Filtragem de eventos no 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" } ]
Fluxos de sondagem e agrupamento em lotes
O EventBridge sonda os fragmentos em seu fluxo do Kinesis em busca de registros a uma taxa básica de quatro vezes por segundo. Quando os registros estão disponíveis, o EventBridge processa o evento e aguarda o resultado. Se o processamento tiver êxito, o EventBridge continua a sondagem até que ela receba mais registros.
Por padrão, o EventBridge invoca seu pipe assim que os registros estão disponíveis. Se o lote que o EventBridge lê da origem tiver apenas um registro nele, apenas um evento será processado. Para evitar invocar a função com um número pequeno de registros, você pode instruir à origem dos eventos para fazer o buffer dos registros por até cinco minutos, configurando uma janela de processamento de lotes. Antes de processar os eventos, o EventBridge continua a ler registros da origem de eventos até coletar um lote inteiro, até que a janela de processamento de lotes expire ou até que o lote atinja o limite de carga útil de 6 MB.
Você também pode aumentar a simultaneidade processando vários lotes de cada fragmento em paralelo. O EventBridge pode processar até 10 lotes em cada fragmento simultaneamente. Se aumentar o número de lotes simultâneos por fragmento, o EventBridge ainda garantirá o processamento por ordem no nível da chave de partição.
Configure a configuração ParallelizationFactor para processar um fragmento de um fluxo de dados do Kinesis ou do DynamoDB com mais de uma execução do pipe simultaneamente. É possível especificar o número de lotes simultâneos que o Lambda pesquisa de um fragmento por meio de um fator de paralelização de 1 (padrão) a 10. Por exemplo, ao definir ParallelizationFactor como 2, você poderá ter no máximo 200 execuções simultâneas do EventBridge Pipe para processar 100 fragmentos de dados do Kinesis. Isso ajuda a aumentar o throughput de processamento quando o volume de dados é volátil e o valor de IteratorAge é alto. Observe que o fator de paralelização não funcionará se você estiver usando a agregação do Kinesis.
Posição inicial de sondagem e fluxo
Esteja ciente de que a origem de fluxo durante a criação e as atualizações de pipes é, finamente, consistente.
Durante a criação do pipe, pode levar alguns minutos para a sondagem de eventos do fluxo iniciar.
Durante as atualizações de pipe para a configuração de sondagem de origem, pode levar alguns minutos para interromper e reiniciar a sondagem de eventos do fluxo.
Este comportamento significa que, se especificar LATEST como posição inicial do fluxo, o mapeamento da origem do evento poderá perder eventos durante a criação ou as atualizações. Para garantir que nenhum evento seja perdido, especifique a posição inicial do fluxo como TRIM_HORIZON ou AT_TIMESTAMP.
Gerar relatórios de falhas de itens de lote
Quando o EventBridge consome e processa dados de streaming de uma origem, ele definirá checkpoints por padrão no número mais elevado na sequência de um lote, mas somente quando o lote tiver êxito total. Para evitar o reprocessamento de todas as mensagens processadas com êxito em um lote com falha, é possível configurar o enriquecimento ou o destino para retornar um objeto indicando quais mensagens tiveram êxito e quais falharam. Isso se chama resposta parcial em lote.
Para obter mais informações, consulte Lote com falha parcial.
Condições de sucesso e falha
Se retornar qualquer um dos seguintes, o EventBridge tratará um lote como um êxito total:
Uma lista de
batchItemFailurevaziaUma lista de
batchItemFailurenulaUma vazia
EventResponseUma nula
EventResponse
Se retornar qualquer um dos seguintes, o EventBridge tratará um lote como uma falha total:
Uma string vazia
itemIdentifierUma nula
itemIdentifierUm
itemIdentifiercom um nome de chave inválido
O EventBridge faz novas tentativas após falhas com base na sua estratégia de repetição.