【发布时间】:2021-12-05 11:58:28
【问题描述】:
我设置了一个 Slack 斜杠命令,该命令触发一个 API 网关,然后执行我的 AWS Lambda。
斜杠命令现在有效,但我无法在我的 AWS lambda 中检索事件。
我已经关注了这个link,关于如何集成我的 API 网关以接受来自斜杠命令的非 json 有效负载,但是现在当我发送诸如 /helloworld trigger 之类的斜杠命令时,AWS lambda 的事件会这样返回:
{'postBody': 'token=CGH9VQ5Gop...&team_id=...&team_domain=...&channel_id=...&channel_name=...&user_id=U01R5QXP61Z&...}
这是我的 AWS Lambda 的代码,就这么简单:
def lambda_handler(event, context):
return str(event)
有人可以帮忙吗?
【问题讨论】:
-
有两种方法可以将 lambda 连接到您的 API - 通过代理或集成 - 您使用的是哪一种?他们是否调用了您的 lambda 的任何云监视日志?尝试添加一个日志语句,以便 Cloudwatch 可以捕获它此外,如果您在 API 网关中的方法/资源上使用 API 测试功能会发生什么?它会给出错误吗?使用集成和方法响应将 str 返回到 API 中特定设置的 API req。你通常必须返回一个带有 statusCode 和 body 键的 json。
-
我正在使用集成方法。在 API 测试功能中,响应正文为
{}。这与邮递员的情况相同。只有 slack slash 命令返回我在上面的问题中输入的响应正文。请帮忙
标签: aws-lambda aws-api-gateway slack slack-commands