こんにちは、 Classi でソフトウェアエンジニアやってます koki です。
Findy さま主催の「Terraform活用大全 - IaCの今。 Lunch LT」に「Terraform に test コマンドがやってきた」というタイトルで登壇してきました。
イベントのアーカイブ動画は Findy にログインするとイベントページから閲覧できます。
登壇のきっかけ
SNS 経由で Findy さまからお声がけいただきました。
よく Zenn で Terraform に関する記事を書いていたのを見ていただけたようです。
ちょうど最近リリースされたTerraform の test
コマンドをキャッチアップしたいと思っていたところだったので、自分の学びのためにも登壇を快諾しました。
これが俗に言う登壇駆動学習ですね。
発表内容
Terraform v1.6 で新しく追加された test
コマンドについてご紹介しました。
このアップデートによって、例えば以下のように Terraform のテストを書くことができるようになりました。
# example.tftest.hcl run "example_test" { # `command = apply` にすると実際にリソースを作成して検証することができる command = plan assert { # リソースの attribute をテストする # この例の場合は S3 バケット名をテストしている condition = aws_s3_bucket.main.bucket == "example-bucket" error_message = "失敗したときのエラーメッセージ" } }
基本的なテストの書き方と実行方法以外にも、次のような機能を簡単にご紹介しました。 詳しくはスライドや参考資料*1をご参照ください。
- テストファイル用のディレクトリを使う
- テスト内で変数を設定する
- Custom Conditions と組み合わせて使う
- その他できること ( 一部 )
- プロバイダの設定を上書きする
output
の値を検証する- Data Source を読み込む
- モジュールを読み込む
また、他の方々の発表もどれも大変参考になる内容でしたので、こちらもぜひご覧ください。
- Terraform Registryで公開されているTerraform Modulesが便利だった件 / @Y0u281
- 🧑🚀 tfstate の分割パターンとディレクトリー構成への適用 / @Hiroki__IT
- Terraformでmoduleを使わずに複数環境を構築して感じた利点 / @shonansurvivors
感想
社外のイベントに登壇するのは初めてだったので緊張しましたが、とても楽しかったです。
色々な企業様の事例を聞くことができて大変勉強になりましたし、僕自身も Terraform の新機能にキャッチアップするいい機会になりました。
たとえ個人でも技術記事を書いているとこういう機会をいただけることがあるんだなぁと思いました。 Terraform に関する内容に限らず、今後も継続的に発信していきたいです。