使用Terraformer/Terraform克隆GCP项目

3
我刚刚开始在Google Cloud中使用基础设施即代码的功能。
  1. 安装了Terraform
  2. 安装了Terraformer
  3. 创建了一个包含虚拟机的新GCP项目。
我的目标是将该项目及其所有组件复制到一个新项目中。
为了实现这一目标,我使用Terraformer来反向terraform我现有的项目。命令:
$ terraformer import google --connect --projects=[project_id] --resources=autoscalers,backendBuckets,backendServices,bigQuery,cloudFunctions,cloudsql,dataProc,disks,dns,firewalls,forwardingRules,gcs,gke,globalAddresses,globalForwardingRules,healthChecks,httpHealthChecks,httpsHealthChecks,iam,images,instanceGroupManagers,instanceGroups,instanceTemplates,instances,interconnectAttachments,kms,memoryStore,monitoring,networkEndpointGroups,networks,nodeGroups,nodeTemplates,project,pubsub,regionAutoscalers,regionBackendServices,regionDisks,regionInstanceGroupManagers,routers,routes,schedulerJobs,securityPolicies,sslPolicies,subnetworks,targetHttpProxies,targetHttpsProxies,targetInstances,targetPools,targetSslProxies,targetTcpProxies,targetVpnGateways,urlMaps,vpnTunnels
2019/06/20 08:00:08 google importing project [project_id]
2019/06/20 08:00:08 google importing... autoscalers
2019/06/20 08:00:19 googleapi: got HTTP response code 404 with body: Not Found

看起来我有一些权限问题,因为谷歌API返回了“未找到”错误代码。

我猜Terraformer正在使用gcloud权限访问我的GCP环境,这是真的吗?

如果是真的,那么我的登录凭据在此项目上是所有者。

我应该检查什么?如何解决这个问题?

2个回答

0

您可以使用具有项目读取访问权限的服务帐户。并将 GOOGLE_CLOUD_KEYFILE_JSON 设置为指向该服务帐户的 credentials.json。


0
你提到你刚刚在那个项目中部署了一个虚拟机。但是在命令中,你指定的资源不仅仅是虚拟机。
--resources=autoscalers,backendBuckets,backendServices,.....

而且它在第一个问题上失败了,即自动缩放器。根据Terraformer文档,该命令用于指定要导入的资源。

https://github.com/GoogleCloudPlatform/terraformer/tree/master#resources

如果你没有所需的资源,404(未找到错误)是有道理的。
如果你刚刚部署了一个虚拟机,没有其他资源,你可以尝试只导入一个虚拟机吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接