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

Google Apps Script部署Web应用规避doPost并发执行限制方案

Google Apps Script 承接Chrome扩展高并发POST请求的最优方案

你当前Execute as: Me的配置确实会触发单账号30并发的硬限制,所有用户的请求全部占用你的账号配额,用户量过百就很容易出现请求失败的问题,以下是按改造成本从低到高排序的可落地方案:


方案1:切换执行身份为「访问应用的用户」(零成本,最优解)

这个配置完全适配Chrome扩展场景,核心优势是每个用户的请求占用用户自己的GAS配额,不会挤占你的账号额度,1000个活跃用户就对应30000的总并发上限,完全能支撑早期产品的流量,只需要注意3个配置要点:

  • 重新部署Web应用时,执行身份选User accessing this app,访问权限选Anyone with Google account
  • Chrome扩展端发请求时必须带上用户的登录态,否则会报权限错误,请求示例代码:
    // 扩展端请求代码
    const gasWebhookUrl = "你的GAS部署后生成的Web应用地址"
    const resp = await fetch(gasWebhookUrl, {
      method: "POST",
      credentials: "include", // 关键配置,自动携带用户Google登录Cookie
      headers: {"Content-Type": "application/json"},
      body: JSON.stringify(yourPayload)
    })
    
  • 首次调用时用户会看到Google官方的授权确认页,你只需要在扩展的首次使用引导里加一句说明,让用户点允许即可,授权后后续请求不会再弹出提示。如果你的脚本需要读写你私人的Google Sheet/Drive资源,提前把对应资源的共享权限开为「知道链接的人可编辑」即可,否则用户身份访问会报无权限。

方案2:前置队列削峰(适配必须以所有者身份执行的场景)

如果你的业务逻辑必须用你本人的身份执行(比如涉及敏感资源不能开放共享),不用改现有GAS代码,加一层轻量前置代理做并发控制即可:

  • 用Cloudflare Workers做转发层,免费额度每天支持10万次请求,足够支撑早期产品。代理层逻辑非常简单:设置最大同时请求数为25(留5个冗余配额给你自己调试用),超出的请求在代理层排队,等前面的请求返回后再转发到GAS,用户侧感知到的延迟基本在几百毫秒,完全无影响。
  • 额外优化:GAS端的doPost函数尽量轻量化,收到请求先做参数校验,校验通过立刻返回200响应,把耗时的处理逻辑丢给定时触发器异步执行,能大幅缩短单请求的执行时长,变相提升并发承载能力。

方案3:流量规模过万后替换核心后端

如果你的日活已经过万,不建议继续用GAS做核心请求承接,GAS本身定位是轻量自动化工具,不是专业后端服务。可以把核心请求逻辑迁移到Cloudflare Workers/Google Cloud Run这类serverless服务,GAS只保留你自己用的后台自动化能力,serverless服务的并发上限可以轻松支撑几十万级别的请求,个人产品基本可以靠免费额度覆盖成本。

避坑提醒:不要尝试「多部署几个GAS应用轮询转发」的野路子,同一个账号下所有GAS应用的配额是共享的,不管部署多少个,总并发上限还是30,完全没有效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:01:28