Если функция AWS Lambda имеет источники событий из нескольких потоков Kinesis, будет ли пакет входящих записей из одного потока Kinesis или из смеси?

Название может немного сбивать с толку. Я постараюсь, чтобы было понятнее.

Предположим, у меня есть функция AWS Lambda, которая имеет два разных потока Kinesis A и B в качестве источников входных событий.

Итак, для приведенного ниже, поскольку экземпляр KinesisEvent содержит пакет записей, будет ли пакет содержать записи из одного потока или, по сути, он будет содержать записи из обоих потоков A и B?

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

person Gordon Tai    schedule 05.09.2015    source источник


Ответы (1)


Каждое сопоставление между потоком AWS Kinesis и Функция AWS Lambda - это выделенный объект, полученный в результате вызова CreateEventSourceMapping и состоит из EventSourceArn и FunctionName, для которого вы также указываете специальный Размер пакета соответственно:

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

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

Следовательно, пакеты, которые вы получите, ограничены одним источником событий, который составляет соотв. сопоставление, и каждый другой источник событий приведет к отдельному вызову вашей лямбда-функции соответственно, поэтому все будет должным образом изолировано.

person Steffen Opel    schedule 05.09.2015
comment
Спасибо, отличное объяснение. - person Gordon Tai; 06.09.2015
comment
Есть идеи, почему API имеет источник события в записи, а не KinesisEvent? - person Upio; 27.06.2017