使用Python以编程方式编辑Terraform配置文件

2024-06-12 00:25:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python编辑Terraform配置文件。我正在使用pythonhcl2库解析地形文件(.tf),该库返回一个python字典。我想添加新的键/值对或更改字典中的某些值。直接写入文件不是一种好的做法,因为返回的python字典不是Hashicorp配置语言格式。还可以有多个配置文件,如variables.tf等,它们链接在一起。我应该实现自己的序列化程序,将python字典转换为terraform配置文件,还是有更简单的方法


Tags: 文件程序语言编辑字典序列化链接tf
1条回答
网友
1楼 · 发布于 2024-06-12 00:25:31

python-hcl2库实现了HCL语法的解析器,但它没有序列化程序,它的API设计用于删除所有HCL细节,只保留基本的Python数据结构,因此它似乎没有保留足够的信息来通过外科手术修改输入,而不会丢失注释、属性排序等细节,等等

在我写这篇文章的时候,唯一明确支持就地更新现有配置文件的HCL实现是Go包^{}。它允许调用者加载任意HCL源,通过外科手术修改其中的部分,然后重新序列化更新的版本,只需对输入的未更改部分进行少量的空白规范化

原则上,如果您不关心保留未更改的输入,那么可以将hclwrite移植到Python,或者从类似python-hcl2返回的字典中实现序列化程序,但这两个似乎都是一个重要的项目

如果您确实决定这样做,一个值得注意的部分是将字符串序列化为HCL语法,因为所需的转义与任何其他语言都不完全相同。您可能希望从hclwrite中引用the ^{} function,以查看要处理的所有情况,因此您可以在Python中实现兼容逻辑

相关问题 更多 >