Python 如何从AWS Kinesis数据流事件访问数据?

Python 如何从AWS Kinesis数据流事件访问数据?,python,python-3.x,amazon-web-services,aws-lambda,amazon-kinesis,Python,Python 3.x,Amazon Web Services,Aws Lambda,Amazon Kinesis,我正在开发一个Python lambda,它使用。但我正在努力理解运动记录事件的形状。例如: { "Records": [ { "kinesis": { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "495903382714902566085596925383

我正在开发一个Python lambda,它使用。但我正在努力理解运动记录事件的形状。例如:

{
    "Records": [
        {
            "kinesis": {
                "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"
        },
        {
            "kinesis": {
                "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"
        }
    ]
}
资料来源:


我最初放在这个对象中表示的运动流上的数据在哪里?如何访问这些数据?

您在流中输入的数据表示为每条记录的
kinisis.data
键上的Base64编码字符串。例如(截断):

要访问数据,请遍历每个
记录
对象,并对
运动数据
值进行Base64解码

导入base64
对于事件[“记录”]中的记录:
decoded_data=base64.b64解码(记录[“运动”][“数据”]).decode(“utf-8”)
打印(解码数据)
#记录1:你好,这是一个测试。
#记录2:这只是一个测试。
注意:此示例假设发送到kinesis流的数据最初是在kinesis b64编码之前进行的
utf-8
编码

{
    "Records": [
        {
            "kinesis": {
                ...
                "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
                ...
            },
            ...
        },
        {
            "kinesis": {
                ...
                "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=",
                ...
            },
            ...
        }
    ]
}