You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda对接Slack事件订阅无挑战参数响应失败问题咨询

排查思路

1. 校验API Gateway配置

  • 确认API Gateway对应资源允许POST请求:你之前用curl测试的是GET请求,Slack事件订阅发送的是POST请求,如果API Gateway只开放了GET方法,POST请求会直接被拦截返回4xx/5xx错误,既不会走到Lambda逻辑,也不会返回你预期的Hello World内容。
  • 确认开启了Lambda代理集成:如果没开启该配置,Slack发送的POST请求体、请求头会被API Gateway过滤,不会完整透传给Lambda,自然拿不到challenge参数。
  • 查看API Gateway访问日志,确认Slack请求的到达情况和返回状态码:如果返回4xx错误,大概率是请求方法不允许、权限配置错误;如果返回5xx错误,大概率是Lambda执行报错或集成配置异常。

2. 添加入参日志确认Lambda实际接收内容

修改Lambda代码打印全量入参到CloudWatch日志,参考代码如下:

import json
def lambda_handler(event, context):
    # 打印全量入参排查实际收到的请求内容
    print(json.dumps(event))
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

重新触发Slack验证请求后,去CloudWatch对应Lambda日志组查看打印的event内容:如果没有对应请求记录,说明请求在API Gateway层就被拦截,没有到达Lambda。

3. 校验Slack端配置

  • 确认你填写的请求URL拼写完全正确,路径、大小写都要和API Gateway的配置一致。
  • 确认你是在事件订阅模块的Enable Events下填写的URL,而非其他配置项的输入框。
  • 确认你没有给Slack应用配置额外的自定义验证规则,导致请求发送异常。

4. 调整返回头适配Slack校验规则

Slack的验证请求要求返回的Content-Type为application/json,如果返回头不符合要求,Slack会判定返回无效,提示请求失败。你可以调整Lambda返回值添加响应头:

import json
def lambda_handler(event, context):
    print(json.dumps(event))
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json'
        },
        'body': json.dumps('Hello from Lambda!')
    }

内容的提问来源于stack exchange,提问作者DeveloperPadawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:54:04