如何定期自动运行Google Colab notebook,实现无人值守执行脚本任务
Colab 定期自动运行可行方案
方案1:Colab Pro/Pro+ 原生定时功能(适配成本最低)
- 完全不需要修改你已经写好的现有脚本,和你手动运行的环境完全一致,不需要额外适配任何第三方工具
- 操作步骤:打开对应Colab笔记本,顶部导航栏选择「修改」->「笔记本设置」确认运行时环境和你手动运行时的配置一致,点击右上角的时钟样式定时运行图标,设置触发频率为每48小时一次,选择你所在的对应时区即可
- 原生Colab环境已经自带你需要的所有依赖,Google Drive挂载也可以直接沿用你之前的
drive.mount('/content/drive')逻辑,提前把授权调整为非交互式就可以正常运行
方案2:免费版Colab搭配Google Apps Script定时触发器
- 适合不想升级Colab付费版本的场景,全程免费可用
- 操作步骤:
- 先把你的Colab笔记本调整公开权限,设置为「任何有链接的用户可编辑」
- 打开Google Apps Script新建项目,编写调用Colab执行的脚本,添加时间驱动触发器,设置触发周期为每2天运行一次
- 提前给脚本配置Google Drive服务账号授权,把服务账号的邮箱地址添加到你需要读写的Drive文件夹的共享名单中,避免运行时需要手动点击授权卡住流程
方案3:GCP Cloud Functions + Cloud Scheduler 方案(运行稳定性最高)
- 你之前用GCP没跑通的核心原因是没有配置Drive的服务账号访问权限,按以下步骤调整即可正常使用:
- 在GCP控制台创建服务账号,开启Google Drive API权限,下载服务账号的JSON密钥文件
- 打开你的Google Drive,找到存储气象数据和汇总表格的文件夹,把编辑权限授予上述服务账号的邮箱地址
- 将你的Colab脚本调整为Cloud Functions的入口函数,依赖直接写在
requirements.txt里即可,Colab支持的库Cloud Functions基本都能兼容 - 配置Cloud Scheduler,设置cron表达式为
0 0 */2 * *(每两天零点触发一次),调用对应Cloud Functions的触发地址即可
通用注意事项
- 所有授权逻辑都用服务账号实现,不要使用个人账号的交互式授权,避免定时运行时卡在授权步骤
- 脚本内的Drive路径全部使用绝对路径,不要用相对路径,避免运行环境切换导致路径读取错误
- 可以在脚本末尾增加简单的运行状态校验逻辑,运行失败时自动触发邮件告警,方便及时排查问题
内容的提问来源于stack exchange,提问作者Billy Pineda
相关产品推荐
相关产品推荐

