使用GCP市场中的Terrafrom创建实例

时间:2020-03-03 15:43:26

标签: google-cloud-platform terraform terraform-provider-gcp

我正在尝试创建terraform script以便从市场上推出fastai instance

我将图像名称添加为

click-to-deploy-images/deeplearning

当我添加

https://console.cloud.google.com/marketplace/details/click-to-deploy-images/deeplearning

来自网址


Error: Error resolving image name 'click-to-deploy-images/deeplearning': Could not find image or family click-to-deploy-images/deeplearning

  on fastai.tf line 13, in resource "google_compute_instance" "default":
  13: resource "google_compute_instance" "default" {

出现错误,

debian-cloud/debian-9

如果我使用

https://console.cloud.google.com/marketplace/details/debian-cloud/debian-stretch?project=<>

来自网址

{{1}}

正在工作。

我们可以通过Terraform部署Fastai图像吗?

3 个答案:

答案 0 :(得分:1)

我从您共享的深度学习市场VM实例进行了部署,并查看了源映像[1],您应该能够使用我提供的用于Terraform部署的URL。我还注意到一个警告图像,说明该图像已被弃用,并且有此新版本[2]。

希望这会有所帮助!

[1] sourceImage:https://www.googleapis.com/compute/v1/projects/click-to-deploy-images/global/images/tf2-2-1-cu101-20200109

[2] https://www.googleapis.com/compute/v1/projects/click-to-deploy-images/global/images/tf2-2-1-cu101-20200124

答案 1 :(得分:1)

在这种情况下,名称为“ deeplearning-platform-release / pytorch-latest-gpu”,

import numpy as np
from numpy import linalg as LA


x = np.array([[4],[2],[0],[-1]])
f = np.array([[7],[29],[27],[-73]])

def main():

    A_matrix = VandermondeMatrix(x)
    print(A_matrix)
    c = LA.solve(A_matrix,f) #coefficients of Vandermonde Polynomial
    print(c)

def VandermondeMatrix(x):
    n = len(x)
    A = np.zeros((n, n))
    exponent = np.array(range(0,n))
    for j in range(n):
        A[j, :] = x[j]**exponent
    return A





if __name__ == "__main__":
    main()

现在我可以创建实例了。

答案 2 :(得分:0)

致像我这样的新手:

显然 GCP Marketplace 正在使用 Deployment Manager,这是 google 自己的声明性工具来管理基础架构。 (我认为 moduleterraform 中最接近它的抽象。)

因此,标题中的问题没有简单/单一的答案。

在我看来 - 如果您从头开始和/或负担得起时间 - 最好是使用 terraform 模块而不是 GCP 市场解决方案 - 如果存在的话。

但是,更改是好的,您正在导入现有的基础设施,您不能立即替换它(或者没有这样的模块)。

在这种情况下,我认为您能做的最好的事情是转到 Deployment Manager in google console 并打开您需要导入的特定部署。

此时您可以看到构成部署的资源。可能会有vm template(s), vm(s), firewall rule(s), etc...

点击 vm instancetemplate 会显示很多有用的细节。

最重要的是,您可以推断出使用的是什么图像。

例如: 就我而言,它显示:

sourceImage https://www.googleapis.com/compute/v1/projects/openvpn-access-server-200800/global/images/aspub275

由此我可以定义(基于问题 an answer 上的 #7319

data "google_compute_image" "openvpn_server" {
  name    = "aspub275"
  project = "openvpn-access-server-200800"
}

我可以反过来在 google_compute_instance 资源中使用。

尽管如此,这将强制重新创建 VM。