TL;DR
importブロックは v1.5.0 で追加され、既存のリソースから HCL のコードを生成してステートに取り込める。- 既存リソースの取り込みだけでなく、新しく
.tfファイルを書くときの手本としても使える。
内容
import ブロック以前の取り込み方
import ブロックが登場する前は、まず terraform import で既存のリソースをステートに取り込んだ。その後、terraform plan を繰り返しながら、差分がなくなるまで設定を書き足していた。
import ブロックを使った取り込み方
import ブロックでリソースの識別子と取り込み先のリソースのパスを指定して terraform plan を実行すると、既存のリソースから HCL のコードを生成できる。手順は次のとおり。
importブロックを書くterraform plan -generate-config-out=<出力先ファイル名>.tfを実行する- 生成されたコードを確認する
terraform applyで既存のリソースをステートに取り込む
import {
to = aws_scheduler_schedule.schedule
id = "default/sample-scale-up"
}terraform plan -generate-config-out=generated.tfもう 1 つの使い道
import ブロックは、設定の書き方が分からないときにも役に立つ。Terraform Registry にあるプロバイダのドキュメントやサンプルだけでなく、実際に作ったリソースから生成したコードを見ながら定義を進められる。