🐰
Terraform importブロックを使ったmoduleのインポート
概要
Terraform v1.5から実装されたimportブロックを使い、作成済みのAWSリソースをmoduleにインポートする
前提と構成
-
Devなどの環境ごとに
environment
以下にTerraformファイルを作成 -
作成するAWSリソースは
module
以下に格納 -
dev環境に事前にマネジメントコンソールからAWS Budgetsを設定
-
dev/main.tf
へAWS Budgetsをインポートしたい -
ファイル構成
├── environment
│ ├── dev
│ │ └── main.tf
│ ├── prd
│ │ └── main.tf
│ └── stg
│ └── main.tf
└── module
├── aws_budgets
│ ├── main.tf
---snip---
詳細と解説
-
environment/dev/main.tf
-----snip----- import { id = "XXXXXXXXXXXXXX:Dev Monthly Cost Budget" to = module.aws_budgets.aws_budgets_budget.total } module "aws_budgets" { -----snip----- }
-
CLIでの実行時の様に、AWSのリソース、対するTerraformでのリソースを指定する
-
module.[module name].aws_resource.[name]
の様に指定 -
Apply後はimportブロックは削除可能
下記は参考
-
module/aws_budgets/main.tf
resource "aws_budgets_budget" "total" { name = var.name -----snip----- }
まとめ
-
terraform impot
と同様にmoduleでもimportブロックを利用してAWSリソースのインポートが可能でした
Discussion