问题描述
我想安排一个VM实例中的shell命令每周运行一次。
它如何工作:
- 每周一次,Cloud Scheduler会调用pub子触发器
- Pub子然后将消息推送到VM实例的HTTP端点
- 这反过来会导致shell命令运行
我在第一步和第二步都没问题,但是我在努力让shell命令执行。
我考虑过的一件事是将Python下载到VM实例,然后创建一个运行os系统命令的Python脚本。
import os
cmd = "some command"
os.system(cmd)
但是,尽管我的问题仍然是如何获得HTTP POST请求以使Python脚本运行?
解决方法
我会做不同的事情:
- Cloud Scheduler调用一个Cloud Function(或Cloud Run)
- Cloud Function启动instance with a startup script,该批处理运行批处理,然后关闭。
如果您需要将参数传递给脚本,则可以在创建实例时(或在实例已经运行时)使用实例元数据来实现。