当我正确设置模拟器和 Terraform 时,我是否能够在模拟器内而不是在 Google Cloud 中的项目内运行 terraform 并使用结果?
我在网上找不到答案,在我知道之前无法开始。
提前致谢!
是的,你可以!我们通过重用现有的生产环境配置来使用它来引导 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
注:
缺点
由于您仅覆盖特定端点,因此您必须小心创建哪些资源。例如,创建
google_service_account
会将 that 请求发送到实际的 Google 端点。
有一些 Google 服务的模拟器,但不是全部!或者,您可以将 Terraform Provider 中的所有端点覆盖为不存在的本地端口。然后,这将无法应用该计划,而不是在您可能意想不到的情况下在本地静默创建资源。