我是lambda的新手,通过控制台成功创建了lambda函数并触发了它们。 但是当我尝试使用 AWS CLI 调用它们时,我遇到了问题。
我的 lambda 函数 (python( 很简单,只需打印输入参数并在控制台中成功测试。
我在 Windows 机器的 CLI 中像下面一样调用,
aws lambda invoke --function-name testfn --invocation-type RequestResponse --payload '{"a":"b"}' outfile.txt
错误显示 - 无效的 base64:"'{a:b}'">
但是如果我给出一个空的有效载荷,例如 -
aws lambda invoke --function-name testfn --invocation-type RequestResponse --payload '{}' outfile.txt
它正在被以下输出所吸引。
{
"StatusCode": 200,
"ExecutedVersion": "$LATEST"
}
那么我的有效载荷出了什么问题呢?请帮忙。
这个错误是什么意思?无效的 base64:"'{a:b}'">
我还尝试从 json 文件提供有效负载,并在命令中使用确切路径传递该文件,但仍然是相同的错误。
这意味着有效载荷应该是base64。
此要求是 AWS CLI v2 中的重大更改之一:
- AWS CLI 版本 2 现在默认将二进制参数作为 base64 编码的字符串传递。
invoke
有效负载的类型为blob
。在 AWS CLI v2 中:
默认情况下,AWS CLI 版本 2 现在将所有二进制输入和二进制输出参数作为base64 编码的字符串传递。需要二进制输入的参数在文档中将其类型指定为blob(二进制大对象(。