【Terraform】importブロックを試してみた

IT

実施手順

  • ①作業ディレクトリの作成
  • ②構成ファイル(main.tf)の作成
  • ③初期化(terraform init)
  • ④tfファイルの生成(terraform plan)
  • ⑤apply

①作業ディレクトリの作成

  • Terraform実行時に複数のファイルが作成される
  • Terraform実行ディレクトリとしてディレクトリを用意する
  • 名前はなんでも良い
    • 今回はterraform-s3-importblockとした

②構成ファイル(main.tf)の作成

  • 今回の構成ファイルは下記のように記述
import {
    to = aws_s3_bucket.tf-importblock
    id = "【バケット名】"
}
  • to
    • aws_s3_bucket → リソースの種類。今回はS3バケット
    • tf-importblock → tfファイル内の定義名。任意の名前でOK
    • この定義名がこの後生成するリソース定義名になる
  • id → 取り込みたいリソース名。今回はS3バケット名を設定する
    • 実際に取得したいリソース名と一致させる必要がある

③初期化(terraform init)

  • Terraform has been successfully initialized!と表示されたらOK

④tfファイルの生成(terraform plan)

  • planコマンドを実行する。実行時に以下オプションで実行。
terraform plan -generate-config-out=generated.tf
  • 実行後にgenerated.tfが生成されている(以下内容)
# __generated__ by Terraform
# Please review these resources and move them into your main configuration files.

# __generated__ by Terraform from "【バケット名】"
resource "aws_s3_bucket" "tf-importblock" {
  bucket              = "【バケット名】"
  bucket_prefix       = null
  force_destroy       = null
  object_lock_enabled = false
  tags                = {}
  tags_all            = {}
}

⑤apply

  • applyコマンドを実行
terraform apply
  • No changes. Apply complete! Resources: 0 added, 0 changed, 0 destroyed.と出力されたらOK
    • 差分なしでapplyされている

感想

  • 手作業での取り込みが発生しない分便利だなと感じた
  • ただ、トントン拍子に処理を進められてしまうので、実際に使用する時は1ステップずつ、慎重に確認しながら進めた方が良さそう?

コメント

タイトルとURLをコピーしました