PyCharm 2026.2 Help

Terraform

Terraform 是一款基础架构即代码(IaC)工具,使开发者和运维团队能够使用声明式配置文件来定义、管理和预配云资源与基础架构,而无需手动设置。

使用 Terraform,您可以通过代码描述基础架构资源,如虚拟机、网络和存储。 Terraform 会自动创建和管理这些资源。 这种方法让基础架构更容易进行版本管理、审查和复现,帮助团队在开发、测试和生产环境中保持一致性。

安装 Terraform 和 HCL 插件

此功能依赖于 Terraform and HCL 插件,您需要安装并将其启用。

  1. 按下 Ctrl+Alt+S 以打开设置,然后选择 插件

  2. 打开 插件市场 选项卡,找到 Terraform and HCL 插件,然后点击 安装 (如出现提示,请重启 IDE)。

指定 Terraform 可执行文件路径

要在 IDE 中使用运行配置运行 Terraform 命令,您需要在计算机上安装 Terraform。

  1. 按下 Ctrl+Alt+S 以打开设置,然后选择 工具 | Terraform 工具

  2. 在大多数情况下,PyCharm 会自动检测 Terraform 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测与测试

    如果您的计算机上未安装 Terraform,请点击 安装

    Terraform 工具设置
  3. 如有必要,您可以在 Terraform 可执行文件路径 字段中手动指定 Terraform 的路径。

创建 Terraform 文件

PyCharm 提供多个 Terraform 文件类型的预配置模板。 要创建文件,请在 项目 工具窗口中,右键点击目录并选择 新建 | Terraform 文件。 这将打开一个对话框,允许您从可用的 Terraform 文件模板中进行选择。

Terraform 文件类型

文件扩展名

文件模板

描述

.tf

配置

Terraform 配置文件。

.tfcomponent.hcl

组件

Terraform 组件文件。

.tfdeploy.hcl

部署

Terraform 部署文件。

.tftest.hcl

测试

Terraform 测试文件。

Terraform 配置通常包括多个环境或相互关联的组件。 您可以将设置组织为 Terraform 工作区Terraform 栈 ,PyCharm 均支持这两种方式。

Terraform 资源栈

Terraform Stacks 使用 .tfstack.hcl .tfcomponent.hcl .tfdeploy.hcl 扩展名。

PyCharm 为 Stack 特定的结构提供编码辅助。 该 IDE 对 Stack 根块及其属性提供补全,自动插入所需属性,并高亮显示缺失的必需属性。

Terraform 测试

PyCharm 支持 Terraform 测试框架 用于测试基础架构代码。

PyCharm 能识别并为 Terraform 测试文件( .tftest.hcl )和可复用的 mock 定义(可被测试引用, .tfmock.hcl )提供编码辅助。

Terraform 模板文件

PyCharm 为 Terraform 模板文件提供支持,这类文件通常使用 .tftpl 扩展名。

要使用实时模板,请在 Terraform 模板文件中开始键入 iffor

实时模板

在 Terraform 文件中,您可以使用 templatefile 函数来注入模板。 使用 PyCharm,您可以从 Terraform 文件快速导航到模板文件。

  1. 在您的 Terraform 文件中,找到 templatefile 函数。

  2. 将插入符号置于模板文件名处,然后按 Ctrl+B

选择模板数据语言

如果在模板文件扩展名中指定了语言(file.<lang>.tftpl ),则该语言将用作数据语言。 例如,在 file.js.tftpl 中将使用 JavaScript。 如果未指定数据语言(例如 file.tftpl ),模板文件将被识别为纯文本。

如果您希望相应识别文件语法,可以选择数据语言(或更改检测到的语言)。

  1. 在编辑器中右键点击文件选项卡,选择 将 <Language> 模板数据语言更改为 ,例如 将 JavaScript 模板数据语言更改为将纯文本模板数据语言更改为

    或者在文件中按 Alt+Enter显示上下文操作 ),然后选择 选择模板数据语言

  2. 在打开的语言列表中,选择语言。

Terraform 变量

Terraform 变量定义文件通常使用 .tfvars 扩展名。 使用这些文件为 Terraform 配置中声明的变量提供值。

编辑 Terraform 文件

IDE 通过为 Terraform 核心元素和提供者定义的概念提供智能代码洞察,帮助您保持高效,从而更快且更少干扰地编写基础架构代码。 包括以下功能:

  • 语法高亮

    您可以在 设置 对话框(Ctrl+Alt+S)、 编辑器 | 配色方案 | HCL 页面和 编辑器 | 配色方案 | HashiCorp Interpolation Language 页面自定义颜色设置。

  • 代码补全

    PyCharm 在 Terraform 文件中提供补全,包括已知的提供程序、提供程序函数、资源、数据源、操作和参数。

    Terraform 资源补全

    在配置提供者要求时,IDE 会在 required_providers 块内建议可用的提供者及相关属性,如 sourceversion。 这样可帮助您根据 Terraform 规范定义要求。 有关提供者要求的更多详细信息,请参阅 Terraform 文档

    在 Terraform 栈文件中,PyCharm 为栈根块及其属性提供补全。 必需属性会自动插入,IDE 也会高亮显示缺失的属性。

    .tfcomponent.hcl 文件中,PyCharm 支持对提供者声明和配置、以及 componentstack 块中使用的模块变量和提供者进行补全。

  • 全行代码补全

    使用本地运行的深度学习模型完成整行代码。

    Terraform 全行代码补全

    您可以在 设置 对话框(Ctrl+Alt+S) 的 编辑器 | 常规 | 代码补全 | 内联式完成代码行补全 页面禁用 Terraform 的全行代码补全。

  • 重构

    要重命名该元素及其所有用法,请按 Shift+F6

  • 结构视图

    使用 结构 工具窗口可快速预览并导航 Terraform 文件。

    Terraform 结构

    该工具窗口可在 视图 | 工具窗口 | 结构 中使用,或通过按 Alt+7 打开。

  • 快速文档

    将鼠标悬停在参数上可查看其快速文档。

    Terraform 快速文档

    如需了解更多详细信息,您还可以按 Shift+F1 打开 Terraform Registry(该文档的来源)。

  • 代码检查

    使用 Terraform 检查 ,可以检测重复、冲突、已弃用或缺失的元素、未解析的引用、未知的资源等。

    Terraform 缺失属性检查

    您可以在 设置 对话框(Ctrl+Alt+S) 的 编辑器 | 检查 | Terraform 下查看所有 Terraform 检查。

  • 编码辅助还包括括号匹配 Ctrl+Shift+M 、代码折叠 Ctrl+NumPad +/Ctrl+NumPad - 、添加行注释 Ctrl+/ 和块注释 Ctrl+Shift+/ ,以及 插入版权文本 到您的 Terraform 文件中。

运行 Terraform

Terraform 和 HCL 插件为 Terraform 提供了专用的运行配置。 这些运行配置允许您自定义 terraform 命令的执行,例如添加参数或传递环境变量。

使用装订区域图标运行 Terraform

  1. 在 Terraform 文件中,点击装订区域中的 运行

  2. 在打开的窗口中,选择 计划 以创建执行计划;或者如果您已有 Terraform 计划并希望应用它,则选择 Apply

    从装订区域运行 Terraform

如果尚未为此目录执行 Terraform 初始化步骤, 运行 装订区域图标上会显示警告标志。 在这种情况下,PyCharm 建议您在运行 terraform planterraform apply 之前先运行 terraform init 命令。

从装订区域图标运行 Terraform 会创建一个临时运行配置。 您可以在运行小部件中点击 更多操作 ,然后选择 保存配置 ,将其保存为永久配置。

手动创建 Terraform 运行配置

  1. 转到 运行 | 编辑配置。 或者,点击 运行 小部件中的 ,并在下拉菜单中选择 编辑配置

    运行/调试配置弹出窗口
  2. 点击 添加新配置 按钮(添加运行/调试配置 ),然后开始键入 Terraform

    Terraform 运行配置
  3. 选择运行配置的类型:

    • Terraform Init 以运行 terraform init 命令

    • Terraform Validate 以运行 terraform validate 命令

    • Terraform Plan 以运行 terraform plan 命令

    • Terraform Apply 以运行 terraform apply 命令

    • Terraform Destroy 以运行 terraform destroy 命令

    • Terraform ,用于指定任意其他 Terraform 命令

  4. Command 列表中,选择一个 Terraform 命令。 要运行不在此列表中的命令,请选择 自定义 ,并在 程序参数 字段中指定该命令。

  5. 为运行配置命名,并在必要时更改工作目录。 如果您使用环境变量,请在 环境变量 字段中指定它们,或选择一个文件以从中使用变量。

重新格式化 Terraform 代码

使用 PyCharm,您可以将代码风格应用于 Terraform 文件。 PyCharm 包含两个格式化工具:

使用 Terraform 格式化程序

Terraform 格式化工具(terraform fmt )基于 Terraform 代码风格。 它适用于 .tf .tfvars 文件。

使用 Terraform 格式化工具需要 安装 Terraform

  • 在主菜单中,转到 代码 | Terraform 工具 | 格式化文件

  • 或者按 Ctrl+Alt+Shift+F

虽然 Terraform 格式化程序 terraform fmt 适用于整个文件, PyCharm 格式化程序 也可以应用于选定的代码片段。

使用 PyCharm 格式化程序

PyCharm 格式化程序基于 Terraform 和 HCL 插件提供的 PyCharm 代码风格。 您可以在 IDE 设置中的 编辑器 | 代码风格 | Terraform 下自定义此代码风格。

除了 .tf .tfvars 外,它还适用于 .hcl 文件。

  • 要重新格式化文件,请在编辑器中将其打开,然后在主菜单中转到 代码 | 重排文件。 或者按 Ctrl+Alt+Shift+L

  • 要重新格式化部分代码,请选择一段代码,然后在主菜单中转到 代码 | 重新设置格式。 或者按 Ctrl+Alt+L

刷新 Terraform 提供程序元数据

Terraform 和 HCL 插件附带特定版本的提供程序元数据,这使您可以使用编码辅助,例如已知属性的补全和检查。

如果您的项目使用不同的提供程序版本(例如,在 required_providers 块中更改后),请通过运行 terraform init 来初始化项目。

如果在 设置 | 高级设置 中启用了 自动构建本地元数据 选项,PyCharm 将自动重新生成本地提供程序元数据。 如果未启用该选项,您可以手动刷新元数据。

手动刷新提供程序元数据

  1. 初始化项目后,请执行以下任一操作:

    • 打开 Terraform 配置文件,并在编辑器内任意位置右键点击。

    • 打开 项目 工具窗口 Alt+1 ,然后右键点击一个 Terraform 配置文件。

  2. 从上下文菜单中,选择 Terraform 工具 | 生成 Providers 元数据

    生成提供程序元数据操作

高级设置

自动下载 Terraform 文档

默认情况下,PyCharm 会从 Terraform Registry 下载 Terraform 属性的快速文档。 在遇到网络或性能问题时,您可以将其禁用,PyCharm 将改为显示来自元数据的描述。 此类描述的可用性取决于资源开发人员。

自动构建本地元数据

启用后,在您运行 terraform init 后,PyCharm 将自动重新生成本地提供程序元数据。 这确保编码辅助使用您配置文件中定义的提供程序版本。

深度搜索变量

在 Terraform 中使用变量时,PyCharm 会在项目中的所有 Terraform 文件中检查该变量的定义。 如果您只希望 PyCharm 仅检查根目录(包含 .terraform.lock.hcl 的那个)内的文件,请清除此复选框。

Terraform 代码风格设置

Terraform 特定的代码风格设置可在 编辑器 | 代码风格 | Terraform/OpenTofu | 其他 中使用。

格式化时对齐属性

选择对齐属性及其值的方式:对齐等号、对齐值,或不进行对齐。

行注释符号

选择在按下 Ctrl+/ 时用于单行注释的符号。

在补全时自动导入提供程序

在补全资源名称时,将提供程序需求插入到当前文件。 如果缺失,则添加 required_providers 块。

调用 'terraform/tofu fmt' 进行格式化

在调用 代码 | 重排文件 时运行 Terraform(或 OpenTofu)格式化程序。

2026年 7月 14日