# 教程：使用 Terraform 部署 AWS S3 存储桶

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

IntelliJ IDEA 提供使用 [Terraform](terraform.html) 进行基础架构编码管理的支持，可在无需离开 IDE 的情况下定义、审查和更新云资源。 诸如为功能创建存储、设置环境、或在多台机器和 CI 流水线中保持配置一致等任务，都可以直接通过编码处理，而不需要使用云控制台。

本教程讲解如何在 IntelliJ IDEA 中使用 Terraform 创建 [AWS S3 存储桶](https://aws.amazon.com/s3/)。 你将使用 IDE 的功能来编写与审查配置、应用以创建资源，然后销毁该资源。

## 开始之前

在开始教程之前，请确保满足以下先决条件：

* AWS 帐号 . 创建并激活 AWS 账号。 本教程使用 AWS 免费套餐即可，但账户设置时仍需提供有效的付款方法。 如需更多信息，请参阅 [官方文档](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-creating.html)。

* 具有程序化访问权限的 IAM 用户 . 出于安全考虑，本教程请勿使用 root 账号。 请在 [AWS 管理控制台](https://aws.amazon.com/console/) 中创建具有编程访问权限的新用户，并附加 `AmazonS3FullAccess` 权限策略。 > **Note:** > 创建用户后，请务必保存 访问密钥 ID 和 秘密访问密钥 。 你需要这些值来在本地配置 AWS 凭据。

* AWS CLI . 在你的机器上 [安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。 你将使用它在本地配置 AWS 凭据并验证账户访问。

## 设置环境

创建 IAM 用户并安装 AWS CLI 后，请在本地配置你的凭据：

Procedure: 配置 AWS 凭据

1. 在系统终端运行以下命令以配置命名配置文件：

```BASH
aws configure --profile terraform-user
```

通过使用命名配置文件，可以在同一台机器上管理多个 AWS 账号和配置。 此处指定的配置文件名称将在后续 Terraform 配置中使用。

2. 收到提示时，输入以下详细信息：

* AWS 访问密钥 ID：你创建的 IAM 用户。

* AWS 秘密访问密钥：你创建的 IAM 用户。

* 默认区域名称：你的资源将创建在哪个区域。 例如， `us-east-1` 或 `eu-central-1` 。 有关支持区域的更多信息，请参阅 [官方文档](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)。

* 默认输出格式：按 `回车键` 使用默认格式（JSON）。

3. 通过运行以下命令验证凭据是否配置正确：

```BASH
aws sts get-caller-identity --profile terraform-user
```

如果配置成功，该命令会返回你的 IAM 用户详细信息。

> **Tip:**
> AWS CLI 会将你的凭据本地存储在  `~/.aws/credentials`  文件中。 Terraform 会使用指定的配置文件与 AWS 交互。

现在已配置并验证了 AWS 凭据，请启动 IntelliJ IDEA 并设置开发环境。

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 的路径。

## 创建一个新的项目

现在让我们创建一个新空项目用于存储 Terraform 配置。

这是一个基本项目，可让您在没有预定义 SDK 的情况下使用不同的语言、Java 或 Kotlin 类，这对于临时开发、创建模型和测试可能非常有用。

Procedure:

1. 启动 IntelliJ IDEA。

要创建新项目，请执行以下任一操作：

* 在 IntelliJ IDEA 主屏幕上点击 `新建 | 项目` 。

* 从主菜单中选择 `文件 | 新建 | 项目` 。

* 如果已经打开了一个项目，请点击主窗口页眉中的项目微件，然后选择 新建项目 。 ![使用 Project 小部件创建一个新项目](https://resources.jetbrains.com/help/img/idea/2026.3/ij_new_project_from_widget.png)

2. 在左侧列表中，选择   空项目  。

3. 在   名称  字段中，输入项目名称。

4. 在   位置  字段中，输入或选择项目位置的路径。

5. 选择   创建 Git 仓库   选项，将新项目置于版本控制之下。

您也可以随时在之后进行此操作。

> **Note:**
> `.gitignore`  文件无论如何都会生成。

6. 点击   创建  。

![创建新空项目](https://resources.jetbrains.com/help/img/idea/2026.3/new-empty-project-npw.png)

## 创建 Terraform 配置

项目就绪后，可以开始定义基础架构。 在 Terraform 中，基础架构通过 HashiCorp 配置语言（HCL）编写的配置文件描述。 让我们创建一个简单的 Terraform 配置用于定义 AWS S3 存储桶。

Procedure: 创建新的 Terraform 文件

1. 在   项目   工具窗口（ `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. 在   新建文件   对话框中，将新文件名称设置为  `main` ，并从列表中选择   配置   文件模板。 按  `回车键` 。

![新建 Terraform 配置](https://resources.jetbrains.com/help/img/idea/2026.3/new-terraform-config.png)

IntelliJ IDEA 会在项目根目录创建  `main.tf`  文件，并在编辑器中打开。

IntelliJ IDEA 利用智能辅助功能帮助你构建有效的 Terraform 配置。 先通过定义提供商开始构建配置。

Procedure: 添加 AWS 提供商

1. 在  `main.tf`  文件中，开始输入  `provider`  块：

```HCL
provider ""

```

2. 调用代码补全（ `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS))），并从 [补全建议](terraform.html#completion)列表中选择  `aws` ：

```HCL
provider "aws" {
}

```

此操作时，IntelliJ IDEA 还会在文件顶部插入  `terraform`  块。 该块定义了 [必需的提供商](https://developer.hashicorp.com/terraform/language/block/stack/tfcomponent/required_providers)及其配置使用的版本。

完成以上步进后，配置应如下所示：

```HCL
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "6.36.0"
    }
  }
}
provider "aws" {
}

```

3. 在  `provider`  块内，使用代码补全添加  `区域`  和  `profile`  实参。

4. 设置实参值，例如：

```HCL
provider "aws" {
  region  = "eu-west-1"
  profile = "terraform-user"
}

```

`区域`  决定 Terraform 创建资源的区域，  `profile`  用于指定要使用的 AWS 凭据。

> **Tip:**
> IntelliJ IDEA 为可用实参提供 [快速文档](terraform.html#quick-documentation)，帮助你了解如何配置提供者。

AWS 提供商配置好后，下面定义一个 S3 存储桶资源。

Procedure: 添加 S3 存储桶资源

1. 在  `main.tf`  文件中，开始输入  `resource` 。 然后使用代码补全（ `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS))）选择  `aws_s3_bucket`  资源类型。 将资源名称设置为  `tutorial_bucket` 。 你的配置应如下所示：

```HCL
resource "aws_s3_bucket" "tutorial_bucket" {}

```

2. 在  `resource`  块内，开始输入  `bucket` ，并使用代码补全添加实参。 请指定唯一的存储桶名称，例如：

```HCL
resource "aws_s3_bucket" "tutorial_bucket" {
  bucket = "ij-idea-terraform-tutorial-bucket-123"
}

```

> **Warning:**
> `bucket`  实参的值必须在所有 AWS 账户中全局唯一，并且只能使用小写字母、数字和连字符。
>
>
>
> 如果名称已被占用，Terraform 会返回错误，因此你可能需要选择其他名称或加上唯一后缀。 你的存储桶名称与教程中的示例会有所不同。

配置完成后，可以运行 Terraform 命令创建 S3 存储桶。

## 运行 Terraform

你可以直接通过 IntelliJ IDEA 的编辑器装订区域图标或运行/调试配置运行 Terraform 命令。

本节中，将初始化项目，预览计划变更，应用配置以创建 S3 存储桶，并最终移除以避免不必要的费用。

Procedure: 初始化项目

`terraform init`  命令会初始化 Terraform 项目，下载所需提供商，并准备工作目录。 同时会生成  `.terraform.lock.hcl`  文件，记录项目中使用的具体提供商版本，确保跨运行及环境一致性。

1. 在  `main.tf`  文件中，点击装订区域的 ![运行](https://resources.jetbrains.com/help/img/idea/2026.3/调试配置](run-debug-configuration.html) 运行 Terraform 命令，还可以通过添加实参或设置环境变量定制执行过程。 在本教程中，将添加  `-out`  实参，把执行方案保存到文件。 这样可以先预览方案，之后再应用同样的变更。

Procedure: 预览执行方案

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 方案   配置类型。

4. 将运行/调试配置的名称设置为，例如  `Plan S3 Bucket` 。

5. 在   程序参数   字段中，指定  `-out=tfplan`  实参。

6. 点击   运行  。

执行方案详情会显示在   运行   工具窗口中。 同时，由于指定了  `-out=tfplan`  实参，Terraform 会将方案保存到项目根目录的  `tfplan`  文件。 查看方案后，可以用该文件应用配置，在 AWS 账户中创建 S3 存储桶资源。

Procedure: 应用配置

1. 与 [前面过程](#preview-execution-plan)类似，创建新的运行/调试配置。 请从列表中选择   Terraform 应用   配置类型。

2. 将运行/调试配置的名称设置为，例如  `Apply S3 Bucket` 。

3. 在   程序参数   字段中，指定  `tfplan`  实参。

Terraform 创建资源时会使用存储在  `tfplan`  文件中的执行方案。

4. 点击   运行  。

5. 应用配置后，在 AWS 管理控制台验证 S3 存储桶是否成功创建。

## 清理

> **Warning:**
> 完成教程后，请销毁 S3 存储桶以避免不必要收费，同时保持 AWS 环境整洁。 即使使用免费套餐资源，未使用的基础架构也可能随着时间推移产生意外费用。

Procedure: 销毁 S3 存储桶

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

2. 请从下拉列表中选择   Destroy   命令。

3. 流程结束后，在 AWS 管理控制台确认 S3 存储桶已移除。

## 总结

通过本教程，您已经学会了如何：

* 配置 Terraform 可执行文件路径并设置 AWS 环境

* 在 IntelliJ IDEA 内创建 Terraform 配置

* 配置 AWS 提供商并定义 S3 存储桶资源

* 通过装订区域图标和运行/调试配置运行 Terraform 命令，以初始化、方案、应用和销毁基础架构

