扩展库 / terraform_state
terraform_state
只读查询原始 Terraform state。
仅接受原始 .tfstate v4 JSON;不解析 terraform show -json 的结构,也不编辑或同步云端资源。
API
| 接口 | 用途 |
|---|---|
parse / valid | 读取或检查原始 state v4 |
version / serial / lineage | 查询状态元数据 |
addresses / find / instances / attributes | 查询资源及实例 |
outputs / output | 读取输出值 |
范例
import terraform_state
string source = '{"version":4,"serial":0,"lineage":"demo","resources":[],"outputs":{}}'
var state = terraform_state.parse(source)
assert terraform_state.version(state) == 4
成对范例用虚构数据展示 module.site.data.aws_ami.ubuntu 的地址和属性查询。真实 state 可能包含明文凭据,请保护文件权限,勿把属性或输出直接写入日志。顶层 lineage 解码后不能含 NUL;资源详情按查询懒校验,输入上限 64 MiB。资源地址重复时,地址列表和对应查找会报错,不会静默选中第一项;valid 仍仅校验顶层形状。XLang 查询地址和输出名称含 NUL 时抛 ValueError。C 结果所有权与多实例地址规则见包内 README。2026-10-24 原有 C、双语及 AOT 路径通过,但合法 XLang 字典传给公开 var state 参数仍因共享 foreign 容器 ABI 失败;包级门禁现固定该阻断,暂不签收完整发布级。