Terraform
Terraform 是一款基础架构即代码(IaC)工具,使开发者和运维团队能够使用声明式配置文件来定义、管理和预配云资源与基础架构,而无需手动设置。
使用 Terraform,您可以通过代码描述基础架构资源,如虚拟机、网络和存储。 Terraform 会自动创建和管理这些资源。 这种方法让基础架构更容易进行版本管理、审查和复现,帮助团队在开发、测试和生产环境中保持一致性。
Terraform 配置通常包括多个环境或相互关联的组件。 您可以将设置组织为 Terraform 工作区 和 Terraform 栈 ,PyCharm 均支持这两种方式。
IDE 通过为 Terraform 核心元素和提供者定义的概念提供智能代码洞察,帮助您保持高效,从而更快且更少干扰地编写基础架构代码。 包括以下功能:
您可以在 设置 对话框(Ctrl+Alt+S)、 页面和 页面自定义颜色设置。
您可以在 设置 对话框(Ctrl+Alt+S) 的 页面访问与 Terraform 相关的代码风格设置。
在 项目 工具窗口中,右键点击目录并选择 新建 (或按 Alt+Insert ),然后选择 Terraform 文件。 这将打开一个对话框,允许您从可用的 Terraform 文件模板中进行选择。

要修改 Terraform 文件模板,请打开 设置 对话框(Ctrl+Alt+S ),然后转到 。
PyCharm 在 Terraform 文件内提供补全,包括已知提供者、提供者函数、资源、数据源和参数。

在配置提供者要求时,IDE 会在
required_providers块内建议可用的提供者及相关属性,如source和version。 这样可帮助您根据 Terraform 规范定义要求。 有关提供者要求的更多详细信息,请参阅 Terraform 文档。在 Terraform 栈文件中,PyCharm 为栈根块及其属性提供补全。 必需属性会自动插入,IDE 也会高亮显示缺失的属性。
在 .tfcomponent.hcl 文件中,PyCharm 支持对提供者声明和配置、以及
component和stack块中使用的模块变量和提供者进行补全。使用本地运行的深度学习模型完成整行代码。

您可以在 设置 对话框(Ctrl+Alt+S) 的 页面禁用 Terraform 的全行代码补全。
对于资源、变量、局部变量和数据源,PyCharm 会以内联提示的形式显示其用法数量。 点击内联提示(或按 Ctrl+B )以显示其所有用法并导航到相应位置。

您可以在 设置 对话框(Ctrl+Alt+S) 的 下禁用、启用以及更改用法内联提示的位置。
您可以检测重复、冲突、已弃用或缺失的元素、未解析的引用、未知的资源等。

您可以在 设置 对话框(Ctrl+Alt+S) 的 下查看所有 Terraform 检查。
要重命名该元素及其所有用法,请按 Shift+F6。
文件监视器 ,可在每次保存文件时运行 Terraform 命令(例如
terraform fmt)。 要启用此功能,请安装 File Watchers 插件。使用 结构 工具窗口可快速预览并导航 Terraform 文件。

该工具窗口可在 中使用,或通过按 Alt+7 打开。
将鼠标悬停在参数上可查看其快速文档。

如需了解更多详细信息,您还可以按 Shift+F1 打开 Terraform Registry(该文档的来源)。
编码辅助还包括括号匹配 Ctrl+Shift+M 、代码折叠 Ctrl+NumPad +/Ctrl+NumPad - 、添加行注释 Ctrl+/ 和块注释 Ctrl+Shift+/ ,以及 插入版权文本 到您的 Terraform 文件中。
安装 Terraform 和 HCL 插件
此功能依赖于 Terraform and HCL 插件,您需要安装并将其启用。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
打开 Marketplace 选项卡,找到 Terraform and HCL 插件,然后点击 安装 (如出现提示,请重启 IDE)。
指定 Terraform 可执行文件路径
要在 IDE 中使用运行配置运行 Terraform 命令,您需要在计算机上安装 Terraform。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
在大多数情况下,PyCharm 会自动检测 Terraform 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测与测试。
如果您的计算机上未安装 Terraform,请点击 安装。

如有必要,您可以在 Terraform 可执行文件路径 字段中手动指定 Terraform 的路径。
运行 Terraform
Terraform 和 HCL 插件为 Terraform 提供了专用的运行配置。 这些运行配置允许您自定义 terraform 命令的执行,例如添加参数或传递环境变量。
使用装订区域图标运行 Terraform
在 Terraform 文件中,点击装订区域中的
。
在打开的窗口中,选择 计划 以创建执行计划;或者如果您已有 Terraform 计划并希望应用它,则选择 Apply。

如果尚未为此目录执行 Terraform 初始化步骤, 运行 装订区域图标上会显示警告标志。 在这种情况下,PyCharm 建议您在运行 terraform plan 或 terraform apply 之前先运行 terraform init 命令。
从装订区域图标运行 Terraform 会创建一个临时运行配置。 您可以在运行小部件中点击 ,然后选择 保存配置 ,将其保存为永久配置。
手动创建 Terraform 运行配置
转到 。 或者,点击 运行 小部件中的
,并在下拉菜单中选择 编辑配置(E)。

点击 添加新配置 按钮(
),然后开始键入 Terraform。

选择运行配置的类型:
Terraform Init 以运行
terraform init命令Terraform Validate 以运行
terraform validate命令Terraform Plan 以运行
terraform plan命令Terraform Apply 以运行
terraform apply命令Terraform Destroy 以运行
terraform destroy命令Terraform ,用于指定任意其他 Terraform 命令
在 Command 列表中,选择一个 Terraform 命令。 要运行不在此列表中的命令,请选择 自定义 ,并在 程序参数 字段中指定该命令。
为运行配置命名,并在必要时更改工作目录。 如果您使用环境变量,请在 环境变量 字段中指定它们,或选择一个文件以从中使用变量。
刷新 Terraform 提供程序元数据
Terraform 和 HCL 插件附带特定版本的提供程序元数据,这使您可以使用编码辅助,例如已知属性的补全和检查。
如果您的项目使用不同的提供程序版本(例如,在 required_providers 块中更改后),请通过运行 terraform init 来初始化项目。
如果在 中启用了 自动构建本地元数据 选项,PyCharm 将自动重新生成本地提供程序元数据。 如果未启用该选项,您可以手动刷新元数据。
手动刷新提供程序元数据
初始化项目后,请执行以下任一操作:
打开 Terraform 配置文件,并在编辑器内任意位置右键点击。
打开 项目 工具窗口 Alt+1 ,然后右键点击一个 Terraform 配置文件。
从上下文菜单中,选择 。

重新格式化 Terraform 代码
使用 PyCharm,您可以将代码风格应用于 Terraform 文件。 PyCharm 包含两个格式化工具:
使用 Terraform 格式化程序
Terraform 格式化工具(terraform fmt )基于 Terraform 代码风格。 它适用于 .tf 和 .tfvars 文件。
使用 Terraform 格式化工具需要 安装 Terraform。
在主菜单中,转到 。
或者按 Ctrl+Alt+Shift+F。
虽然 Terraform 格式化程序 terraform fmt 适用于整个文件, PyCharm 格式化程序 也可以应用于选定的代码片段。
使用 PyCharm 格式化程序
PyCharm 格式化程序基于 Terraform 和 HCL 插件提供的 PyCharm 代码风格。 您可以在 IDE 设置中的 下自定义此代码风格。
除了 .tf 和 .tfvars 外,它还适用于 .hcl 文件。
要重新格式化文件,请在编辑器中将其打开,然后在主菜单中转到 。 或者按 Ctrl+Alt+Shift+L。
要重新格式化部分代码,请选择一段代码,然后在主菜单中转到 。 或者按 Ctrl+Alt+L。
Terraform 模板文件
PyCharm 为 Terraform 模板文件提供支持,这类文件通常使用 .tftpl 扩展名。 对模板文件的支持包括编码辅助(语法高亮显示、检查等)、导航到模板文件以及实时模板。
要使用实时模板,请在 Terraform 模板文件中开始键入 if 或 for。

导航到模板文件
在 Terraform 文件中,您可以使用 templatefile 函数来注入模板。 使用 PyCharm,您可以从 Terraform 文件快速导航到模板文件。
在您的 Terraform 文件中,找到
templatefile函数。将插入符号置于模板文件名处,然后按 Ctrl+B。
选择模板数据语言
如果在模板文件扩展名中指定了语言(file.<lang>.tftpl ),则该语言将用作数据语言。 例如,在 file.js.tftpl 中将使用 JavaScript。 如果未指定数据语言(例如 file.tftpl ),模板文件将被识别为纯文本。
如果您希望相应识别文件语法,可以选择数据语言(或更改检测到的语言)。
在编辑器中右键点击文件选项卡,选择 将 <Language> 模板数据语言更改为 ,例如 将 JavaScript 模板数据语言更改为 或 将纯文本模板数据语言更改为。
或者在文件中按 Alt+Enter (显示上下文操作 ),然后选择 选择模板数据语言。
在打开的语言列表中,选择语言。
高级设置
- 自动下载 Terraform 文档
默认情况下,PyCharm 会从 Terraform Registry 下载 Terraform 属性的快速文档。 在遇到网络或性能问题时,您可以将其禁用,PyCharm 将改为显示来自元数据的描述。 此类描述的可用性取决于资源开发人员。
- 自动构建本地元数据
启用后,在您运行
terraform init后,PyCharm 将自动重新生成本地提供程序元数据。 这确保编码辅助使用您配置文件中定义的提供程序版本。- 深度搜索变量
在 Terraform 中使用变量时,PyCharm 会在项目中的所有 Terraform 文件中检查该变量的定义。 如果您只希望 PyCharm 仅检查根目录(包含
.terraform.lock.hcl的那个)内的文件,请清除此复选框。
Terraform 代码风格设置
Terraform 特定的代码风格设置可在 中使用。
- 格式化时对齐属性
选择对齐属性及其值的方式:对齐等号、对齐值,或不进行对齐。
- 行注释符号
选择在按下 Ctrl+/ 时用于单行注释的符号。
- 在补全时自动导入提供程序
在补全资源名称时,将提供程序需求插入到当前文件。 如果缺失,则添加
required_providers块。- 调用 'terraform/tofu fmt' 进行格式化
在调用 时运行 Terraform(或 OpenTofu)格式化程序。
OpenTofu
OpenTofu 是一个 Terraform 的分支,开源、社区驱动,并由 Linux 基金会管理。
PyCharm 为 OpenTofu 文件提供编码辅助,包括语法高亮显示、补全和检查。 它还为 OpenTofu 提供专用的运行配置,基本与 Terraform 的相同,但使用 tofu 命令。

指定 OpenTofu 可执行文件路径
要在 IDE 中使用运行配置运行 OpenTofu 命令,您需要在计算机上安装 OpenTofu。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
在大多数情况下,PyCharm 会自动检测 OpenTofu 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测与测试。
如果您的计算机上未安装 OpenTofu,请点击 安装。

如有必要,您可以在 OpenTofu 可执行文件路径 字段中手动指定 OpenTofu 的路径。
Terragrunt
Terragrunt 是一个为 Terraform 和 OpenTofu 提供的轻量级包装器,可通过优化结构和减少代码重复,帮助您管理复杂的基础架构配置。
PyCharm 能识别 Terragrunt 和 Terragrunt Stack 文件,并为它们提供编码辅助,包括根块、属性、函数和特性的代码补全,以及用于创建新 Terragrunt 和 Terragrunt Stack 文件的模板。
指定 Terragrunt 可执行文件路径
要在 IDE 中使用运行配置运行 Terragrunt 命令,您需要在计算机上安装 Terragrunt。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
在大多数情况下,PyCharm 会自动检测 Terragrunt 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测与测试。
如果您的计算机上未安装 Terragrunt,请点击 安装。

如有必要,您可以在 Terragrunt 可执行文件路径 字段中手动指定 Terragrunt 的路径。