问题标签 [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.
google-iam - 您如何以编程方式将成员添加到单个 Google IAP 访问列表?
我有 2 个启用 IAP 的 terraformed/k8s-yaml 服务。
为了在基础设施刷新之间维护成员访问列表(当负载均衡器被破坏并且访问列表被擦除时),我已将 IAM 角色“受 IAP 保护的 Web 应用程序用户”分配给相关用户。
例如
但是,这允许访问项目中所有受 IAP 保护的 API。是否可以添加一个过滤器以仅允许访问特定的负载均衡器?
google-cloud-platform - 使用数据资源从项目中获取计算网络
我正在尝试找到一种google_compute_network
从 Terraform 中的给定项目中获取所有内容的方法。这可能吗?
版本:Terraform v0.11.13
从文档中,我看到网络数据资源:google_compute_network
需要提供网络的名称。但我正在寻找的是一种从特定项目中获取网络列表的方法。
我需要这个,因为我打算将项目的所有网络添加到private_visibility_config
私有 DNS 托管区域资源。有多个项目我想这样做。每个网络的数量是任意的,网络的名称也是如此。
我希望能够做的事情:
感谢您提前提供任何帮助。
terraform - 获取模块加载或输入变量错误
我在 module/variables.tf 中配置了以下变量
我指的是同一个模块 module/main.tf 中的变量,如下所示
但是,当我运行 terraform init 时,出现以下错误-
知道为什么会这样吗?
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 创建批处理作业调度程序的任何建议?谢谢。
google-cloud-platform - 如何使用 Terraform 在 GCP 中为负载均衡器设置一个 SSL 证书
- 我在一个 GCP实例上有 2 个服务:一个在端口 80 上运行,另一个在端口 4000 上。
- 我为每项服务
google_compute_global_forwarding_rule
设置了、google_compute_target_https_proxy
、google_compute_url_map
和。google_compute_backend_service
我有一个
google_compute_ssl_certificate
将在BOTHgoogle_compute_target_https_proxy
中使用的通配符。我有一个
google_compute_instance_group
设置来路由我的服务。- 所有资源都在一个 GCP 实例上运行并由 Terraform 创建。
一切正常。除了我的证书说它无效(不安全站点警告)。我在这里做错了什么?
注意:我的证书仍然适用于不同服务器上的其他站点。
- 我创建了另一个
google_compute_ssl_certificate
并在其中一个上使用它,google_compute_target_https_proxy
之后一切(两个服务)都可以工作。
但是,这确实令人困惑,因为这是通配符证书。为什么我必须创建另一个证书资源才能使其有效?
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
所以我不需要修复,但很高兴知道这是否是正常的预期性能。
terraform - 什么时候在 terraform 中定义变量?
Terraform新手在这里。我有一个模块,variables.tf
可以在 Google Cloud 中创建一个资源“文件夹”。变量定义为:
该模块的调用函数为main.tf。
当我运行“terraform init”时,它会引发以下错误-
错误:模块“文件夹”:缺少必需的参数“文件夹名称”
我认为变量可以在文件中预先确定,也可以在运行“terraform apply”时包含在命令行选项中。我更喜欢 CLI 选项,但为什么我在“初始化”阶段看到参数错误?
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
google-cloud-platform - 同时创建多个具有私有 IP 的 Google Cloud SQL 实例时如何解决“发生未知错误”?
我们的云后端设置包含 5 个用于 Postgres 实例的 Cloud SQL。我们使用 Terraform 管理我们的基础设施。我们使用公共 IP 和Cloud SQL 容器从 GKE 连接它们。
为了简化我们的设置,我们希望通过移动到私有 IP 来摆脱代理容器。我尝试遵循Terraform 指南。虽然创建单个实例可以正常工作,但尝试同时创建 5 个实例会导致 4 个失败和一个成功:
在失败实例上出现在 Google Clod 控制台中的错误是“发生未知错误”:
以下是重现它的代码。注意count = 5
线:
我尝试了几种选择:
google_service_networking_connection
创建然后同时创建所有实例后等待一分钟,但我得到了同样的错误。- 创建地址范围和
google_service_networking_connection
每个实例,但出现google_service_networking_connection
无法同时创建的错误。 - 为每个实例创建一个地址范围和一个
google_service_networking_connection
链接到所有实例的地址范围,但我遇到了同样的错误。
terraform - Terraform - GCP - 将 IP 地址链接到链接到云存储桶的负载均衡器
我想要的是:
我想要一个 static.example.com
链接到 GCS 中包含我的静态图像的存储桶的 DNS 记录。
当我通过 Cloudflare 管理我的 DNS 时,我认为我需要利用 GCP 可以将我归为 anycast-IP 的事实,将该 IP 链接到 GCP 负载均衡器,该负载均衡器将链接到存储桶
我目前拥有的:
已手动创建的存储桶,名为“静态图像”
链接到所述存储桶的负载均衡器,使用
/li>链接到我的存储桶的路由
/li>使用以下命令创建的 ip:
/li>
我错过了什么:
- 从 Web 控制台创建负载均衡器时,terraform 等效于“前端配置”