教程:使用 Terraform 部署 AWS S3 存储桶
WebStorm 支持通过 Terraform 以代码管理基础架构,让你可以在不离开 IDE 的情况下定义、查看和更新云资源。 诸如为功能创建存储、设置环境或让配置在多台机器和 CI 流水线中保持一致等任务,都可以直接通过代码完成,无需进入云端控制台。
本教程介绍如何在 WebStorm 中使用 Terraform 创建 AWS S3 存储桶。 将使用 IDE 的功能来编写和审核配置、应用配置以创建资源,最后销毁该资源。
开始之前
在开始本教程之前,请确保满足以下先决条件:
AWS 账户。 创建并激活 AWS 账户。 本教程使用 AWS 免费套餐即可,但注册账户时需要有效的支付方式。 如需更多详细信息,请参阅 官方文档。
具备编程访问权限的 IAM 用户。 出于安全考虑,本教程请勿使用 root 账户。 请在 AWS 管理控制台 中创建一个具有编程访问权限的新用户,并附加
AmazonS3FullAccess权限策略。AWS CLI。 在你的计算机上 安装 AWS CLI。 可用其本地配置 AWS 凭据并验证账户访问。
设置环境
创建 IAM 用户并安装 AWS CLI 后,在本地配置你的凭据:
配置 AWS 凭据
在系统终端中运行以下命令来配置命名配置文件:
aws configure --profile terraform-user使用命名配置文件可以在同一台计算机上管理多个 AWS 账户及配置。 此处指定的配置文件名称将在后续 Terraform 配置中使用。
根据提示输入以下详细信息:
AWS Access key ID:来自你创建的 IAM 用户。
AWS Secret Access Key:来自你创建的 IAM 用户。
默认区域名称:你资源将要创建的区域。 例如,
us-east-1或eu-central-1。 如需了解支持的区域详情,请参阅 官方文档。默认输出格式:按 输入 使用默认格式(JSON)。
运行如下命令以验证凭据配置是否正确:
aws sts get-caller-identity --profile terraform-user如果配置成功,命令会返回关于你 IAM 用户的详细信息。
完成 AWS 凭据配置与验证后,请启动 WebStorm 并设置开发环境。
安装 Terraform 和 HCL 插件
此功能依赖于 Terraform and HCL插件,您需要安装并启用。
按下 Ctrl+Alt+S 打开设置,然后选择 。
打开 市场 选项卡,找到 Terraform and HCL插件,然后点击 安装 (如果系统提示,重启 IDE)。
指定 Terraform 可执行文件的路径
要在 IDE 中使用运行配置运行 Terraform 命令,您需要在计算机上安装 Terraform。
按下 Ctrl+Alt+S 打开设置,然后选择 。
在大多数情况下,WebStorm 会自动检测到 Terraform 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测和测试。
如果您的计算机上未安装 Terraform,请点击 安装。

如有必要,您可以在 Terraform 可执行文件路径 字段中手动指定 Terraform 的路径。
创建新项目
现在,让我们创建一个新的空项目,以存储 Terraform 配置。
这是一个基础项目,可让你在没有预定义 SDK 的情况下使用不同语言、Java 或 Kotlin 类,这对于临时开发、创建原型和测试很有帮助。
启动 WebStorm。
要创建新项目,请执行以下任一操作:
在欢迎屏幕上,点击 新建项目。
请选择 从主菜单。
在主窗口标题栏中单击项目小部件,并选择 新建项目。
在左侧列表中,选择 空项目。
在 名称 字段中,输入项目名称。
在 位置 字段中,输入或选择项目位置的路径。
选择 创建 Git 仓库 选项以将新项目置于版本控制之下。
您也可以随时在之后进行此操作。
点击 创建。
创建 Terraform 配置
项目准备好后,即可开始定义基础架构。 在 Terraform 中,基础架构通过使用 HashiCorp 配置语言(HCL)编写的配置文件描述。 让我们创建一个简单的 Terraform 配置来定义 AWS S3 存储桶。
新建 Terraform 文件
在 项目 工具窗口(Alt+1 )中,右键点击项目根目录并选择 。
在 新文件 对话框中,将新文件命名为
main,并从列表中选择 配置 文件模板。 按 输入 。
WebStorm 会在项目根目录创建 main.tf 文件,并在编辑器中打开它。
WebStorm 利用智能辅助功能帮助你构建有效的 Terraform 配置。 从定义提供程序开始构建配置。
添加 AWS 提供程序
在 main.tf 文件中,开始输入
provider块:provider ""调用代码补全(Ctrl+Space ),并从 补全建议列表中选择
aws:provider "aws" { }进行此操作时,WebStorm 还会在文件顶部插入
terraform块。 该块定义了 所需提供程序 及其在该配置中的版本。完成这些步骤后,你的配置应该与下方类似:
terraform { required_providers { aws = { source = "hashicorp/aws" version = "6.36.0" } } } provider "aws" { }在
provider块中,使用代码补全添加region和profile参数。设置参数值,例如:
provider "aws" { region = "eu-west-1" profile = "terraform-user" }region决定 Terraform 资源的创建区域,profile指定所使用的 AWS 凭据。
现在 AWS 提供程序已配置好,我们来定义一个 S3 存储桶资源。
添加 S3 存储桶资源
在 main.tf 文件中,输入
resource。 然后使用代码补全(Ctrl+Space )选择aws_s3_bucket资源类型。 将该资源命名为tutorial_bucket。 你的配置应如下所示:resource "aws_s3_bucket" "tutorial_bucket" {}在
resource块中,输入bucket并通过代码补全添加参数。 指定唯一的存储桶名称,例如:resource "aws_s3_bucket" "tutorial_bucket" { bucket = "ij-idea-terraform-tutorial-bucket-123" }
现在你的配置已准备好,可以运行 Terraform 命令以创建 S3 存储桶。
运行 Terraform
可以在 WebStorm 内通过编辑器装订区域图标或运行/调试配置直接运行 Terraform 命令。
本节你将初始化项目、预览计划中的更改、应用配置以创建 S3 存储桶,最后移除它以避免不必要的费用。
初始化项目
terraform init 命令会初始化 Terraform 项目,下载所需提供程序,并准备工作目录。 还会创建 .terraform.lock.hcl 文件,用于记录项目所用的确切提供程序版本,并确保各次运行及环境间行为一致。
在 main.tf 文件中,点击装订区域的
运行 Terraform。
请从列表中选择 初始化init 选项。
初始化项目后,预览 Terraform 应用更改前将生成的执行计划。
在 WebStorm 中,可以通过 运行/调试配置 来运行 Terraform 命令,可以通过添加参数或设置环境变量自定义执行方式。 本教程中,将添加 -out 参数,其会将执行计划保存为文件。 这样可以先审查计划,之后再应用相同更改。
预览执行计划
转到 。 或者,按 Alt+Shift+F10 ,然后 0。
请点击
按钮(添加新配置 )并开始输入 Terraform。

请从列表中选择 Terraform Plan 选项。
为运行/调试配置命名,例如
Plan S3 Bucket。在 程序实参 字段中,指定
-out=tfplan参数。点击 运行。
执行计划明细将展示在 运行 工具窗口中。 同时,由于我们指定了 -out=tfplan 参数,Terraform 会将方案保存到项目根目录的 tfplan 文件中。 审查计划后,可以使用该文件应用配置,在你的 AWS 账号中创建 S3 存储桶资源。
应用配置
与 前面的步骤类似,新建一个运行/调试配置。 请从列表中选择 Terraform Apply 选项。
为运行/调试配置命名,例如
Apply S3 Bucket。在 程序实参 字段中,指定
tfplan参数。创建资源时,Terraform 会使用 tfplan 文件中保存的执行方案。
点击 运行。
应用配置后,在 AWS 管理控制台中验证 S3 存储桶已成功创建。
清理
销毁 S3 存储桶
在 main.tf 文件中,点击装订区域的
运行 Terraform。
请从列表中选择 销毁 选项。
过程结束后,请在 AWS 管理控制台中确认 S3 存储桶已删除。
汇总
在本教程中,您已学会如何:
配置 Terraform 可执行文件路径并设置 AWS 环境
在 WebStorm 创建 Terraform 配置
配置 AWS 提供程序并定义 S3 存储桶资源
使用装订区域图标和运行/调试配置运行 Terraform 命令,以初始化、规划、应用和销毁基础架构