Сортировочная терраформа variables.tf по имени переменной с помощью Python

#python #terraform #terraform-provider-aws

Вопрос:

Я работаю над созданием нового VPC, где мне нужно предоставить некоторые переменные в качестве входных данных.

Все переменные перечислены в variables.tf . Файл очень длинный (я скопировал здесь только пару из них), и переменные определены не в определенном порядке.

Мне нужно найти питонический способ сортировки variables.tf по имени переменной.

 variable "region" {
  description = "The region to use when creating resources"
  type        = string
  default     = "us-east-1"
}

variable "create_vpc" {
  description = "Controls if VPC should be created"
  type        = bool
  default     = true
}

variable "name" {
  description = "Name to be used, no default, required"
  type        = string
}
 

Сортировка variables.tf должна выглядеть так:

 variable "create_vpc" {
  description = "Controls if VPC should be created"
  type        = bool
  default     = true
}

variable "name" {
  description = "Name to be used, no default, required"
  type        = string
}

variable "region" {
  description = "The region to use when creating resources"
  type        = string
  default     = "us-east-1"
}
 

Комментарии:

1. Существует python-hcl2 , который позволит вам проанализировать ваш TF-код. Как только у вас это будет, он сможет манипулировать им, включая сортировку.

Ответ №1:

«Питонический» может быть неправильным подходом здесь — вы все еще удобно сидите за интерпретатором python, но к лучшему или худшему (хуже) вы играете по правилам Terraform. Ознакомьтесь со ссылками ниже. Hashicorp «включает» python через свой CDK, и на github есть несколько других проектов.

Как только вы начнете работать с чем-то подобным и полностью перенесете Terraform в свою настройку Python, вы сможете начать думать по-питонски. </IMO>

https://github.com/hashicorp/terraform-cdk
https://github.com/beelit94/python-terraform/blob/develop/python_terraform/terraform.py