Python 通过CLI调用lambda函数时出错

Python 通过CLI调用lambda函数时出错,python,amazon-web-services,aws-lambda,faas,Python,Amazon Web Services,Aws Lambda,Faas,我是lambda的新手,通过控制台成功地创建了lambda函数并触发了它们。 但当我试图使用AWSCLI调用它们时,我遇到了一些问题 我的lambda函数(python)很简单,只打印输入参数,并在控制台中成功测试 我在windows机器上通过cli进行如下调用 aws lambda invoke --function-name testfn --invocation-type RequestResponse --payload '{"a":"b"}' outfile.txt 错误为-Inva

我是lambda的新手,通过控制台成功地创建了lambda函数并触发了它们。 但当我试图使用AWSCLI调用它们时,我遇到了一些问题

我的lambda函数(python)很简单,只打印输入参数,并在控制台中成功测试

我在windows机器上通过cli进行如下调用

aws lambda invoke --function-name testfn --invocation-type RequestResponse --payload '{"a":"b"}' outfile.txt
错误为-Invalid base64:“{a:b}”

但如果我给出一个空的有效载荷,比如-

aws lambda invoke --function-name testfn --invocation-type RequestResponse --payload '{}' outfile.txt
它正以低于预期的产量获得成功

{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}
那么,我的有效载荷出了什么问题?请帮忙

这个错误意味着什么?base64无效:“{a:b}”


我还尝试从json文件中提供有效负载,并在命令中传递具有确切路径的文件,仍然是相同的错误。

这意味着有效负载应该是正确的

此要求是AWS CLI v2中的一项突破性更改:

invoke
有效负载的类型为
blob
。在AWS CLI v2中:

默认情况下,AWS CLI版本2现在将所有二进制输入和二进制输出参数作为base64编码字符串传递。需要二进制输入的参数的类型在文档中指定为blob(二进制大对象)


这意味着有效载荷应为

此要求是AWS CLI v2中的一项突破性更改:

invoke
有效负载的类型为
blob
。在AWS CLI v2中:

默认情况下,AWS CLI版本2现在将所有二进制输入和二进制输出参数作为base64编码字符串传递。需要二进制输入的参数的类型在文档中指定为blob(二进制大对象)


是的,这就是我要找的。。非常感谢。在我的例子中,我必须使用一个单独的json文件以及有效负载链接中提供的解决方案。。非常感谢。在我的例子中,我必须使用一个单独的json文件以及有效负载链接中提供的解决方案。