このページの本文へ

FIXER Tech Blog - Development

FIXER cloud.config Tech Blog

Terraform 1.5から追加されたimportブロックがすごい!!

2023年07月27日 10時00分更新

文● 村田 優真/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Terraform 1.5から追加されたimportブロックがすごい!!」を再編集したものです。

はじめに

 こんにちは!23年入社の村田です。

 今回はTerraformの新しい機能に触れたので書いてみました。

Terraform 1.5で追加されたimportブロックについて

 Terraformのバージョン1.5が6月12日に一般公開されました!!

 インストールはこちらから

 Terraformにimportブロックというものが定義できるようになりました。

 importブロックを定義すると、Terraformで作成していない既存のリソースをTerraformで管理できるようになります。

 今回はAzureでTerraformのimportブロックを使用する方法を、注意点を踏まえながら紹介したいと思います。

importブロックの使い方

 インポートしたいリソースがストレージアカウントの場合

注意点

 ここでいうTerraformのリソース名とは

 の"st"の部分です。

 というようにimportブロックを定義し、

 上記コマンドを実行すると、指定したファイルにインポートしたいリソースのTerraformコードが生成されます。

 下記のようにファイルが出力されます

注意点

・生成されたファイルには共存しない引数が存在する場合がある
・生成されたファイルのままplanが通らない場合があるのでエラーのでた引数を削除したり、変更しないといけない

・生成するファイルが存在する場合上書きができないので、存在しないファイル名を指定しないといけない

・ファイル名はdir/generated.tfといったように指定できるが、存在しないフォルダの場合、フォルダが生成されるわけではない

・インポートしたファイルで名前以外の引数の値を変更しても、apply時に変更される状態でインポートされる(リソースも変更される)

・生成されたファイルをmain.tfなどにコピペして書き換えても正常に動作する

 そして生成されたファイルを修正し、

 もう一度、今度はオプションなしでplanを実行します。

 エラーがでなければ、

 をすることでインポート完了です。

 インポート後はimportブロックを削除しても問題ないです。

 一度インポートしてしまえば、生成されたTerraformのコードの引数の値を変更することでリソースの操作も可能です。

 注意点

・名前を変更すると再作成になります

終わりに

 今回はTerraformの1.5から追加されたimportブロックに関して書かせていただきました。

 実は他にもCheckブロックというのも追加されて、触れる機会があれば記事にしたいなとか思ってます。

 ここまでお読みいただきありがとうございました。

村田 優真(むらた ゆうま)/FIXER

大阪出身で情報系の専門学校を卒業し、2023年に入社しました。

カテゴリートップへ

この連載の記事