#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