简体   繁体   English

按 lambda 过滤运动事件

[英]filter kinesis event by lambda

i have looked at: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html我看过: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html

to filter events before invoking lambda but i can't achieve that, can you help please?在调用 lambda 之前过滤事件,但我无法做到这一点,你能帮忙吗?

{'Records': [{'kinesis': {'kinesisSchemaVersion': '1.0', 'partitionKey': '37540688c73d2b2be11490f8b5ae93ff', 'sequenceNumber': '49631675050471285384259191448171119417567571671338975282', 'data': 'H4sIAAAAAAAAADWPwWrDM/dKjZTcuGY41bsqwf5TP7VH0Mr36uLhfYv8PTlNKY8nksaV7DdfShuFB89TcHp9+m/uZC3bJ38GcubFprkQixZRMkbI1SyqI1lgySRK1JKkKtJAmlTSOEJiOwZYfqeWOdFtbFlgxzko2QtPvfzvUFHqfHD/S8r4ANAQAA', 'approximateArrivalTimestamp': 1658758525.02}, 'eventSource': 'aws:kinesis', 'eventVersion': '1.0', 'eventID': 'shardId-000000000003:49631675050471285384259191448171119417567571671338975282', 'eventName': 'aws:kinesis:record', 'invokeIdentityArn': 'arn:aws:iam::XXX:role/XXX', 'awsRegion': 'eu-west-1', 'eventSourceARN': 'arn:aws:kinesis:eu-west-1:XXXX:stream/XXX'}]}

i want to avoid "CONTROL_MESSAGE" so that i tried this pattern on filter: { "data": { "messageType": [ "DATA_MESSAGE" ] } }我想避免“CONTROL_MESSAGE”,所以我在过滤器上尝试了这种模式:{“data”:{“messageType”:[“DATA_MESSAGE”]}}

but doesn't work?但不起作用? it is because the data bloc in compressed and encoded这是因为压缩和编码的数据块

It doesn't work because your data property is not a valid JSON.它不起作用,因为您的数据属性不是有效的 JSON。

Your content seems to be zipped.您的内容似乎已压缩。

AWS is expecting the content to be a JSON string so they can JSON parse it and apply the filter to the object in memory. AWS 期望内容是 JSON 字符串,因此他们可以 JSON 解析它并将过滤器应用于 objectCD08CD69B439561096

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM