2015-09-05 3 views
4

Le titre pourrait être un peu déroutant. Je ferai de mon mieux pour le rendre plus clair. Supposons que j'ai une fonction AWS Lambda qui a deux flux Kinesis différents A et B comme sources d'événements d'entrée. Donc, pour ce qui suit, étant donné qu'une instance de KinesisEvent contient un lot d'enregistrements, le lot contiendra-t-il des enregistrements provenant d'un seul flux, ou essentiellement des enregistrements provenant des deux flux A et B?Si une fonction AWS Lambda a des sources d'événement provenant de plusieurs flux Kinesis, le lot d'enregistrements entrants proviendra-t-il d'un seul flux Kinesis ou d'un mixage?

public class ProcessKinesisEvents { 
    public void recordHandler(KinesisEvent event, Context context) { 
     ... 
    } 
} 

Répondre

2

Chaque correspondance entre un flux AWS Kinesis et une fonction AWS Lambda est une entité dédiée résultant d'un appel à CreateEventSourceMapping et composé des EventSourceArn et FunctionName, pour lequel vous également spécifier un Batch Size dédié en conséquence:

POST /2015-03-31/event-source-mappings/ HTTP/1.1 
Content-type: application/json 

{ 
    "BatchSize": number, 
    "Enabled": boolean, 
    "EventSourceArn": "string", 
    "FunctionName": "string", 
    "StartingPosition": "string" 
} 

Par conséquent, les lots que vous recevrez seront contraints à la source d'événement unique qui constitue le resp. Le mappage et chaque autre source d'événement génère une invocation distincte de votre fonction Lambda en conséquence, de sorte que tout est correctement isolé.

+0

Merci, bonne explication. –

+0

Une idée de la raison pour laquelle l'API a la source de l'événement sur l'enregistrement et non le KinesisEvent? – Upio