首页 > 解决方案 > 通过网站启动 Google Cloud VM 实例

问题描述

基本上是标题 - 我想创建一个带有按钮的简单网站,按下该按钮时,将启动一个 google cloud vm 实例。目标是不需要客户端的任何授权,因此登录到链接到 gcloud 项目的谷歌帐户是行不通的。

有些东西告诉我这应该是一件容易的工作,但我在网上找不到任何与此相关的东西,而且我在 gclouds 中迷失了很多选择,所以我不知道从哪里开始。

标签: httpwebcloudvirtual-machinegcloud

解决方案


有多种方法可以解决此问题,但请非常小心允许(任意)网站用户单击按钮并启动 VM(您将为此付费)。每个 VM 将花费您 $$$。

由于您不希望网站(客户端)进行身份验证,因此您必须将该身份验证(因为 GCP 需要身份验证)委托给代理服务器|服务。这个代理会提供一些 API 端点,让我们保持简单,说它是/billmeforanothervm.

您可以在 Google 的任何计算服务(Cloud Run|Functions、App Engine、Compute Engine 等)上运行此代理。

当它在 GCP 上的任何计算服务上运行时,代理本身将被验证为服务帐户。您可以通过授予此服务帐户 IAM 角色来创建 VM 或更好,创建一个仅由代理使用的新服务帐户,然后才用于创建 VM。

然后,根据您的编程语言偏好,代理将运行 Compute Engine 的instances.insert方法:

https://cloud.google.com/compute/docs/reference/rest/v1/instances/insert#examples

IAM 权限记录在示例上方:

https://cloud.google.com/compute/docs/reference/rest/v1/instances/insert#iam-permissions

一旦工作,每次调用端点或用户单击网站上的按钮时,都会创建一个新的 VM。然后,您将需要其他功能以使您的用户可以访问此 VM。

您将在 VM 的整个生命周期内为以这种方式创建的每个 VM 付费。而且,由于您没有提及身份验证,因此地球上的任何人都可以单击该按钮并向您收取创建虚拟机的费用。请非常小心这种方法。


推荐阅读