跳转至

Python libterraform

libterraform 是 Terraform 的 Python 绑定。它把 Terraform 打包为共享库, 并提供 Python API 来执行 Terraform CLI 命令、解析 Terraform 配置目录。

提供能力

  • TerraformCommand:从 Python 调用 Terraform 命令。
  • AsyncTerraformCommand:在 asyncio 应用中等待 Terraform 命令,同时避免阻塞 event loop。
  • TerraformConfig:把 .tf.tf.json 文件加载为 Terraform 内部模块表示。
  • 预构建 wheel 内包含 Terraform 共享库,调用方通常不需要在 PATH 中额外安装 terraform 可执行文件。

从这里开始

版本对应关系

libterraform Terraform
0.15.0 1.15.5
0.14.0 1.14.9
0.13.0 1.13.5
0.12.0 1.12.2
0.11.0 1.11.4
0.10.0 1.10.5
0.9.0 1.9.8
0.8.2 1.8.4
0.7.0 1.6.6
0.6.0 1.5.7
0.5.0 1.3.0
0.4.0 1.2.2
0.3.1 1.1.7

运行约束

TerraformCommand 可以被多个 Python 线程安全调用,但 Terraform CLI 会在共享库 内部串行执行。Terraform 仍使用当前工作目录、stdio、checkpoint 状态和 plugin client 清理等进程级全局状态,因此真正并行的 Terraform 操作需要使用多个进程隔离。

AsyncTerraformCommand 也遵循同样的 Terraform 执行约束。它让同步 API 可以在 asyncio 应用中被 await,但不会让同一个 Python 进程内的 Terraform CLI 执行变成 真正并行。

Terraform 操作仍可能影响真实基础设施,因此执行 applydestroy、状态命令、 导入和测试时,应保持与直接使用 Terraform CLI 相同的谨慎程度。