# Terraform

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

[Terraform](https://developer.hashicorp.com/terraform) 是一种基础架构即代码工具，可为开发者和运维团队启用使用声明式配置文件（而不是手动设置）来定义、管理和预配云资源与基础架构的能力。

借助 Terraform，可以用代码描述虚拟机、网络和存储等基础架构资源。 然后，Terraform 会自动创建和管理这些资源。 这种方法使基础架构更易于进行版本控制、审查和重现，帮助团队在开发、测试和生产环境中保持一致。

Procedure: 安装 Terraform 和 HCL 插件

此功能依赖于 [Terraform and HCL](https://plugins.jetbrains.com/plugin/7808-terraform-and-hcl)插件，您需要安装并启用。

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `插件` 。

2. 找到  Terraform 和 HCL  插件，然后点击   安装  。 如果出现提示，请重启 IDE。

Procedure: 指定 Terraform 可执行文件的路径

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

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `工具 | Terraform 工具` 。

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

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

![Terraform 工具设置](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_tools_settings.png)

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

> **Tip:**
> 您还可以在 WSL 中指定路径：
>
>
>
>
> ```SHELL
> \\wsl$\<Distribution>\<path to Terraform>
>
> ```
>
>
>
> 例如：
>
>
>
>
> ```SHELL
> \\wsl$\Ubuntu\usr\bin\terraform
>
> ```

## 创建 Terraform 文件

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

![Terraform 文件类型](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_file_type.png)

|  文件扩展程序  |  文件模板  |  描述  |
| --- | --- | --- |
|   `.tf`   |    配置    |  Terraform 配置文件。  |
|   `.tfcomponent.hcl`   |    组件    |  Terraform 组件文件。  |
|   `.tfdeploy.hcl`   |    部署    |  Terraform 部署文件。  |
|   `.tftest.hcl`   |    测试    |  Terraform 测试文件。  |

> **Note:**
> 某些 Terraform 文件类型没有预配置的文件模板，但IntelliJ IDEA仍为这些文件类型提供编码辅助，包括 [语法高亮显示](#syntax-highlighting)、 [代码补全](#completion)、 [导航](#navigation)等。

Terraform 配置通常包含多个环境或相互连接的组件。 可以将设置组织为 [Terraform 工作区](https://developer.hashicorp.com/terraform/language/state/workspaces) 和 [Terraform Stacks](https://developer.hashicorp.com/terraform/language/stacks)，二者均受 IntelliJ IDEA 支持。

### Terraform Stack

[Terraform Stacks](https://developer.hashicorp.com/terraform/language/stacks) 使用  `.tfstack.hcl` 、  `.tfcomponent.hcl`  和  `.tfdeploy.hcl`  扩展程序。

IntelliJ IDEA 为 Stack 专用构造提供编码辅助。 IDE 可为 stack 根块及其属性提供补全，自动插入所需属性，并高亮显示缺失的必需属性。

### Terraform 测试

IntelliJ IDEA 支持 [Terraform 测试框架](https://developer.hashicorp.com/terraform/language/tests) 测试基础架构编码。

> **Note:**
> 测试框架适用于 Terraform 1.6.0 及更高版本。

IntelliJ IDEA 可识别并为 Terraform 测试文件（  `.tftest.hcl` ）和可被测试引用的可复用模拟定义（  `.tfmock.hcl` ）提供编码辅助。

### Terraform 模板文件

IntelliJ IDEA 支持通常使用  `.tftpl`  扩展名的 Terraform 模板文件。

要使用 实时模板，请在 Terraform template 文件中开始输入  `if`  或  `for` 。

![实时模板](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_template_live_template.png)

Procedure: 导航到模板文件

在 Terraform 文件中，您可以使用 [templatefile](https://developer.hashicorp.com/terraform/language/functions/templatefile) 函数注入模板。 使用 IntelliJ IDEA，您可以快速从 Terraform 文件导航到模板文件。

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

2. 将文本光标放到模板文件名处并按 `Ctrl+B` (Windows), `⌘ B` (macOS), `⌘ B` (IntelliJ IDEA Classic (macOS)), `⌘ B` (macOS System Shortcuts), `Ctrl+B` (XWin), `Ctrl+B` (GNOME), `Ctrl+B` (KDE), `Ctrl+Alt+G` (Emacs), `F12` (Sublime Text), `F12` (Sublime Text (macOS)), `F12` (Visual Studio), `F12` (Visual Studio (macOS)), `Ctrl+B` (NetBeans), `F3` (Eclipse), `F3` (Eclipse (macOS))。

Procedure: 选择模板数据语言

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

您可以选择数据语言（或更改检测到的语言）以便文件语法能够相应地被识别。

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

或者，按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))（   显示上下文操作​​  ）在文件中并选择   选择模板数据语言  。

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

### Terraform 变量

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

## 编辑 Terraform 文件

IDE 通过为核心 Terraform 元素和提供程序定义的概念提供智能代码洞察，帮助保持高效，使编写基础架构代码更快速且干扰更少。 这包括以下功能：

* [语法高亮](configuring-colors-and-fonts.html) 可以在 设置 对话框（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）的 `编辑 | 颜色方案 | HCL` 和 `编辑器｜配色方案｜HashiCorp 插值语言` 页面上自定义颜色设置。

* [代码补全](auto-completing-code.html) IntelliJ IDEA 可在 Terraform 文件中提供补全，包括已知提供程序、提供程序函数／方法、资源、数据源、操作和实参。 ![Terraform 资源补全](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_completion.png) 配置提供程序要求时，IDE 会在 `required_providers` 块中建议可用的提供程序以及相关特性，如 `source` 和 `版本` 。 这有助于根据 Terraform 规范定义要求。 有关提供程序要求的更多详细信息，请参阅 [Terraform 文档](https://developer.hashicorp.com/terraform/language/providers/requirements)。 在 Terraform Stacks 文件中，IntelliJ IDEA 为栈根块及其属性提供补全。 必需属性会自动插入，IDE 会高亮显示任何缺失的属性。 在 `.tfcomponent.hcl` 文件中，IntelliJ IDEA 支持提供程序声明和配置的补全，以及 `组件` 和 `stack` 块中使用的模块变量和提供程序的补全。

* [整行代码补全](full-line-code-completion.html) 使用本地运行的深度学习模型完成整行代码。 ![Terraform 全行代码补全](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_full_line_completion.animated.gif) 您可以在 设置 对话框（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）中的 `编辑器 | 常规 | 代码补全 | 内联` 页面禁用 Terraform 的整行代码补全功能。

* [代码导航](navigating-through-the-source-code.html) 对于资源、变量、本地变量、数据源和 Terraform 操作，IntelliJ IDEA 以嵌入提示的形式显示其用法数量。 点击嵌入提示（或按 `Ctrl+B` (Windows), `⌘ B` (macOS), `⌘ B` (IntelliJ IDEA Classic (macOS)), `⌘ B` (macOS System Shortcuts), `Ctrl+B` (XWin), `Ctrl+B` (GNOME), `Ctrl+B` (KDE), `Ctrl+Alt+G` (Emacs), `F12` (Sublime Text), `F12` (Sublime Text (macOS)), `F12` (Visual Studio), `F12` (Visual Studio (macOS)), `Ctrl+B` (NetBeans), `F3` (Eclipse), `F3` (Eclipse (macOS))）可显示其所有用法并导航到这些用法。 ![Terraform 查找用法](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_usages_inlay_hints.png) 您可以在 设置 对话框（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）中的 `编辑器 | 嵌入提示 | Code Vision | 用法` 下禁用、启用和更改内嵌提示的使用位置。

* [重构](rename-refactorings.html) 若要重命名该元素及其所有用法，请按 `Shift+F6` (Windows), `⇧ F6` (macOS), `⇧ F6` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ R` (macOS System Shortcuts), `Shift+F6` (XWin), `Shift+F6` (GNOME), `Shift+F6` (KDE), `Shift+F6` (Emacs), `Shift+F6` (Sublime Text), `⇧ F6` (Sublime Text (macOS)), `Ctrl+R, R` (Visual Studio), `⌘ R, R` (Visual Studio (macOS)), `Ctrl+R` (NetBeans), `Alt+Shift+R` (Eclipse), `⇧ F6` (Eclipse (macOS))。

* [结构视图](viewing-structure-of-a-source-file.html#structure-tool-window) 使用 结构 工具窗口快速预览和导航 Terraform 文件。 ![Terraform 结构](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_structure.png) 工具窗口可以在 `视图 | Tool Windows | 结构` 中找到或通过按 `Alt+7` (Windows), `⌘ 7` (macOS), `⌘ 7` (IntelliJ IDEA Classic (macOS)), `⌘ 7` (macOS System Shortcuts), `Alt+7` (XWin), `Alt+7` (GNOME), `Alt+7` (KDE), `Alt+7` (Emacs), `Alt+7` (Sublime Text), `⌘ 7` (Sublime Text (macOS)), `Ctrl+Alt+F` (Visual Studio), `⌃ ⌥ F` (Visual Studio (macOS)), `Ctrl+7` (NetBeans), `Alt+7` (Eclipse), `⌘ 7` (Eclipse (macOS))显示。

* [快速文档](viewing-reference-information.html#inline-quick-documentation) 将鼠标悬停在参数上即可获得它的快速文档。 ![Terraform 快速文档](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_quick_documentation.png) 有关更多详细信息，还可以按 `Shift+F1` (Windows), `⇧ F1` (macOS), `⇧ F1` (IntelliJ IDEA Classic (macOS)), `⇧ F1` (macOS System Shortcuts), `Shift+F1` (XWin), `Shift+F1` (GNOME), `Shift+F1` (KDE), `Shift+F1` (Emacs), `Shift+F1` (Sublime Text), `⇧ F1` (Sublime Text (macOS)), `Shift+F1` (Visual Studio), `⇧ F1` (Visual Studio (macOS)), `Shift+F1` (NetBeans), `Shift+F2` (Eclipse), `⇧ F2` (Eclipse (macOS)) 打开 Terraform Registry（此文档的来源）。 > **Tip:** > Terraform 和 HCL 插件随附特定版本的提供者元数据（当您开始输入资源名称时，您可以看到版本号）。 如果您的提供者版本不同，并且您希望显示与之相关的快速文档，您可能需要执行 `terraform init` 来检索该特定版本的文档。

* [代码检查](code-inspection.html) 使用 [Terraform 检查](https://www.jetbrains.com/zh-cn/help/inspectopedia/Terraform-OpenTofu.html)，可以检测重复、冲突、已弃用或缺失的元素、未解析的引用、未知资源等。 ![Terraform 缺失属性检查](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_inspection_missing_argument.png) 您可以在 设置 对话框（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）中的 `编辑器 | 检查 | Terraform` 下查看所有 Terraform 检查。

* 编码辅助还包括括号匹配 `Ctrl+Shift+M` (Windows), `⌃ M` (macOS), `⌘ ⇧ M` (IntelliJ IDEA Classic (macOS)), `⌃ M` (macOS System Shortcuts), `Ctrl+Shift+M` (XWin), `Ctrl+Shift+M` (GNOME), `Ctrl+Shift+M` (KDE), `Ctrl+Shift+M` (Emacs), `Ctrl+M` (Sublime Text), `⌃ M` (Sublime Text (macOS)), `Ctrl+]` (Visual Studio), `⌘ ]` (Visual Studio (macOS)), `Ctrl+Shift+M` (NetBeans), `Ctrl+Shift+P` (Eclipse), `⌃ M` (Eclipse (macOS))、代码折叠 `Ctrl+NumPad +` (Windows), `⌘ NumPad +` (macOS), `⌘ NumPad +` (IntelliJ IDEA Classic (macOS)), `⌘ NumPad +` (macOS System Shortcuts), `Ctrl+NumPad +` (XWin), `Ctrl+NumPad +` (GNOME), `Ctrl+NumPad +` (KDE), `Ctrl+NumPad +` (Emacs), `Ctrl+Shift+]` (Sublime Text), `⌘ ⌥ ]` (Sublime Text (macOS)), `Ctrl+M, E` (Visual Studio), `⌃ M, E` (Visual Studio (macOS)), `Ctrl+NumPad +` (NetBeans), `Ctrl+NumPad +` (Eclipse), `⌘ NumPad +` (Eclipse (macOS)) / `Ctrl+NumPad -` (Windows), `⌘ NumPad -` (macOS), `⌘ NumPad -` (IntelliJ IDEA Classic (macOS)), `⌘ NumPad -` (macOS System Shortcuts), `Ctrl+NumPad -` (XWin), `Ctrl+NumPad -` (GNOME), `Ctrl+NumPad -` (KDE), `Ctrl+NumPad -` (Emacs), `Ctrl+Shift+[` (Sublime Text), `⌘ ⌥ [` (Sublime Text (macOS)), `Ctrl+M, S` (Visual Studio), `⌃ M, S` (Visual Studio (macOS)), `Ctrl+NumPad -` (NetBeans), `Ctrl+NumPad -` (Eclipse), `⌘ NumPad -` (Eclipse (macOS))、添加行注释 `Ctrl+/` (Windows), `⌘ /` (macOS), `⌘ /` (IntelliJ IDEA Classic (macOS)), `⌘ /` (macOS System Shortcuts), `Ctrl+/` (XWin), `Ctrl+/` (GNOME), `Ctrl+/` (KDE), `Alt+;` (Emacs), `Ctrl+/` (Sublime Text), `⌘ /` (Sublime Text (macOS)), `Ctrl+Alt+/` (Visual Studio), `⌘ ⌥ /` (Visual Studio (macOS)), `Ctrl+/` (NetBeans), `Ctrl+/` (Eclipse), `⌘ /` (Eclipse (macOS)) 和块注释 `Ctrl+Shift+/` (Windows), `⌘ ⌥ /` (macOS), `⌃ ⇧ /` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ /` (macOS System Shortcuts), `Ctrl+Shift+/` (XWin), `Ctrl+Shift+/` (GNOME), `Ctrl+Shift+/` (KDE), `Ctrl+Shift+/` (Emacs), `Ctrl+Shift+/` (Sublime Text), `⌘ ⌥ /` (Sublime Text (macOS)), `Ctrl+Shift+/` (Visual Studio), `⌘ ⌃ /` (Visual Studio (macOS)), `Ctrl+Shift+/` (NetBeans), `Ctrl+Shift+/` (Eclipse), `⌘ ⇧ /` (Eclipse (macOS))，以及 [插入版权文本](copyright.html#paste-copyright)到您的 Terraform 文件中。

## 运行 Terraform

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

Procedure: 使用边栏图标运行 Terraform

1. 在 Terraform 文件中，点击 ![运行](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.gutter.run.svg)。

2. 在打开的窗口中，选择   方案   以创建执行计划，或选择   应用   如果您已经有一个 Terraform 计划并希望应用它。

![从边距运行 Terraform](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_run.png)

如果尚未对该目录执行 Terraform 初始化步骤，则   运行   沟槽图标中会有一个警告标志。 在这种情况下，IntelliJ IDEA 建议您在运行  `terraform init` 命令之前，先运行  `terraform plan` 或  `terraform apply` 。

从沟槽图标运行 Terraform 会创建一个临时运行配置。 您可以通过点击 ![更多操作](https://resources.jetbrains.com/help/img/idea/2026.3/app-client.expui.general.moreVertical.svg) 并选择   保存配置   在运行小部件中将其保存为永久性的。

Procedure: 手动创建 Terraform 运行配置

1. 前往  `运行 | 编辑配置` 。 或者，按 `Alt+Shift+F10` (Windows), `⌃ ⌥ R` (macOS), `⌥ ⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ R` (macOS System Shortcuts), `Alt+Shift+F10` (XWin), `Alt+Shift+F10` (GNOME), `Alt+Shift+F10` (KDE), `Alt+Shift+F10` (Emacs), `Alt+Shift+F10` (Sublime Text), `⌃ ⌥ R` (Sublime Text (macOS)), `Ctrl+Alt+Shift+R` (Visual Studio), `⌘ ⌥ ⇧ R` (Visual Studio (macOS)), `Alt+Shift+F10` (NetBeans), `Alt+Shift+F10` (Eclipse), `⌃ ⌥ R` (Eclipse (macOS))，然后按 `0` (Windows), `0` (macOS), `0` (IntelliJ IDEA Classic (macOS)), `0` (macOS System Shortcuts), `0` (XWin), `0` (GNOME), `0` (KDE), `0` (Emacs), `0` (Sublime Text), `0` (Sublime Text (macOS)), `0` (Visual Studio), `0` (Visual Studio (macOS)), `0` (NetBeans), `0` (Eclipse), `0` (Eclipse (macOS))。

2. 请点击   添加新配置  按钮( ![添加运行/调试配置](https://resources.jetbrains.com/help/img/idea/2026.3/app.expui.general.add.svg))并开始输入   Terraform  。

![Terraform run configuration](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_run_configuration.png)

3. 请选择运行配置的类型：

* Terraform Init 以运行 `terraform init` 命令

* Terraform 验证 以运行 `terraform validate` 命令

* Terraform 方案 以运行 `terraform plan` 命令

* Terraform 应用 以运行 `terraform apply` 命令

* Terraform 销毁 以运行 `terraform destroy` 命令

* Terraform ，这使您能够提供任何其他 Terraform 命令

4. 在   命令  列表中选择一个 Terraform 命令。 要运行此列表中未包含的命令，请选择   自定义  并在   程序参数  字段中指定它。

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

## 格式化 Terraform 代码

使用 IntelliJ IDEA，您可以对 Terraform 文件应用代码样式。 IntelliJ IDEA 包括两个格式化工具：

* [Terraform formatter](#use-terraform-formatter)

* [IntelliJ IDEA 格式化器](#use-jetbrains-formatter)

Procedure: 使用 Terraform 格式化工具

Terraform 格式化工具 (  `terraform fmt` ) 基于 [Terraform 代码风格](https://developer.hashicorp.com/terraform/language/style#code-formatting)。 适用于  `.tf`  和  `.tfvars`  文件。

使用 Terraform 格式化工具需要 [安装 Terraform](#change-path-to-Terraform-executable)。

* 在主菜单中，前往  `代码｜Terraform 工具｜格式化文件` 。

* 或者按 `Ctrl+Alt+Shift+F` (Windows), `⌘ ⌥ ⇧ F` (macOS), `⌘ ⌥ ⇧ F` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ ⇧ F` (macOS System Shortcuts), `Ctrl+Alt+Shift+F` (XWin), `Ctrl+Alt+Shift+F` (GNOME), `Ctrl+Alt+Shift+F` (KDE), `Ctrl+Alt+Shift+F` (Emacs), `Ctrl+Alt+Shift+F` (Sublime Text), `⌘ ⌥ ⇧ F` (Sublime Text (macOS)), `Ctrl+Alt+Shift+F` (Visual Studio), `⌘ ⌥ ⇧ F` (Visual Studio (macOS)), `Ctrl+Alt+Shift+F` (NetBeans), `Ctrl+Alt+Shift+F` (Eclipse), `⌘ ⌥ ⇧ F` (Eclipse (macOS))。

> **Tip:**
> 如果还希望在调用  `编码 | 重新格式化文件`  时运行 Terraform 格式化程序，可以将 IntelliJ IDEA 配置为执行此操作：打开 IDE 设置（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))），转到  `编辑器 | 代码风格 | Terraform` ，打开   其他   选项卡，然后在   Terraform fmt   下选择   执行 '重新格式化文件' 操作时  。

尽管 Terraform formatter  `terraform fmt`  适用于整个文件， [IntelliJ IDEA formatter](#use-jetbrains-formatter) 也可以应用于选定的代码片段。

Procedure: 使用 IntelliJ IDEA 格式化程序

IntelliJ IDEA 格式化器基于由   Terraform 和 HCL   插件提供的 IntelliJ IDEA [代码样式](reformat-and-rearrange-code.html)。 您可以在 IDE 设置中自定义此代码样式，位于  `编辑器 | 代码风格 | Terraform` 。

除此之外  `.tf` 和  `.tfvars` ，它还适用于  `.hcl` 文件。

* 要重新格式化文件，请在编辑器中打开它，然后在主菜单中转到  `编码 | 重新格式化文件` 。 或者按 `Ctrl+Alt+Shift+L` (Windows), `⌘ ⌥ ⇧ L` (macOS), `⌘ ⌥ ⇧ L` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ ⇧ L` (macOS System Shortcuts), `Ctrl+Alt+Shift+L` (XWin), `Ctrl+Alt+Shift+L` (GNOME), `Ctrl+Alt+Shift+L` (KDE), `Ctrl+Alt+Shift+L` (Emacs), `Ctrl+Alt+Shift+L` (Sublime Text), `⌘ ⌥ ⇧ L` (Sublime Text (macOS)), `Ctrl+Alt+Shift+L` (Visual Studio), `⌘ ⌥ ⇧ L` (Visual Studio (macOS)), `Ctrl+Alt+Shift+L` (NetBeans), `Ctrl+Alt+Shift+L` (Eclipse), `⌘ ⌥ ⇧ L` (Eclipse (macOS))。

或者，在   查找操作…  （ `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))）对话框中，开始输入  `重新格式化文件` ，然后从列表中选择该操作。

* 要重新格式化部分代码，请选择一段代码，然后在主菜单中进入  `代码 | 格式化代码` 。 或者按 `Ctrl+Alt+L` (Windows), `⌘ ⌥ L` (macOS), `⌘ ⌥ L` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ L` (macOS System Shortcuts), `Ctrl+Alt+L` (XWin), `Ctrl+Alt+L` (GNOME), `Alt+Shift+L` (KDE), `Ctrl+Alt+L` (Emacs), `Ctrl+Alt+L` (Sublime Text), `⌘ ⌥ L` (Sublime Text (macOS)), `Ctrl+Alt+Enter` (Visual Studio), `⌘ ⌥ ⏎` (Visual Studio (macOS)), `Alt+Shift+F` (NetBeans), `Ctrl+Alt+L` (Eclipse), `⌘ ⇧ F` (Eclipse (macOS))。

或者，在   查找操作…  （ `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))）对话框中，开始输入  `重新格式化代码` ，然后从列表中选择该操作。

## 刷新 Terraform 提供程序元数据

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

如果项目使用其他提供程序版本（例如，在  `required_providers`  块中更改后），请通过运行  `terraform init`  初始化项目。

> **Tip: 如何检查初始化是否成功**
> * `.tf` 文件的装订区域中没有警告。
>
> * 运行 `terraform init` 后， `.terraform/` 目录和 `terraform.lock.hcl` 文件会添加到项目根目录。

如果 [自动构建本地元数据](#build-local-metadata-automatically) 选项在  `设置 | 高级设置`  中已启用，IntelliJ IDEA 会自动重新生成本地提供程序元数据。 如果该选项已禁用，可以手动刷新元数据。

Procedure: 手动刷新提供程序元数据

1. 初始化项目后，执行以下任一操作：

* 打开 Terraform 配置文件，并在编辑器中的任意位置右键点击。

* 打开 项目 工具窗口（ `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))），然后右键点击一个 Terraform 配置文件。

2. 在上下文菜单中，选择  `Terraform 工具 | 生成提供程序元数据` 。

![生成提供程序元数据操作](https://resources.jetbrains.com/help/img/idea/2026.3/terraform_generate_providers_metadata.png)

## 高级设置

自动下载 Terraform 文档
: 默认情况下，IntelliJ IDEA 会从 Terraform Registry 下载 Terraform 属性的快速文档。 如果您遇到网络或性能问题，可以禁用它，IntelliJ IDEA 将显示来自元数据的描述。 这些描述的可用性取决于资源开发者。

自动构建本地元数据
: 启用后，IntelliJ IDEA 会在运行  `terraform init`  后自动重新生成本地提供程序元数据。 这可确保编码辅助使用配置文件中定义的提供程序版本。

深度搜索变量
: 当您在 Terraform 中使用变量时，IntelliJ IDEA 会检查您项目中的所有 Terraform 文件以查找变量定义。 如果您希望 IntelliJ IDEA 只检查根目录中的文件（包含  `.terraform.lock.hcl` 的那个），请取消选中复选框。

## Terraform 代码样式设置

Terraform 特定的代码样式设置可在  `编辑器 | 代码样式 | Terraform/OpenTofu | 其他`  中找到。

格式设置时对齐属性
: 选择对齐属性及其值的方式：对齐等号、对齐值或不对齐任何内容。

行注释器符号
: 选择在按下 `Ctrl+/` (Windows), `⌘ /` (macOS), `⌘ /` (IntelliJ IDEA Classic (macOS)), `⌘ /` (macOS System Shortcuts), `Ctrl+/` (XWin), `Ctrl+/` (GNOME), `Ctrl+/` (KDE), `Alt+;` (Emacs), `Ctrl+/` (Sublime Text), `⌘ /` (Sublime Text (macOS)), `Ctrl+Alt+/` (Visual Studio), `⌘ ⌥ /` (Visual Studio (macOS)), `Ctrl+/` (NetBeans), `Ctrl+/` (Eclipse), `⌘ /` (Eclipse (macOS)) 时用于单行注释的符号。

补全时自动导入提供程序
: 在完成资源名称时将提供程序要求插入到当前文件中。 如果缺少  `required_providers`  块，请添加它。

调用 'terraform/tofu fmt' 进行格式设置
: 调用  `编码 | 重新格式化文件`  时运行 Terraform（或 OpenTofu）格式化程序。

