【问题标题】:error while invoking lambda function through CLI [duplicate]通过 CLI 调用 lambda 函数时出错 [重复]
【发布时间】:2020-05-26 18:02:43
【问题描述】:

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

【问题讨论】:

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

标签: python amazon-web-services aws-lambda faas


【解决方案1】:

表示payload应该是base64

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2017-11-25
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多