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

如何调度GCP VM实例,启动时自动执行自定义Python命令并定时启停

GCP长时运行爬虫自动化方案

你的40小时运行时长确实远超过Cloud Functions 540秒的最大运行上限,Cloud Functions完全不适配你的场景,直接基于你现有VM的运行架构做少量配置即可实现全自动化,不需要额外迁移服务,操作步骤如下:

核心实现逻辑

  • 用Cloud Scheduler作为定时触发器,每月1号自动发送启动VM的指令
  • VM启动后自动运行预设的爬虫脚本,任务执行完成后自动触发关机,全程不需要人工介入
  • 产生的费用和你手动运行的成本完全一致,无额外冗余开销

具体配置步骤

1. 配置VM开机自动运行任务

首先给你的现有VM创建快照备份,避免配置出错丢失数据,之后编辑VM的元数据,添加startup-script启动项,内容参考:

#!/bin/bash
# 替换为你实际的项目文件夹路径
cd /home/your_account_name/your_project_path
# 替换为你实际使用的Python解释器路径,避免环境变量识别异常
/usr/bin/python3 main.py
# 任务执行完成后自动关机
shutdown -h now

配置完成后可以先重启VM测试,确认爬虫能够正常启动、数据能正常写入BigQuery,再进行后续配置

2. 配置定时启动规则

打开Cloud Scheduler控制台新建定时任务:

  • 触发频率填Cron表达式 0 0 1 * *,时区选择你所在的对应时区,即可实现每月1号零点自动触发
  • 目标类型选择「HTTP」,请求方法选POST,请求URL填 https://compute.googleapis.com/compute/v1/projects/你的GCP项目ID/zones/你的VM所属可用区/instances/你的VM实例名称/start
  • 身份验证选择「OAuth 2.0 令牌」,服务账号选择拥有Compute Instance Admin权限的账号即可

3. 权限校验与测试

确保Cloud Scheduler所用服务账号拥有VM启动权限,VM自身的服务账号拥有BigQuery写入权限,和你之前手动运行时的权限配置保持一致即可。配置完成后可以手动触发一次Cloud Scheduler任务,验证VM启动、爬虫运行、自动关机的全流程是否正常,跑通后即可正式使用。

可选优化建议

你可以在main.py中添加异常捕获逻辑,即使爬虫运行出错也触发自动关机,避免VM空跑产生额外费用;也可以添加简单的运行状态通知逻辑,任务成功或失败时主动给你推送提醒,方便追踪运行状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:27:04