APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Terraform Cloudの実行結果をSlackへ通知する

はじめに

こんにちは、ACS事業部の吉川です。
先日、Terraform Cloud入門として以下の記事を投稿しました。

techblog.ap-com.co.jp

Terraform CloudとGitHubを連携させることで、GitHubへのPushをトリガーにしてTerraformを起動することができました。
ところで、その実行結果を見るためにいちいちTerraform Cloudの画面を見るのは面倒です。処理が終わったら向こうから教えてくれたほうが嬉しいですよね。
というわけで、Terraform Cloudの実行結果をSlackに通知するように設定してみましょう。

Slack側の設定

まずはSlack側で通知を受け付けられるように設定しましょう。
通知を受けたいチャンネルの設定画面から、インテグレーション タブを選び アプリを追加する ボタンをクリックします。

アプリの一覧画面から Incoming WebHooks を選んでインストールします。

通知先のチャンネルを選択し、Incoming Webhook インテグレーションの追加 ボタンをクリックします。

追加後に表示されるインテグレーションの設定画面から、Webhook URL をコピーして控えておきます。
また、名前やアイコンをTerraform Cloudからの通知だとわかるように変更しておくとよいでしょう。 URLのコピーと諸々の変更が終わったら設定を保存しておきます。

これでSlack側の準備は完了です。

Terraform Cloud側の設定

Terraform CloudのWorkspaceの設定画面からNotifications を選択し、Create a Notification ボタンをクリックします。

作成画面で以下のように入力します。

  • Destination: Slack を選択する。
  • Name: Terraform Cloud内での管理用の名前です。適当に付けましょう。
  • Slack Webhook URL: 前項で設定したSlackのWebhook URLを入力する。
  • Triggers: とりあえず All events を選択する。

入力が終わったら Create a notification ボタンをクリックしましょう。

設定に問題がなければ、Slackのチャンネルに以下のようにメッセージが通知されます。

これでTerraform Cloudの設定も完了です。

試してみる。

それでは早速連携を試してみましょう。
Terraform Cloudと連携したGitHubリポジトリに適当な更新をPushしてみます。
少し待つと、以下のようにSlackにメッセージが通知されます。

GitHubへのPushをトリガーにTerraform Cloudのジョブが作成され、PlanとApplyを実行して問題なく完了した旨が表示されています🎉

通知される内容を絞る

Slackに処理内容が通知されることは確認できましたが、実際の利用シーンではここまで細かく通知する必要はないでしょう。実施結果の成否だけわかれば十分というケースが多いのではと思います。

そんなときはTerraform Cloudで作成した通知設定を開き、Edit Notification をクリックします。

作成時に All eventsを選んだTriggersの設定を Only certain events に変更し、通知が必要なイベントにチェックを付けて更新します。
以下の例では CompletedErrored にチェックを付けました。

この設定により正常終了/異常終了のみがSlackに通知されるようになります。

おわりに

2023/03/23(木) 14:00から、TerraformでAzureリソースを作成する方法を解説するウェビナーを行います。
初心者向けの内容ですので、これからTerraform使ってみようという方にピッタリかと思います。ぜひご登録ください。

www.ap-com.co.jp

私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。Terraform × Azureも得意分野です。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp

本記事の投稿者: 吉川 俊甫
AKS/ACAをメインにインフラ系のご支援を担当しています。 Shunsuke Yoshikawa - Credly