python - lambda 中的 Python slack_bolt 斜杠命令失败 - dispatch_unknown_error
问题描述
我正在使用 Python 的 slack_bolt 库构建一个 slack 机器人。我已经使用 slack_bolt 库创建了 zip 文件,并将其上传到 lambda 函数,负责:
- 相应地更改 lambda 处理程序和 filename.py
- 不打包目录,只打包 site-packages 目录的内容
- SLACK_SIGNING_SECRET 和 SLACK_BOT_TOKEN 在 lambda 中被创建为 env.vars
lambda 函数的代码如下(取自此处)
from slack_bolt import App
from slack_bolt.adapter.aws_lambda import SlackRequestHandler
# process_before_response must be True when running on FaaS
app = App(process_before_response=True)
def respond_to_slack_within_3_seconds(body, ack):
text = body.get("text")
if text is None or len(text) == 0:
ack("Usage: /start-process (description here)")
else:
ack(f"Accepted! (task: {body['text']})")
import time
def run_long_process(respond, body):
time.sleep(5) # longer than 3 seconds
respond(f"Completed! (task: {body['text']})")
app.command("/start-process")(
ack=respond_to_slack_within_3_seconds, # responsible for calling `ack()`
lazy=[run_long_process] # unable to call `ack()` / can have multiple functions
)
def handler(event, context):
slack_handler = SlackRequestHandler(app=app)
return slack_handler.handle(event, context)
斜杠命令已使用用于启用 slack 事件的相同 api-gateway url 创建(作为 slack 应用程序创建过程的一部分)
执行 /start-process 斜杠命令时出现错误
/start-process 失败并出现错误“dispatch_unknown_error” 在此处输入图像描述
我意识到剪断的代码没有引用秘密,所以我添加了以下几行(但仍然有相同的错误)
app = App(
token=os.environ.get("SLACK_BOT_TOKEN"),
signing_secret=os.environ.get("SLACK_SIGNING_SECRET")
)
在 Cloudwatch 中,我没有找到有关此错误原因的有用信息。在此处输入图像描述
奇怪的是,除了 lambda 测试函数似乎成功之外,它在此处返回 404 输入图像描述
有什么想法吗?非常感谢!
解决方案
推荐阅读
- google-kubernetes-engine - Cloud Composer 创建了许多 Kubernetes 工作负载,它们应该被删除吗?
- java - 无法解析构造函数 'ArrayList(java.util.List
)` 在 Java 中 - jsf - 使用 commandButton click in loop 多次触发 ajax 调用
- java - 无法在 JavaFX 控制器中创建变量
- sparql - 我需要什么 dblp 数据集与 sparql 引擎一起使用,如何使用引擎设置数据
- java - 20 秒后 Java 函数超时
- generics - 如何在 V 中编写通用示例函数?
- amazon-web-services - AWS 在私有子网中的 EC2 实例之间进行 ssh 的最佳方法
- html - 导航链接在 FreeCodeCamp 挑战中工作但未通过测试:产品登陆页面
- wso2 - APIM 2.6.0 通过 APIM 2.6.0 的 Rest API 为 API 安装 SSL 证书