0

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

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

以下代码返回 null

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

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

非常感谢任何帮助。

谢谢,


如果您的 lambda 可以直接调用 AWS 上的传出 Internet 连接,则使用 boto3 调用另一个 lambda 有效,但如果您的 VPC 没有附加 IG,则 boto3 调用另一个 lambda 不起作用。如果是这种情况,请将被调用的 lambda 设置为内部私有 api 网关端点,并在您的调用 lambda 上调用此端点。

4

2 回答 2

0

我遇到了同样的问题,我修复了它,确保 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)
于 2021-08-29T04:32:07.627 回答
0

如果您的 lambda 可以直接调用 AWS 上的传出 Internet 连接,则使用 boto3 调用另一个 lambda 有效,但如果您的 VPC 没有附加 IG,则 boto3 调用另一个 lambda 不起作用。如果是这种情况,请将被调用的 lambda 设置为内部私有 api 网关端点,并在您的调用 lambda 上调用此端点。

于 2020-08-15T14:32:22.437 回答