【发布时间】:2018-06-04 15:19:49
【问题描述】:
在我的项目中,我必须创建一个调用 lambda 函数并传递主体参数的 py,我编写了以下代码:
import boto3
import json
import base64
client = boto3.client(‘lambda’)
d = {'calID': '92dqiss5bg87etcqeeamlmob2g@group.calendar.google.com', 'datada': '2017-12-22T16:40:00+01:00', 'dataa': '2017-12-22T17:55:00+01:00', 'email': 'example@hotmail.com'}
s = json.dump(d)
s64 = base64.b64encode(s.encode('utf-8'))
response = client.invoke(
FunctionName='arn:aws:lambda:eu-west-1:13737373737:function:test',
InvocationType='RequestResponse',
LogType='None',
ClientContext='None',
Payload=s64
)
但是当响应运行时会产生这个错误:
InvalidRequestContentException:发生错误(InvalidRequestContentException)调用调用操作时:无法解析请求体为JSON:无法识别的令牌“eyJjYWxJRCI6ICI5MmRxaXNzNWJnODdldGNxZWVhbWxtb2IyZ0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29tIiwgImRhdGFkYSI6ICIyMDE3LTEyLTIyVDE2OjQwOjAwKzAxOjAwIiwgImRhdGFhIjogIjIwMTctMTItMjJUMTc6NTU6MDArMDE6MDAiLCAiZW1haWwiOiAibHVjYV9ncmV6eml4eEBob3RtYWlsLmNvbSJ9”:期待(“真”,“假”或“空”) 在 [来源:[B@4587098d;行:1,列:481]
这是什么意思?
在此先感谢
【问题讨论】:
-
你可以简单地做
Payload=json.dumps(d)。不需要其他任何东西 -
嗨,如果我使用 d,响应是:ParamValidationError:参数验证失败:参数有效负载的类型无效,类型:
,有效类型: ,,类文件对象 -
s怎么样:P -
对不起,是的。它本来是
json.dumps。也编辑了之前的评论。另请参阅github.com/cleesmith/boto3_test/blob/master/invoke.py#L42 -
如果我使用 s (json.dumps(d)) 代码返回:InvalidRequestContentException:调用 Invoke 操作时发生错误 (InvalidRequestContentException):客户端上下文必须是有效的 Base64 编码 JSON 对象。
标签: python json amazon-web-services aws-lambda boto3