Сообщение об ошибке при развертывании ресурса composer (GCP) с помощью terraform

#google-cloud-platform #terraform #google-cloud-composer

#google-cloud-platform #terraform #google-cloud-composer

Вопрос:

У меня ошибка с кодом terraform при развертывании ресурса GCP composer:

  • google_composer_environment.composer-бета: googleapi: Ошибка 400: Ключ свойства должен иметь вид section name . section Может не содержать открывающих квадратных скобок, закрывающих квадратных скобок или дефисов, а name может не содержать точки с запятой или знака равенства. Весь ключ свойства может не содержать точек., Неверный запрос

Проблема возникает при развертывании этого ресурса GCP:https://www.terraform.io/docs/providers/google/r/composer_environment.html

Это мой код:

Variables.tf файл:

 variable "composer_airflow_version" {
  type = "map"
  default = {
    image_version="composer-1.6.1-airflow-1.10.1"
  }
}

variable "composer_python_version" {
  type = "map"
  default = {
    python_version="3"
  }
}
  

my-composer.tf файл:

 resource "google_composer_environment" "composer-beta" {
  provider= "google-beta"
  project = "my-proyect"
  name    = "${var.composer_name}"
  region  = "${var.region}"
  config {
    node_count = "${var.composer_node_count}"

  node_config {
    zone         = "${var.zone}"
    machine_type = "${var.composer_machine_type}"
    network      = "${google_compute_network.network.self_link}"
    subnetwork   = "${lookup(var.vpc_subnets_01[0], "subnet_name")}"
  }

  software_config {
    airflow_config_overrides="${var.composer_airflow_version}",
    airflow_config_overrides="${var.composer_python_version}",
  }
  }

  depends_on = [
    "google_service_account.comp-py3-dev-worker",
    "google_compute_subnetwork.subnetwork",
  ]
}
  

Согласно сообщению об ошибке, основная причина ошибки, по-видимому, связана с разделом software_config в коде terraform. Я понимаю, что переменные «composer_airflow_version» и «composer_python_version» должны иметь тип «map», поэтому я настраиваю их как формат карты.

A очень признателен, если кто-нибудь сможет определить причину ошибки и сообщить мне, какую корректировку применить. Вероятно, мне следует применить изменение в переменных, но я не знаю, что это такое. 🙁

Заранее спасибо, Хосе

Ответ №1:

Исходя из документации, airflow_config_overrides, pypi_packages, env_variables, image_version и python_version должны находиться непосредственно в разделе software_config.

Variables.tf файл:

 variable "composer_airflow_version" {
  default = "composer-1.6.1-airflow-1.10.1"
}

variable "composer_python_version" {
  default = "3"
}
  

my-composer.tf файл:

 resource "google_composer_environment" "composer-beta" {
  provider= "google-beta"
  project = "my-proyect"
  name    = "${var.composer_name}"
  region  = "${var.region}"
  config {
    node_count = "${var.composer_node_count}"

    node_config {
      zone         = "${var.zone}"
      machine_type = "${var.composer_machine_type}"
      network      = "${google_compute_network.network.self_link}"
      subnetwork   = "${lookup(var.vpc_subnets_01[0], "subnet_name")}"
    }

    software_config {
      image_version  = "${var.composer_airflow_version}",
      python_version = "${var.composer_python_version}",
    }
  }

  depends_on = [
    "google_service_account.comp-py3-dev-worker",
    "google_compute_subnetwork.subnetwork",
  ]
}