Python 3.x 使用AWS Lambda读取Kafka(MSK)事件源

Python 3.x 使用AWS Lambda读取Kafka(MSK)事件源,python-3.x,amazon-web-services,apache-kafka,aws-lambda,Python 3.x,Amazon Web Services,Apache Kafka,Aws Lambda,我正在尝试使用AWS lambda读取卡夫卡主题(AWS MSK)中的值 从lambda打印的事件记录如下所示: {'eventSource':'aws:kafka','eventSourceArn':'arn:aws:kafka:ap-northeast-1:987654321:cluster/mskcluster/79y80c66-813a-4f-af0e-4ea47ba107e6','records':{'Transactions-0':[{'topic':'Transactions','

我正在尝试使用AWS lambda读取卡夫卡主题(AWS MSK)中的值

从lambda打印的事件记录如下所示:

{'eventSource':'aws:kafka','eventSourceArn':'arn:aws:kafka:ap-northeast-1:987654321:cluster/mskcluster/79y80c66-813a-4f-af0e-4ea47ba107e6','records':{'Transactions-0':[{'topic':'Transactions','partition':0,'offset':4798,'timestamp':1603565835915,'timestampType':'CREATE_TIME','value':'EYJFDMVUDFRPBWuIOIimjaymc0xmc0yncaxOdo1nzoxns45mtuzMjqilcaisvaiaimgWlji0ms4xNt4xNjjUjIjIjFy291bRodIzxiioIjIzIzIzIzIzIzIzIzIzIzIzIzIzIzIzIzIzIzIzIzUzIzIzIzIzIzIzIzI94Qlg3TlBJbWZmSXExWCIsICJDb3VuTHJ5IjogIk9tYW4ifQ=='}]}

如何提取“主题”和“值”字段?值1是base64编码的。 我得到以下错误:

NameError:未定义名称“记录”

我正在尝试以下代码:

import json
import base64

def lambda_handler(event, context):
    print(event)
    message = event['records']
    payload=base64.b64decode(record["message"]["value"])
    print("Decoded payload: " + str(payload))

MSK事件结构

在代码段中,尝试传递给解码函数的
记录
变量不存在。迭代记录的示例如下:

records=event['records']['Transactions-0']
记录中的记录:
有效负载=base64.b64解码(记录[“消息”][“值”])
打印(“解码有效负载:+str(有效负载))

每个函数调用都包含每个主题的多个记录。虽然如果您有多个类似于
Transactions-1
,您也可以迭代这些记录,…

谢谢-迭代记录是一个技巧!工作代码如下:`def lambda_handler(event,context):records=event['records']['Transactions-0']对于记录中的记录:payload=base64.b64解码(记录[“值”])打印(“解码的有效负载:+str(有效负载))`