Man*_*uel 3 amazon-web-services boto3 aws-lambda
我目前正在编写一个与一些 AWS lambda 函数交互的 python 脚本。在其中一个函数中,我的响应包含我的脚本中需要的列表。
问题是,当我使用该invoke()函数时,响应是一个包含请求信息的 json。
response = aws_lambdaClient.invoke(FunctionName = 'functionName', Payload = payload)
Run Code Online (Sandbox Code Playgroud)
我使用的函数将此作为返回
return {'names': aList, 'status': 'Success!'}
Run Code Online (Sandbox Code Playgroud)
如果我打印出响应,我会得到:
{'ResponseMetadata': {'RequestId': 'xxxxxxxxx', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Thu, 07 Nov 2019 14:28:25 GMT', 'content-type': 'application/json', 'content-length': '51', 'connection': 'keep-alive', 'x-amzn-requestid': 'xxxxxxxxxx', 'x-amzn-remapped-content-length': '0', 'x-amz-executed-version': '$LATEST', 'x-amzn-trace-id': 'root=xxxxxxxxx;sampled=0'}, 'RetryAttempts': 0}, 'StatusCode': 200, 'ExecutedVersion': '$LATEST', 'Payload': <botocore.response.StreamingBody object at 0x0000023D15716048>}
Run Code Online (Sandbox Code Playgroud)
我喜欢得到
{'names': aList, 'status': 'Success!'}
Run Code Online (Sandbox Code Playgroud)
关于如何实现这一目标有什么想法吗?或者我应该找到另一种获取数据的方法(也许将我需要的列表放入 s3 存储桶中,然后从那里获取它)。
Ric*_*ard 13
曼努埃尔,
如前所述,返回信息位于返回的 json 中的 Payload 元素内。Payload 是一个 boto3 对象类型,您需要通过它的 read() 方法访问它的内容。
我用来获取从 lambda 函数返回的 python 字典的代码是这样的:
payload = json.loads(response['Payload'].read())
statusCode = payload.get('statusCode')
message = payload.get('message')
results = payload.get('results')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11223 次 |
| 最近记录: |