在我的项目中,我必须创建一个调用lambda函数传递body参数的py,我写这段代码:
import boto3
import json
import base64
client = boto3.client(‘lambda’)
d = {'calID': '[email protected]', 'datada': '2017-12-22T16:40:00+01:00', 'dataa': '2017-12-22T17:55:00+01:00', 'email': '[email protected]'}
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; line:1,专栏:481]
这是什么意思?
提前谢谢了
该错误是由于以下参数:
ClientContext='None',
来自the docs:
ClientContext (string) --
使用
ClientContext
,您可以将客户端特定的信息传递给您正在调用的Lambda函数。然后,您可以通过上下文变量选择处理Lambda函数中的客户端信息。有关ClientContext
JSON的示例,请参阅Amazon Mobile Analytics API参考和用户指南中的PutEvents。ClientContext JSON必须是base64编码的,最大大小为3583字节。
你根本不需要ClientContext
参数。只需调用如下:
response = client.invoke(
FunctionName='arn:aws:lambda:eu-west-1:13737373737:function:test',
LogType='None',
Payload=json.dumps(d)
)