Google Workspace插件替换Cloud Run后报404错误求助
检查Cloud Run服务的路由处理逻辑
Cloud Function默认会处理根路径的POST请求,但Cloud Run需要你在代码里明确配置POST /的路由。比如用Node.js Express框架时,必须添加:app.post('/', (req, res) => { // 插件卡片逻辑 });别只处理GET请求,先通过
curl -X POST https://你的Cloud Run地址测试POST请求是否能返回正确的卡片JSON,确认服务本身没问题。验证deployment.json配置与部署结果
确保runFunction字段的Cloud Run URL完整正确,比如https://your-service-xxxx-xx.a.run.app,不要加多余路径或写错域名。执行部署命令后,用gcloud workspace-add-ons deployments describe quickstart查看线上配置,确认URL已经更新,避免本地文件没同步到云端。确认Cloud Run的端口监听配置
Cloud Run默认要求服务监听8080端口,检查代码里的端口设置:- Node.js:
app.listen(8080) - Python Flask:
app.run(host='0.0.0.0', port=8080)
如果用自定义容器,还要确认容器的端口映射和Cloud Run服务配置里的端口一致,都是8080。
- Node.js:
检查Cloud Run的IAM调用权限
给Workspace插件的系统服务账号workspace-add-ons@system.gserviceaccount.com授予Cloud Run服务的Cloud Run Invoker角色,确保插件有权限调用你的Cloud Run服务。虽然404通常是路径问题,但权限缺失也可能导致异常拦截,需要排除。彻底清理插件缓存并重新部署
除了卸载重装插件,还要在Google Workspace的「插件」→「管理插件」里彻底移除旧部署,再重新安装。同时可以重新构建Cloud Run镜像并部署,避免代码缓存导致的旧逻辑残留。
内容的提问来源于stack exchange,提问作者Dan Dascalescu

