问题描述
是否可以使用 Google Cloud Functions ssh 进入本地虚拟机? 具体我可以给 Cloud Functions 一个私钥使用吗?
我正在考虑运行一个计时器作业,它将使用 Python 脚本从不在 GCP 中的虚拟机获取数据。
- 有可能吗?
- 有什么我不应该这样做的理由吗?
我无法对此进行测试,因为我还没有访问 GCP 的权限,而且我找不到任何提及此内容的文档。我确实意识到函数可能无法做到这一点,这就是为什么我很好奇过去是否有人尝试过。
解决方法
据我所知 - 这是可能的。您在云函数中的代码 - 只是一个普通的代码。例如,如果您使用 python,则可以使用 'requests' 或 'paramico' 或 'pysftp' 或任何其他库。没有(准确地说 - 很少)限制。
您可以为此目的使用私钥。我建议将私钥存储在 Secret Manager 中,以便在运行时检索它(您需要为该检索编写代码)。
但是请注意,云功能受到最大 2Gb 内存的限制(在 RAM 和“假”本地驱动器之间共享,因此您可以像使用本地驱动器一样使用“/tmp”目录);并受 540 秒(9 分钟)超时限制。因此,您需要将您想做的所有事情“推”到这些界限内。
此外,对外部 IP 地址的访问可能会被外部方列入白名单。您可能需要使用一些额外的网络配置,以便来自您的函数的所有“调用”都来自一个专用 IP 地址。这也是可能的。
对于计时器 - 您可以使用 Cloud Scheduler,它可以根据您的 cron 时间表将消息发送到 Pub/Sub 主题。云函数将在 Pub/Sub 的另一边。