如何创建运行 gcloud 命令的函数?

问题描述

我在我的 Compute Engine 中使用以下命令来运行存储在 Cloud Storage 中的脚本:

gsutil cat gs://project/folder/script.sh | sh

我想创建一个运行此命令并最终安排运行此函数函数,但我不知道如何执行此操作。有人知道怎么做吗?

解决方法

Cloud Functions 是无服务器的,您无法管理运行时环境。您不知道 Cloud Functions 的运行时环境中安装了什么,也不能假设 GCLOUD 存在。

解决方案是使用云运行。该行为与 Cloud Functions 非常接近,只需将您的函数包装在网络服务器上(我写了我的第一篇关于此的文章),然后在您的容器中安装您想要的东西,尤其是 GCLOUD SDK(您也可以 use a base image with GCLOUD SDK already installed)。这一次您将能够调用系统二进制文件,因为您知道它们存在是因为您安装了它们!

无论如何,在执行脚本时要小心:容器是不可变的,您不能更改文件、二进制文件、存储的文件……我不知道脚本的内容,但您没有打开一个虚拟机,你仍然在无服务器环境中,具有短暂的运行时。