教程:使用 Terraform 部署 AWS S3 存储桶。
PyCharm 提供对基础架构即代码管理的支持,通过 Terraform ,你可以在 IDE 内定义、审查和更新云资源。 诸如为某个功能创建存储、设置环境,或使配置在多台机器和 CI 流水线间保持一致等任务,都可以直接通过代码完成,无需借助云控制台。
本教程介绍如何在 PyCharm 中使用 Terraform 创建 AWS S3 存储桶。 你将使用 IDE 的功能来编写和审查配置,应用配置以创建资源,并最终销毁该资源。
在开始之前
在开始教程之前,请确保满足以下先决条件:
设置环境
创建 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。 有关支持的区域的更多详细信息,请参阅 官方文档。默认输出格式:按 Enter 以使用默认格式(JSON)。
通过运行以下命令验证凭据配置是否正确:
aws sts get-caller-identity --profile terraform-user如果配置成功,命令会返回关于你的 IAM 用户的详细信息。
现在你已完成 AWS 凭据的配置和验证,启动 PyCharm 并配置开发环境。
安装 Terraform 和 HCL 插件
此功能依赖于 Terraform and HCL 插件,您需要安装并将其启用。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
打开 插件市场 选项卡,找到 Terraform and HCL 插件,然后点击 安装 (如出现提示,请重启 IDE)。
指定 Terraform 可执行文件路径
要在 IDE 中使用运行配置运行 Terraform 命令,您需要在计算机上安装 Terraform。
按下 Ctrl+Alt+S 以打开设置,然后选择 。
在大多数情况下,PyCharm 会自动检测 Terraform 可执行文件的路径。 如果 IDE 未检测到版本和可执行文件的路径,请点击 检测与测试。
如果您的计算机上未安装 Terraform,请点击 安装。

如有必要,您可以在 Terraform 可执行文件路径 字段中手动指定 Terraform 的路径。
创建新项目
我们创建一个新的空项目来存储 Terraform 配置。
这是一个基本项目,可让您在没有预定义 SDK 的情况下使用不同的语言、Java 或 Kotlin 类,这对于临时开发、创建模型和测试可能非常有用。
启动 PyCharm。
要创建新项目,请执行以下任一操作:
在欢迎屏幕上,点击 新建项目。
在主菜单中选择 。
在主窗口标题栏中单击项目小部件,并选择 新建项目。
在左侧列表中,选择 空项目。
在 名称 字段中,输入项目名称。
在 位置 字段中,输入或选择项目位置的路径。
选择 创建 Git 仓库 选项以将新项目置于版本控制之下。
你也可以随时在之后进行此操作。
单击 创建。
创建 Terraform 配置
当你的项目准备好后,你可以开始定义基础架构。 在 Terraform 中,基础架构通过使用 HashiCorp 配置语言(HCL)编写的配置文件进行描述。 我们来创建一个简单的 Terraform 配置,定义一个 AWS S3 存储桶。
创建新的 Terraform 文件
在 项目 工具窗口(Alt+1 )中,右键点击项目根目录并选择 。
在 新建文件 对话框中,将新文件命名为
main,并从列表中选择 配置 文件模板。 按 Enter 。
PyCharm 会在项目根目录创建 main.tf 文件,并在编辑器中打开该文件。
PyCharm 通过智能助手功能帮助你构建有效的 Terraform 配置。 通过定义提供商开始构建配置。
添加 AWS 提供商
在 main.tf 文件中,开始输入
provider块:provider ""调用代码补全(Ctrl+Space ),然后从 补全建议列表中选择
aws:provider "aws" { }执行此操作时,PyCharm 还会在文件顶部插入一个
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
你可以通过编辑器中的装订区域图标或运行/调试配置,直接在 PyCharm 运行 Terraform 命令。
本节将初始化项目、预览预期变更、应用配置以创建 S3 存储桶,并在最后移除该存储桶以避免不必要的费用。
初始化项目
terraform init 命令用于初始化 Terraform 项目、下载所需的提供商并准备工作目录。 此命令还会创建 .terraform.lock.hcl 文件,记录项目实际用到的提供商版本,确保跨环境、跨运行表现一致。
在 main.tf 文件中,点击装订区域中的
运行 Terraform。
从下拉菜单中选择 Init 命令。
项目初始化完成后,在应用更改前,先预览 Terraform 生成的执行计划。
在 PyCharm 中,你可以通过 运行/调试配置运行 Terraform 命令,可按需添加参数或设置环境变量定制运行过程。 在本教程中,将添加 -out 参数,该参数会将执行计划保存到文件。 这样你就可以后续审查计划并再次应用相同的更改。
预览执行计划
转到 。 或者,点击 运行 小部件中的
,并在下拉菜单中选择 编辑配置。

点击
按钮(添加新配置 ),然后开始键入 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 环境
在 PyCharm 中创建 Terraform 配置
配置 AWS 提供商并定义 S3 存储桶资源
通过装订区域图标和运行/调试配置,运行 Terraform 命令以初始化、规划、应用和销毁基础架构