http - 通过网站启动 Google Cloud VM 实例
问题描述
基本上是标题 - 我想创建一个带有按钮的简单网站,按下该按钮时,将启动一个 google cloud vm 实例。目标是不需要客户端的任何授权,因此登录到链接到 gcloud 项目的谷歌帐户是行不通的。
有些东西告诉我这应该是一件容易的工作,但我在网上找不到任何与此相关的东西,而且我在 gclouds 中迷失了很多选择,所以我不知道从哪里开始。
解决方案
有多种方法可以解决此问题,但请非常小心允许(任意)网站用户单击按钮并启动 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 付费。而且,由于您没有提及身份验证,因此地球上的任何人都可以单击该按钮并向您收取创建虚拟机的费用。请非常小心这种方法。
推荐阅读
- android - 如何从 google fit 响应中获取重量单位
- c# - 如何使用 GraphQL.Net 和 c# 将集合传递给 GraphQL 突变?
- python - 如何在unittest的设置函数中将字典作为参数传递
- tensorflow - Keras 自定义指标回调:如何访问 val_data?
- testing - “无法打开 perl 脚本“t/spec/fudgeall”:找不到文件或目录”
- javascript - 如何通过滚动使元素切换或跟随中心?
- excel - 我的代码有效,但我想知道在哪里可以改进代码,您有什么建议?
- amazon-web-services - Elasticsearch 移除多个映射类型导致的字段过多
- azure-cognitive-search - 如何在 azure search 中实现 min max facet(类似于 Elasticsearch 中的统计聚合)?
- python - 没有传说 Seaborn 线图