教程:使用 Terraform 部署 AWS S3 存储桶
PhpStorm 支持通过 Terraform 以代码方式管理基础架构,允许在不离开 IDE 的情况下定义、审核和更新云资源。 像为某功能创建存储、设置环境或在多台机器和 CI 流水线保持配置一致这样的任务,都可以直接用代码处理,无需通过云控制台。
本教程介绍如何在 PhpStorm 中使用 Terraform 创建 AWS S3 存储桶。 将利用 IDE 功能编写和审核配置,应用配置以创建资源,最后销毁该资源。
开始之前
在开始本教程之前,请确保满足以下先决条件:
AWS 账户. 创建并激活 AWS 账户。 本教程使用 AWS 免费套餐已足够,但在创建账户时仍需提供有效的支付方法。 详情请参阅 官方文档。
具备编程访问权限的 IAM 用户. 出于安全考虑,本教程请勿使用 root 账户。 在 AWS 管理控制台 中创建具有编程访问的新用户,并附加
AmazonS3FullAccess权限策略。AWS 命令行界面(CLI). 在您的计算机上 安装 AWS CLI。 通过 AWS CLI 本地配置凭据并验证您的账户访问权限。
设置环境
创建 IAM 用户并安装 AWS CLI 后,在本地配置您的凭据:
配置 AWS 凭据
在系统终端中运行以下命令以配置名称为指定名称的配置文件:
aws configure --profile terraform-user通过使用名称为指定名称的配置文件,可以在同一台机器上管理多个 AWS 账户和配置。 此处指定的配置文件名称将在后续的 Terraform 配置中使用。
提示时请输入以下详细信息:
AWS 访问密钥 ID:即您创建的 IAM 用户的密钥。
AWS 秘密访问密钥:即您创建的 IAM 用户的密钥。
默认区域名称:即资源将被创建的区域。 例如,
us-east-1或eu-central-1。 更多受支持区域信息,请参阅 官方文档。默认输出格式:按 Enter 使用默认格式(JSON)。
运行以下命令以验证凭据是否配置正确:
aws sts get-caller-identity --profile terraform-user如果配置成功,命令将返回有关您 IAM 用户的详细信息。
完成 AWS 凭据配置和验证后,启动 PhpStorm 并设置您的开发环境。
安装 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 配置。
这是一个通用的 PHP 项目,不依赖特定框架。 您可以随时添加所需的框架和技术。
在 新项目 对话框中,选择 PHP 空项目。
在 Location 字段中为新项目命名,并在必要时更改其位置。
如果您希望向空项目添加
composer.json文件模板,请选中 添加"composer.json" 复选框。
当您点击 创建 时,PhpStorm 会生成一个项目框架,并根据您在打开的信息对话框中的选择,将其打开在当前窗口或新窗口中:

创建 Terraform 配置
准备好项目后,即可开始定义基础架构。 在 Terraform 中,基础架构通过 HashiCorp 配置语言 (HCL) 编写的配置文件进行描述。 让我们创建一个简单的 Terraform 配置,定义一个 AWS S3 存储桶。
新建 Terraform 文件
在 Project 工具窗口(Alt+1 )中,右键点击项目根目录并选择 。
在 新建文件 对话框中,将新文件名称指定为
主界面,并从列表中选择 配置 文件模板。 按 Enter 。
PhpStorm 会在项目根目录创建 main.tf 文件并在编辑器中打开。
PhpStorm 通过智能辅助功能帮助您构建有效的 Terraform 配置。 从定义提供商开始构建配置。
添加 AWS 提供商
在 main.tf 文件中,开始输入
provider块:provider ""调用代码补全(Ctrl+Space ),然后从 补全建议列表中选择
aws:provider "aws" { }在此操作过程中,PhpStorm 也会在文件顶部插入
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
可直接在 PhpStorm 使用编辑器装订区域图标或运行 / 调试配置运行 Terraform 命令。
本节将初始化项目、预览计划更改、应用配置以创建 S3 存储桶,并最终移除以避免不必要的费用。
初始化项目
terraform init 命令会初始化 Terraform 项目,下载所需提供商并准备工作目录。 同时会创建 .terraform.lock.hcl 文件,记录项目中实际使用的提供商版本,并确保多次运行和不同环境中的行为一致。
在 main.tf 文件中,点击装订区域中的
运行 Terraform。
从下拉菜单中选择 初始化 命令。
初始化项目后,在应用更改前请先预览 Terraform 将生成的执行方案。
在 PhpStorm 中,可通过 运行/调试配置运行 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。
从下拉菜单中选择 Destroy 命令。
流程结束后,请在 AWS 管理控制台确认 S3 存储桶已被移除。
摘要
在本教程中,您已经学会了如何:
配置 Terraform 可执行文件路径并设置 AWS 环境
在 PhpStorm 中创建 Terraform 配置
配置 AWS 提供商并定义 S3 存储桶资源
通过装订区域图标和运行/调试配置运行 Terraform 命令,以初始化、方案、应用和销毁基础架构