【问题标题】:Pass event data to AWS Lambda through AWS CLI/Slack(ChatOps)通过 AWS CLI/Slack(ChatOps) 将事件数据传递给 AWS Lambda
【发布时间】:2022-01-03 02:19:43
【问题描述】:

我有一个非常简单的基于 nodejs 的 AWS Lambda 函数,它有一个事件变量,我在 Mac OS 上调用该函数时尝试通过 slack/AWS Cli。下面是代码

exports.handler = async (event) => {
const a = event["domain"];
    return a;
};

在 AWS Lambda 控制台中测试功能,如果我提供以下方式设置它可以正常工作。

它工作正常并按预期显示结果。但是当我尝试使用 AWS Cli 或 Slack(ChatOps) 运行它时,它不会传递事件数据。下面是我正在使用的 lambda 调用命令,

@aws lambda invoke --invocation-type RequestResponse --function-name manrill-test 
--region us-east-1 --payload "{ \"domain\": \"xyz.com\" }"

这显示了以下消息,看起来负载/事件数据未正确传递。

ExecutedVersion: $LATEST
StatusCode: 200
Payload:
null

知道我做错了什么吗?理想情况下,它应该显示我传递的事件数据的值 (xyz.com)。

【问题讨论】:

  • 可能无法正确解释您使用此--payload "{ \"domain\": \"xyz.com\" }" 的shell(windows cmd、powershell、bash...)。您可以尝试将有效负载作为 jsonfile --payload file://payload.json 传递,就像这里描述的 docs.aws.amazon.com/lambda/latest/dg/…
  • @derpirscher 我正在使用 MacOS。抱歉,我刚刚更新了我的问题。

标签: javascript node.js amazon-web-services aws-lambda


【解决方案1】:

如果你使用AWS CLI V2,那么你需要添加“--cli-binary-format raw-in-base64-out”标志来传递原始json

aws lambda invoke --invocation-type RequestResponse --function-name manrill-test --region us-east-1 --payload "{ \"domain\": \"xyz.com\" }" --cli-binary-format raw-in-base64-out response.json

【讨论】:

  • 这在 AWS Cli 上运行良好。知道使用chatops 可以在松弛频道上做什么吗?
  • 当它为您运行 CLI 命令时,它也应该可以工作。添加标志时得到什么响应?
  • 尝试了上述命令的一些变体,但看起来不起作用。 #this 显示默认错误/消息,我不确定您所说的“lambda 调用...@aws lambda invoke --invocation-type RequestResponse --function-name manrill-test --region 指的是哪个 AWS 服务或操作us-east-1 --payload "{ \"domain\": \"xyz.com\" }" --cli-binary-format raw-in-base64-out response.json
  • 唯一没有cli-binary标志和response.json文件的显示为状态码200但payload为null
  • Lolzz 发现了。问题不在于 slack 或 lambda,它的 mac os 键盘设置。您必须取消选中“文本”选项卡下的“使用智能引号和破折号”键盘设置
【解决方案2】:

问题不在于 slack 或 lambda,它的 mac os 键盘设置。您必须取消选中“文本”选项卡下的“使用智能引号和破折号”键盘设置。在下面的链接中查看答案。

How to invoke aws lambda with payload from Slack

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2017-12-30
    • 2021-03-16
    • 2020-10-15
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多