您可以将 Google Cloud 模拟器与 Terraform 一起使用吗?

问题描述 投票:0回答:2

当我正确设置模拟器和 Terraform 时,我是否能够在模拟器内而不是在 Google Cloud 中的项目内运行 terraform 并使用结果?

我在网上找不到答案,在我知道之前无法开始。

提前致谢!

terraform emulation gcloud google-cloud-pubsub google-cloud-pubsub-emulator
2个回答
2
投票

是的,你可以!我们通过重用现有的生产环境配置来使用它来引导 Google PubSub 模拟器。

技巧是您需要覆盖提供者配置中的 API 端点:

terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "4.33.0"
    }
  }
}

provider "google" {
  project = "some-project-id"
  pubsub_custom_endpoint = "http://localhost:8085/v1/"
}

为了应用这个,我像这样启动模拟器:

$ gcloud beta emulators pubsub start --project=some-project-id

注:

  • 项目 ID 通过参数指定,并且必须与您在 terraform 提供程序中配置的项目 ID 匹配
  • 端口 8085 是模拟器启动的默认端口

缺点

由于您仅覆盖特定端点,因此您必须小心创建哪些资源。例如,创建

google_service_account
会将 that 请求发送到实际的 Google 端点。

有一些 Google 服务的模拟器,但不是全部!或者,您可以将 Terraform Provider 中的所有端点覆盖为不存在的本地端口。然后,这将无法应用该计划,而不是在您可能意想不到的情况下在本地静默创建资源。


0
投票
用户似乎想玩 terraform 并将其指向模拟器。

https://cloud.google.com/spanner/docs/emulator

如有错误请指正。

© www.soinside.com 2019 - 2024. All rights reserved.