0

我是 lambda 新手,通过控制台成功创建了 lambda 函数并触发了它们。但是当我尝试使用 AWS CLI 调用它们时,我遇到了问题。

我的 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 文件中提供有效负载,并在命令中使用确切路径传递该文件,但仍然是同样的错误。

4

1 回答 1

2

这意味着有效载荷应该是base64

此要求是AWS CLI v2中的重大更改之一:

invoke有效载荷的类型为blob. 在 AWS CLI v2 中:

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

于 2020-05-26T22:17:58.530 回答