问题标签 [terraform-provider-gcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
382 浏览

google-iam - 您如何以编程方式将成员添加到单个 Google IAP 访问列表?

我有 2 个启用 IAP 的 terraformed/k8s-yaml 服务。

为了在基础设施刷新之间维护成员访问列表(当负载均衡器被破坏并且访问列表被擦除时),我已将 IAM 角色“受 IAP 保护的 Web 应用程序用户”分配给相关用户。

例如

但是,这允许访问项目中所有受 IAP 保护的 API。是否可以添加一个过滤器以仅允许访问特定的负载均衡器?

0 投票
0 回答
111 浏览

google-cloud-platform - 使用数据资源从项目中获取计算网络

我正在尝试找到一种google_compute_network从 Terraform 中的给定项目中获取所有内容的方法。这可能吗?

版本:Terraform v0.11.13

从文档中,我看到网络数据资源google_compute_network需要提供网络的名称。但我正在寻找的是一种从特定项目中获取网络列表的方法。

我需要这个,因为我打算将项目的所有网络添加到private_visibility_config私有 DNS 托管区域资源。有多个项目我想这样做。每个网络的数量是任意的,网络的名称也是如此。

我希望能够做的事情:

感谢您提前提供任何帮助。

0 投票
2 回答
606 浏览

terraform - 获取模块加载或输入变量错误

我在 module/variables.tf 中配置了以下变量

我指的是同一个模块 module/main.tf 中的变量,如下所示

但是,当我运行 terraform init 时,出现以下错误-

知道为什么会这样吗?

0 投票
1 回答
641 浏览

google-cloud-platform - 使用 google_cloud_scheduler_job 调度批处理作业

我正在尝试使用 google_cloud_scheduler_job terraform 资源安排批处理作业。

根据文档https://www.terraform.io/docs/providers/google/r/cloud_scheduler_job.html,我只看到以下选项:

  • PubSub 目标
  • HTTP 目标
  • AppEngine 目标

关于如何使用 google_cloud_scheduler_job 创建批处理作业调度程序的任何建议?谢谢。

0 投票
0 回答
222 浏览

google-cloud-platform - 如何使用 Terraform 在 GCP 中为负载均衡器设置一个 SSL 证书

  • 我在一个 GCP实例上有 2 个服务:一个在端口 80 上运行,另一个在端口 4000 上。
  • 我为每项服务google_compute_global_forwarding_rule设置了、google_compute_target_https_proxygoogle_compute_url_map和。google_compute_backend_service
  • 我有一个google_compute_ssl_certificate将在BOTH google_compute_target_https_proxy中使用的通配符。

  • 我有一个google_compute_instance_group设置来路由我的服务。

  • 所有资源都在一个 GCP 实例上运行并由 Terraform 创建。

一切正常。除了我的证书说它无效(不安全站点警告)。我在这里做错了什么?

注意:我的证书仍然适用于不同服务器上的其他站点。

  • 我创建了另一个 google_compute_ssl_certificate并在其中一个上使用它,google_compute_target_https_proxy之后一切(两个服务)都可以工作。

但是,这确实令人困惑,因为这是通配符证书。为什么我必须创建另一个证书资源才能使其有效?

0 投票
1 回答
585 浏览

google-cloud-storage - 谷歌云存储多区域存储桶慢删除

我遇到了 GCS 多区域存储桶的缓慢删除问题。
我想知道这是否是预期的正常性能,因为存储桶是多区域的。

Terraform 正在以编程方式删除我的存储桶,删除步骤耗时 16 分钟: google_storage_bucket.<REDACTED>: Still destroying... (ID: <REDACTED>, 16m30s elapsed)

当我进入 GCS 控制台时,当我检查(单击、选择)存储桶并单击删除时,需要很长时间,同时出现一个提示“正在检查存储桶”的工具提示。
之后它询问我是否要删除 X 个项目。
在我选择是后,它告诉我它失败了。

当我第一次在 GCS 控制台中执行删除步骤时,它显示 146 个项目。
我后来又重复了一遍,它说 102 项,这可能意味着 40 项被删除。

如何正确删除此存储桶?
由于它是多区域的,因此这是预期的性能吗?

更新:
33 分钟,它仍在删除(根据 Terraform)

更新: 删除已完成 google_storage_bucket.vault: Destruction complete after 52m48s 所以我不需要修复,但很高兴知道这是否是正常的预期性能。

0 投票
1 回答
209 浏览

terraform - 什么时候在 terraform 中定义变量?

Terraform新手在这里。我有一个模块,variables.tf可以在 Google Cloud 中创建一个资源“文件夹”。变量定义为:

该模块的调用函数为main.tf。

当我运行“terraform init”时,它会引发以下错误-

错误:模块“文件夹”:缺少必需的参数“文件夹名称”

我认为变量可以在文件中预先确定,也可以在运行“terraform apply”时包含在命令行选项中。我更喜欢 CLI 选项,但为什么我在“初始化”阶段看到参数错误?

0 投票
1 回答
1384 浏览

google-cloud-platform - 如何修复 terraform 资源“google_cloud_scheduler_job”的“错误 400:'job.pubsub_target.data' (TYPE_BYTES) 的值无效”

我有以下gcloud谷歌云调度程序的功能,它工作得很好。但是,由于字段下的一个参数,我无法弄清楚如何将其放入 terraform 中pubsub_target { data = ""

这是我不断收到的错误。 google_cloud_scheduler_job.c4c_intel_sources_scheduler: Error creating Job: googleapi: Error 400: Invalid value at 'job.pubsub_target.data' (TYPE_BYTES), Base64 decoding failed for "{"scheduler".......

不知道如何解决这个错误

Terraform definition

相等的gcloud definition

0 投票
3 回答
3050 浏览

google-cloud-platform - 同时创建多个具有私有 IP 的 Google Cloud SQL 实例时如何解决“发生未知错误”?

我们的云后端设置包含 5 个用于 Postgres 实例的 Cloud SQL。我们使用 Terraform 管理我们的基础设施。我们使用公共 IP 和Cloud SQL 容器从 GKE 连接它们。

为了简化我们的设置,我们希望通过移动到私有 IP 来摆脱代理容器。我尝试遵循Terraform 指南。虽然创建单个实例可以正常工作,但尝试同时创建 5 个实例会导致 4 个失败和一个成功: GCP 控制台中的失败实例列表

在失败实例上出现在 Google Clod 控制台中的错误是“发生未知错误”: 失败的实例在 GCP 控制台中显示错误消息

以下是重现它的代码。注意count = 5线:

我尝试了几种选择:

  • google_service_networking_connection创建然后同时创建所有实例后等待一分钟,但我得到了同样的错误。
  • 创建地址范围和google_service_networking_connection每个实例,但出现google_service_networking_connection无法同时创建的错误。
  • 为每个实例创建一个地址范围和一个google_service_networking_connection链接到所有实例的地址范围,但我遇到了同样的错误。
0 投票
1 回答
458 浏览

terraform - Terraform - GCP - 将 IP 地址链接到链接到云存储桶的负载均衡器

我想要的是:

我想要一个 static.example.com链接到 GCS 中包含我的静态图像的存储桶的 DNS 记录。

当我通过 Cloudflare 管理我的 DNS 时,我认为我需要利用 GCP 可以将我归为 anycast-IP 的事实,将该 IP 链接到 GCP 负载均衡器,该负载均衡器将链接到存储桶

我目前拥有的:

  • 已手动创建的存储桶,名为“静态图像”

  • 链接到所述存储桶的负载均衡器,使用

    /li>
  • 链接到我的存储桶的路由

    /li>
  • 使用以下命令创建的 ip:

    /li>

我错过了什么:

  • 从 Web 控制台创建负载均衡器时,terraform 等效于“前端配置”