如果AWS Lambda函数具有来自多个Kinesis流的事件源,那么传入记录的批处理将来自单个Kinesis流还是混合源?

Gor*_*Tai 5 amazon-web-services amazon-kinesis aws-lambda

标题可能有点混乱。我会尽力使它更清楚。

假设我有一个AWS Lambda函数,它具有两个不同的Kinesis流A和B作为输入事件源。

那么,对于以下情况,由于KinesisEvent实例包含一批记录,该批处理将包含来自单个流的记录,还是本质上它包含来自流A和B的记录?

public class ProcessKinesisEvents {
    public void recordHandler(KinesisEvent event, Context context) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*pel 5

AWS Kinesis流和AWS Lambda函数之间的每个映射都是由调用CreateEventSourceMapping产生的专用实体,由EventSourceArnFunctionName 组成,您还相应地为其指定专用Batch Size

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

{
    "BatchSize": number,
    "Enabled": boolean,
    "EventSourceArn": "string",
    "FunctionName": "string",
    "StartingPosition": "string"
}
Run Code Online (Sandbox Code Playgroud)

因此,您将收到的批次仅限于构成响应的单个事件源。映射,并且每个其他事件源将相应地产生对您的 Lambda 函数的单独调用,因此一切都被正确隔离。