TerraformでGCPのPub/Subを作成する②-Pub/Sub の作成
はじめに
Terraform で GCP の Pub/Sub を作成する ①-Terraform をインストール からの続きです。
前回のエントリでは、 Terraform を MacBookPro にインストールするところまでを行いました。
僕の MacBookPro では、インストール時にエラーが多数発生して解決までにいくつもの工程を踏む必要がありました。
今回のエントリでは、 GCP 上に Pub/Sub の Topic(トピック) と Subscription(サブスクリプション) を構築していきます。
用語が不明な方は以下を参照ください。
- Google Cloud Pub/Sub について学習中(非同期メッセージングを図示してみました) | ゲンゾウ用ポストイット
- Google Cloud Pub/Sub の登場人物と役割を整理してみました | ゲンゾウ用ポストイット
検証環境
事前準備、前提条件
gcloud auth login
済みであることgcloud
コマンドを実行して GCP プロジェクト内に Pub/Sub リソースを作成する権限を持っていること
今回は権限ではまりたくないため、GCP プロジェクト内に登録されている自分の権限を利用します。
インフラの設定ファイルは HCL (HashiCorp Configuration Language) を使って記述する
Terraform で GCP の Pub/Sub を作成する ①-Terraform をインストール でも紹介しましたが、 Terraform では、 「手順型のスクリプト」を作成するのではなく、「宣言型の設定ファイル」を作成します。
「宣言型の設定ファイル」 は記述ルールが厳密に決められており、 HCL (HashiCorp Configuration Language) という言語で記述します。
拡張子は tf
で作成するようです。
なにはともあれ、 tf
ファイルを作成します。
Google Cloud Platform Provider の設定
Terraform は Provider というものを使って、環境構築先のクラウドとそこへの接続を設定します。
GCP を利用したい場合には Google Cloud Platform Provider という Provider を利用します。
設定する項目として project と region が必要なので、 gcloud
コマンドを使って対象 GCP プロジェクトを確認します。
プロジェクト名は実際に検証した環境から置換しています。
IS_ACTIVE が True になっているプロジェクトに環境を作成したいと思います。
tf
ファイルに以下のように記述します。
ほぼ空の設定ファイルで terraform
コマンドを叩いてみる
この状態でどこまで terraform
コマンドが動かせるのか知りたかったのでためしに動かしてみます。
実行前に terraform init
でプラグインをインストールする
利用している Provider は プラグイン として提供されています。
実行の前に設定ファイル内のプラグインをインストールする必要があります。
terraform init
コマンドを利用します。
実行前に terraform validate
で設定ファイルの文法をチェックする
プラグインをインストールできているため、文法チェックはすでにできているのかもしれませんが、念の為文法チェックを行います。
実行プランを terraform plan
で確認
こちらも、 Terraform で GCP の Pub/Sub を作成する ①-Terraform をインストール でも紹介していた機能です。
実行プランの作成 と 実行(適用) はコマンドが分けられています。
最終確認としてどんなリソースが作られるのか?更新されるのか?を terraform plan
で確認します。
Provider しか定義していないので、当然ですね。
実行プランを確認し終わったら terraform apply
で反映
いけそうなので、 Pub/Sub リソースを定義し、反映させていきたいと思います。
Pub/Sub リソースを作成し、GCP に反映させてみる。
いよいよ Pub/Sub の Topic 、 Subscription を登録していきます。
用語が不明な方は以下を参照ください。
- Google Cloud Pub/Sub について学習中(非同期メッセージングを図示してみました) | ゲンゾウ用ポストイット
- Google Cloud Pub/Sub の登場人物と役割を整理してみました | ゲンゾウ用ポストイット
設定方法は Terraform の公式ドキュメントを参照しました。
Pub/Sub以外の設定を行いたい場合でも、以下のドキュメントページメニューから探すことができます。
先程の terraform
サブコマンドを一つずつ実行して行きます。
結果
マスキング部分が多いですが、以下のように作成されていました。
ひとこと
簡単だし、楽しいですし、 Terraform いいですね。
ディスカッション
コメント一覧
まだ、コメントがありません