2016-07-06 7 views
0

Ich habe einen Code geschrieben, um Datensätze aus Kinesis Stream zu einer Lambda-Funktion, die eine Ausgabe Payload von Daten, Partitions-ID und Sequenznummer, dann versuche ich ein zweites Lambda aufrufen Um die Sequenznummer und Partitions-ID von dem ersten Lambda zu erhalten, zieht das zweite Lambda die Daten aus dem Kinesis-Strom. Ich bin mit dem Abrufen von Daten aus Kinesis-Stream mit Sequenznummer und Partitions-ID fest.Holen Sie Datensätze von Kinesis mit Sequenznummer und Partition ID

Unten ist der Code zum Aufrufen eines Lambda zu einem anderen.

Hier ist der Code, den ich für get records mit Sequenznummer und Partitions-ID versucht habe

public class LambdaFunctionHandler implements RequestHandler<KinesisEvent, Object> { 
private static final String streamName = "Test"; 
private static final String partitionKey = "123456676454"; 
private static final String sequenceNumber = "12345" 

public Object handleRequest(KinesisEvent input, Context context) { 
    context.getLogger().log("Input: " + input); 
    GetRecordsRequest getRecordsRequest = new GetRecordsRequest(); 
    getRecordsRequest.setStreamName(streamName); 
    getRecordsRequest.setPartitionKey(partitionKey); 
    getRecordsRequest.setsequenceNumber(sequenceNumber); 
    KinesisEvent.getRecord(getRecord); 

} 
     } 

Bitte lassen Sie mich wissen, wie Sie Datensätze aus dem Kinesis-Stream mit Sequenznummer und Partitions-ID erhalten.

Antwort

0

Sie können weder den Stream, von dem Sie lesen möchten, noch die Position innerhalb der Lambda-Funktion bestimmen. Bevor die Lambda-Funktion ausgeführt wird, müssen Sie eine Zuordnung zwischen Ihrem Kinesis-Stream und dieser Lambda-Funktion erstellen. Dies wird das Lambda jedes Mal auslösen, wenn neue Datensätze ankommen.

Grundsätzlich kann eine Lambda-Funktion nicht über ihren eigenen Eingang entscheiden.

Verwandte Themen