【发布时间】:2022-01-25 16:33:17
【问题描述】:
我想找到一种在 App Engine Flex 和 Cloud Run 的生产环境中调用 CLI 任务的方法,同时保留在我的本地计算机的终端中。 “CLI 任务”是指flask shell、rails console、rake、yarn run 和其他特定于应用程序的命令行工具。
理想情况下,这将是一个命令,它将启动一个与实际生产实例具有相同配置的实例——相同的 docker 容器、环境变量等——并在我完成后将其删除。
我发现it is done on Heroku最直接最有用的方式:
Heroku 允许您在 one-off dyno 中运行命令 - 只需要在需要时执行的脚本和应用程序 - 使用 heroku run 命令。使用它来启动附加到本地终端的 Rails 控制台进程,以便在应用程序环境中进行试验
heroku run rails console
irb(main):001:0> puts 1+1
2
我可以使用App Engine debug mode 获得类似的结果。为此,我将通过 SSH 连接到实例(或 Cloud Run),使用 docker exec -it gae /bin/sh 拉起 bash shell,然后运行任务。这有很多缺点,而且通常不受欢迎,因为它使用服务于生产流量的相同实例。它可能会降低网络服务器的速度,甚至完全停止它。
在类似于 heroku 一次性 dyno 方法的单独实例中运行任务的惯用 GCP 方式是什么?
【问题讨论】:
标签: ruby-on-rails flask google-app-engine google-cloud-platform google-cloud-run