如何使用 terraform 调用 gcloud 命令

时间:2021-03-01 08:20:47

标签: redis terraform gcloud

由于 terraform 尚不支持 redis tls,因此计划调用 gcloud 命令通过 terraform 创建启用 tls 的 redis。我是 terraform 的新手,所以一直在网上寻找一些资源。但找不到太多。有人可以帮忙提供一份工作样本吗?任何 gcloud 命令调用都可以。

谢谢

1 个答案:

答案 0 :(得分:0)

Terraform 基于底层 REST API 构建,不直接使用 Cloud SDK (gcloud)。因此,在没有支持资源的提供程序的情况下直接调用 gcloud 命令并不简单。

我不熟悉 Terraform,但我希望 (!?) 不鼓励直接调用 shell 命令(例如 gcloud redis instances create ...)。而且,虽然也可以直接调用 REST API,但您需要注意身份验证。

也就是说,google-beta 支持 TLS。

transit_encryption_mode = "SERVER_AUTHENTICATION"

terraform {
  required_providers {
    google-beta = {
      source = "hashicorp/google-beta"
      version = "3.58.0"
    }
  }
}

variable "project" {}
variable "region" {}
variable "zone" {}
variable "key" {}
variable "instance" {}

provider "google-beta" {
  credentials = file(var.key)
  project = var.project
  region  = var.region
  zone    = var.zone
}

resource "google_redis_instance" "cache" {
  provider = google-beta
  name = var.instance
  tier = "BASIC"
  memory_size_gb = 1
  location_id = var.zone
  transit_encryption_mode = "SERVER_AUTHENTICATION"
}

然后确认启用 TLS:

gcloud redis instances describe ${INSTANCE} \
--region=${REGION} \
--project=${PROJECT} \
--format="value(transitEncryptionMode)"
SERVER_AUTHENTICATION
相关问题