Terraform
Terraform 是一个基础架构即代码工具,使开发者和运维团队能够使用声明性配置文件来定义、管理和配置云资源与基础架构,而无需手动设置。
使用 Terraform,您可以用代码描述如虚拟机、网络和存储等基础架构资源。 然后,Terraform 会自动创建和管理这些资源。 这种方法让基础架构更易于版本控制、审查和复现,帮助团队在开发、测试和生产环境间保持环境一致。
安装 Terraform 和 HCL 插件
此功能依赖于 Terraform and HCL插件,您需要安装并启用。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 插件市场 选项卡,找到 Terraform and HCL插件,然后点击 安装 (如果系统提示,重启 IDE)。
指定 Terraform 可执行文件的路径
要在 IDE 中使用运行配置运行 Terraform 命令,您需要在计算机上安装 Terraform。
按 Ctrl+Alt+S 打开设置,然后选择 。
在大多数情况下,PhpStorm 会自动检测到 Terraform 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测与测试。
如果您的计算机上未安装 Terraform,请点击 安装。

如有必要,您可以在 Terraform 可执行文件路径 字段中手动指定 Terraform 的路径。
创建 Terraform 文件
PhpStorm 为多种 Terraform 文件类型提供预配置模板。 要创建文件,请在 Project 工具窗口中,右键点击目录并选择 。 这将打开一个对话框,允许您从可用的 Terraform 文件模板中进行选择。

文件扩展程序 | 文件模板 | 描述 |
|---|---|---|
.tf | 配置 | Terraform 配置文件。 |
.tfcomponent.hcl | 组件 | Terraform 组件文件。 |
.tfdeploy.hcl | 部署 | Terraform 部署文件。 |
.tftest.hcl | 测试 | Terraform 测试文件。 |
Terraform 配置通常包含多个环境或互相关联的组件。 您可以将配置组织为 Terraform 工作区 和 Terraform Stacks ,两者在 PhpStorm 中均受支持。
Terraform 堆栈
Terraform 堆栈使用 .tfstack.hcl 、 .tfcomponent.hcl 和 .tfdeploy.hcl 扩展程序。
PhpStorm 为堆栈特定构造提供编码辅助。 IDE 支持堆栈根块及其属性的补全,自动插入所需属性,并高亮显示缺失的必需属性。
Terraform 测试
PhpStorm 支持 Terraform 测试框架进行基础架构代码测试。
PhpStorm 可识别并为 Terraform 测试文件( .tftest.hcl )和可复用的 mock 定义(可从测试中引用 .tfmock.hcl )提供编码辅助。
Terraform 模板文件
PhpStorm 支持通常使用 .tftpl 扩展名的 Terraform 模板文件。
要使用 实时模板,请在 Terraform template 文件中开始输入 if 或 for。

导航到模板文件
在 Terraform 文件中,您可以使用 templatefile 函数注入模板。 使用 PhpStorm,您可以快速从 Terraform 文件导航到模板文件。
在您的 Terraform 文件中,找到
templatefile函数。将文本光标放到模板文件名处并按 Ctrl+B。
选择模板数据语言
如果语言在模板文件扩展名 (file.<lang>.tftpl) 中指定,则该语言用作数据语言。 例如,在 file.js.tftpl 中,将使用 JavaScript。 如果未指定数据语言(例如, file.tftpl ),模板文件将被识别为纯文本。
您可以选择数据语言(或更改检测到的语言)以便文件语法能够相应地被识别。
在编辑器中右键点击文件选项卡,选择 将 <Language> 模板数据语言更改为 ,例如 将 JavaScript 模板数据语言更改为 或 将纯文本模板数据语言更改为。
或者,按 Alt+Enter (显示上下文操作 )在文件中并选择 选择模板数据语言。
在打开的语言列表中,选择语言。
Terraform 变量
Terraform 变量定义文件通常使用 .tfvars 扩展程序。 使用这些文件为 Terraform 配置中声明的变量提供值。
编辑 Terraform 文件
IDE 通过为 Terraform 核心元素和提供者定义的概念提供智能代码洞察,帮助您高效地编写基础架构代码,更快且更少干扰。 包括以下功能:
您可以在 设置 对话框(Ctrl+Alt+S ),以及 和 页面上自定义颜色设置。
PhpStorm 在 Terraform 文件中提供补全,包括已知提供者、提供者函数、资源、数据源、操作和实参。

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

您可以在 设置 对话框(Ctrl+Alt+S )中的 页面禁用 Terraform 的整行代码补全功能。
若要重命名该元素及其所有用法,请按 Shift+F6。
使用 结构 工具窗口快速预览和导航 Terraform 文件。

工具窗口可以在 中找到或通过按 Alt+7 显示。
将鼠标悬停在参数上即可获得它的快速文档。

有关更多详细信息,您还可以通过按 Shift+F1 打开 Terraform Registry(此文档的来源)。
使用 Terraform 检查 ,可以检测重复、冲突、已弃用或缺失的元素,未解析的引用、未知资源等。

您可以在 设置 对话框(Ctrl+Alt+S )中的 下查看所有 Terraform 检查。
编码辅助还包括括号匹配 Ctrl+Shift+M 、代码折叠 Ctrl+NumPad +/Ctrl+NumPad - 、添加行注释 Ctrl+/ 和块注释 Ctrl+Shift+/ ,以及 插入版权文本到您的 Terraform 文件中。
运行 Terraform
Terraform 和 HCL 插件为 Terraform 提供专用的运行配置。 这些运行配置允许您自定义 terraform 命令的执行,例如添加参数或传递环境变量。
使用边栏图标运行 Terraform
在 Terraform 文件中,点击
。
在打开的窗口中,选择 计划 以创建执行计划,或选择 Apply 如果您已经有一个 Terraform 计划并希望应用它。

如果尚未对该目录执行 Terraform 初始化步骤,则 运行 沟槽图标中会有一个警告标志。 在这种情况下,PhpStorm 建议您在运行 terraform init 命令之前,先运行 terraform plan 或 terraform apply。
从沟槽图标运行 Terraform 会创建一个临时运行配置。 您可以通过点击 并选择 保存配置 在运行微件中将其保存为永久性的。
手动创建 Terraform 运行配置
转到 。 或者,按 Alt+Shift+F10 ,然后 0。
请点击 添加新配置 按钮(
)并开始输入 Terraform。

请选择运行配置的类型:
Terraform Init 以运行
terraform init命令Terraform Validate 以运行
terraform validate命令Terraform Plan 以运行
terraform plan命令Terraform Apply 以运行
terraform apply命令Terraform Destroy 以运行
terraform destroy命令Terraform ,这使您能够提供任何其他 Terraform 命令
在 命令 列表中选择一个 Terraform 命令。 要运行此列表中未包含的命令,请选择 自定义 并在 程序参数 字段中指定它。
为运行配置命名,并在必要时更改工作目录。 如果您使用环境变量,请在 环境变量 字段中指定它们,或者选择一个文件以使用其中的变量。
格式化 Terraform 代码
使用 PhpStorm,您可以对 Terraform 文件应用代码样式。 PhpStorm 包括两个格式化工具:
使用 Terraform 格式化工具
Terraform 格式化工具 (terraform fmt) 基于 Terraform 代码风格。 适用于 .tf 和 .tfvars 文件。
使用 Terraform 格式化工具需要 安装 Terraform。
在主菜单中,进入 .
或者按 Ctrl+Alt+Shift+F。
尽管 Terraform formatter terraform fmt 适用于整个文件, PhpStorm formatter 也可以应用于选定的代码片段。
使用 PhpStorm 格式化程序
PhpStorm 格式化器基于由 Terraform 和 HCL 插件提供的 PhpStorm 代码样式。 您可以在 IDE 设置中自定义此代码样式,位于 。
除此之外 .tf 和 .tfvars ,它还适用于 .hcl 文件。
要重新格式化文件,请在编辑器中打开它,然后在主菜单中转到 。 或者按 Ctrl+Alt+Shift+L。
要重新格式化部分代码,请选择一段代码,然后在主菜单中进入 。 或者按 Ctrl+Alt+L。
刷新 Terraform 提供者元数据
Terraform 和 HCL 插件附带特定版本的提供者元数据,从而启用编码辅助,例如针对已知属性的补全和检查。
如果您的项目使用了不同的提供者版本(例如在 required_providers 块中更改后),请通过运行 terraform init 初始化项目。
如果在 中启用了 自动构建本地元数据 选项,PhpStorm 会自动重新生成本地提供者元数据。 如果该选项被禁用,您可以手动刷新元数据。
手动刷新提供者元数据
项目初始化后,请执行以下操作之一:
打开一个 Terraform 配置文件,并在编辑器任意位置右键点击。
打开 Project 工具窗口 Alt+1 ,然后右键点击一个 Terraform 配置文件。
从上下文菜单中选择 。

高级设置
- 自动下载 Terraform 文档
默认情况下,PhpStorm 会从 Terraform Registry 下载 Terraform 属性的快速文档。 如果您遇到网络或性能问题,可以禁用它,PhpStorm 将显示来自元数据的描述。 这些描述的可用性取决于资源开发者。
- 自动构建本地元数据
启用后,在您运行
terraform init后,PhpStorm 会自动重新生成本地提供者元数据。 这样可以确保编码辅助使用您在配置文件中定义的提供者版本。- 深度搜索变量
当您在 Terraform 中使用变量时,PhpStorm 会检查您项目中的所有 Terraform 文件以查找变量定义。 如果您希望 PhpStorm 只检查根目录中的文件(包含
.terraform.lock.hcl的那个),请取消选中复选框。
Terraform 代码样式设置
Terraform 特定的代码样式设置可在 中找到。
- 格式化时对齐属性
选择对齐属性及其值的方式:对齐等号、对齐值或不对齐任何内容。
- 行注释符号
选择在按下 Ctrl+/ 时用于单行注释的符号。
- 在补全时自动导入提供程序
在完成资源名称时将提供程序要求插入到当前文件中。 如果缺少
required_providers块,请添加它。- 调用 'terraform/tofu fmt' 进行格式化
当您调用 时运行 Terraform(或 OpenTofu)格式化器。
