arj*_*klc 5 python terraform hcl
我正在尝试使用 Python 编辑 Terraform 配置文件。我正在使用返回 python 字典的python hcl2库解析 Terraform 文件 (.tf) 。我想添加新的键/值对或更改字典中的某些值。直接写入文件不是一个好习惯,因为返回的 python 字典不是 Hashicorp 配置语言格式。也可以有多个配置文件,如 variables.tf 等,它们链接在一起。我应该实现自己的序列化程序,将 python 字典转换为 terraform 配置文件,还是有更简单的方法来做到这一点?
该python-hcl2
库实现了 HCL 语法的解析器,但它没有序列化器,并且其 API 旨在删除所有 HCL 细节并仅保留基本的 Python 数据结构,因此它似乎没有保留足够的信息对输入进行外科手术式修改,而不会丢失注释、属性排序等细节。
在我撰写本文时,唯一明确支持就地更新现有配置文件的 HCL 实现是 Go 包hclwrite
。它允许调用者加载任意 HCL 源,彻底修改其中的部分内容,然后重新序列化更新后的版本,仅对输入中未更改的部分进行少量空白规范化。
原则上,如果您不关心保留未更改的输入,则可以移植hclwrite
到 Python,或者从字典(如返回)实现序列化器python-hcl2
,但这两个似乎都是一个重要的项目。
如果您决定这样做,需要仔细注意的一个部分是将字符串序列化为 HCL 语法,因为所需的转义与任何其他语言并不完全相同。您可能希望参考from 的函数来escapeQuotedStringLit
hclwrite
查看要处理的所有情况,以便您可以在 Python 中实现兼容的逻辑。
归档时间: |
|
查看次数: |
757 次 |
最近记录: |