【问题标题】:How to execute command line tasks on GAE and Cloud Run without SSH?如何在没有 SSH 的情况下在 GAE 和 Cloud Run 上执行命令行任务?
【发布时间】:2022-01-25 16:33:17
【问题描述】:

我想找到一种在 App Engine Flex 和 Cloud Run 的生产环境中调用 CLI 任务的方法,同时保留在我的本地计算机的终端中。 “CLI 任务”是指flask shellrails consolerakeyarn 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


    【解决方案1】:

    现在,如果不通过 SSH 访问,就无法在生产环境中的 GAE Flex 和 Cloud Run 中运行 CLI 命令。

    您可以通过request this feature 来实现这一点。

    【讨论】:

    • 谢谢,我也有这种感觉!不过,我不希望在任何可行的时间内解决功能请求。暂时,我不会接受这个答案——我希望运气好的话,其他人会加入他们的解决方法。
    猜你喜欢
    • 2022-07-01
    • 1970-01-01
    • 2020-12-31
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2016-11-01
    • 2014-08-22
    相关资源
    最近更新 更多