部署在GCP Cloud Run的Slack BoltJS无法触发app.message事件
问题概述
我把一个简易的Slack BoltJS应用部署到了基础GCP Cloud Run服务中,但在Slack频道发送消息时,无法触发应用的app.message事件。
环境配置
代码实现
Index.ts (bolt)
import { App } from "@slack/bolt"; import { config } from "dotenv"; // config dotenv config(); const app = new App({ token: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET }); // listen to all messages app.message(/.+/, async ({ message, say }) => { console.log(`message: ${JSON.stringify(message)}`); }); // Start your app (async () => { await app.start(process.env.PORT || 3000); console.log("⚡️ Bolt app is running!"); })();
GCP Cloud Run配置
使用标准Dockerfile将应用部署到Cloud Run。
Slack配置
- 已在GCP中正确配置「基本信息」页面的signing secret
- 已在GCP中正确配置「安装应用」页面的Bot User Auth Token
- 应用已安装到工作区
- 「事件订阅」中已开启Enable Events
- 请求URL配置为
https://<my-cloud-run-url>/slack/events - 「订阅机器人事件」包含
message.channels - 已添加全部Bot Token权限范围
运行结果
应用部署到Cloud Run后,部署流程成功完成。在Cloud Run服务日志中,能看到应用启动日志:
⚡️ Bolt app is running!
核心问题
在公开频道发送消息后,Cloud Run日志无任何新增内容,预期应出现消息内容的日志,但实际没有任何日志生成。
内容的提问来源于stack exchange,提问作者Michael Harris
相关产品推荐
相关产品推荐

