gpt4 book ai didi

amazon-web-services - Firehose 转换输出的格式

转载 作者:行者123 更新时间:2023-12-01 07:44:56 24 4
gpt4 key购买 nike

我将 AWS Kinesis Firehose 与自定义数据转换结合使用。 Lambda 用 Python 3.6 编写并返回如下所示的字符串:

{
"records": [
{
"recordId": "...",
"result": "Ok",
"data": "..."
},
{
"recordId": "...",
"result": "Ok",
"data": "..."
},
{
"recordId": "...",
"result": "Ok",
"data": "..."
}
]
}

这个 Lambda 非常满意,并且在将它们返回到 Firehose 之前记录类似于上面的输出。但是,Firehose 的 S3 日志随后显示错误:
Invalid output structure: Please check your function and make sure the processed records contain valid result status of Dropped, Ok, or ProcessingFailed.
看看这个在 JS 和 Java 中传播到网络上的例子,我不清楚我需要做些什么不同的事情;我很困惑。

最佳答案

如果你的数据是一个json对象,你可以尝试以下

import base64
import json
def lambda_handler(event, context):
output = []
for record in event['records']:
# your own business logic.
json_object = {...}
output_record = {
'recordId': record['recordId'],
'result': 'Ok',
'data': base64.b64encode(json.dumps(json_object).encode('utf-8')).decode('utf-8')
}
output.append(output_record)
return {'records': output}

base64.b64encode 函数只适用于 b'xxx' 字符串,而 output_record 的 'data' 属性需要一个普通的 'xxx' 字符串。

关于amazon-web-services - Firehose 转换输出的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45946107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com