AWS Lambda 调用另一个 lambda,然后解析 <botocore.response.StreamingBody 问题



第一行是在调用"RequestResponse"类型的另一个lambda后记录的响应的一部分。

'StatusCode': 200, 'ExecutedVersion': '$LATEST', 'Payload': <botocore.response.StreamingBody object at 0x7f62887d1410>}

以下代码返回空

json.loads(lambda_response['Payload'].read().decode('utf-8'))

返回响应的调用lambda运行正常。

非常感谢您的帮助。

谢谢,

我遇到了同样的问题,我修复了它,确保InvocationType是RequestResponse(而不是Event,我正在等待响应(,然后用json.load加载响应。

一个完整的例子:

response = lambda_client.invoke(FunctionName="WriteToS3",
InvocationType="RequestResponse",
Payload=json.dumps(data))
json_response = json.load(response["Payload"])
print("json.load: ", json_response)

如果你的lambda可以直接调用AWS上的传出互联网连接,那么用boto3调用另一个lambda就可以了,但如果你的VPC没有连接IG,那么boto3调用其他lambda就不起作用。如果是这种情况,请将被调用的lambda作为内部私有api网关端点,并在调用lambda时调用此端点。

相关内容

最新更新