Python从带有boto3错误的代码中调用我的AWS Lambda

Ale*_*Mal 2 python json amazon-web-services boto3 aws-lambda

在我的项目中,我必须创建一个调用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
)
Run Code Online (Sandbox Code Playgroud)

但是在响应运行时会生成此错误:

发生错误(InvalidRequestContentException)调用调用操作时:InvalidRequestContentException无法解析请求主体为JSON:无法识别的记号“eyJjYWxJRCI6ICI5MmRxaXNzNWJnODdldGNxZWVhbWxtb2IyZ0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29tIiwgImRhdGFkYSI6ICIyMDE3LTEyLTIyVDE2OjQwOjAwKzAxOjAwIiwgImRhdGFhIjogIjIwMTctMTItMjJUMTc6NTU6MDArMDE6MDAiLCAiZW1haWwiOiAibHVjYV9ncmV6eml4eEBob3RtYWlsLmNvbSJ9”:期待在[来源(“真”,“假”或“空”):[B @ 4587098d;行:1,列:481]

这是什么意思?

提前谢谢了

hjp*_*r92 6

该错误是由于以下参数引起的:

ClientContext='None',
Run Code Online (Sandbox Code Playgroud)

文档

ClientContext(字符串)-

使用,ClientContext您可以将特定于客户端的信息传递给您要调用的Lambda函数。然后,您可以通过上下文变量进行选择,从而在Lambda函数中处理客户信息。有关ClientContextJSON 的示例,请参阅 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)
)
Run Code Online (Sandbox Code Playgroud)