リポジトリおよび Terraform の構成ファイルを配置することで、構成ファイル用の Cloud Assembly テンプレートをデザインできます。

  1. 前提条件
  2. Terraform ランタイム バージョンの有効化
  3. デザインへの Terraform リソースの追加
  4. クラウド テンプレートの展開

前提条件

バージョン管理リポジトリのセットアップと統合を実行します。Cloud Assembly での Terraform 構成の準備を参照してください。

Terraform ランタイム バージョンの有効化

Terraform 構成を展開するときに、ユーザーが使用できる Terraform ランタイム バージョンを定義できます。Terraform 構成に内部コードによるバージョンの制約が含まれる場合もあることに注意してください。

許可されているバージョンのリストを作成するには、[インフラストラクチャ] > [設定] > [Terraform バージョン] の順に移動します。

デザインへの Terraform リソースの追加

Terraform 構成を含むクラウド テンプレートを作成します。

  1. Cloud Assembly で、[デザイン] > [クラウド テンプレート] の順に移動し [新規作成元] > [Terraform] の順にクリックします。

    Terraform 構成ウィザードが表示されます。

  2. プロンプトの指示に従います。
    ウィザード ページ 設定
    [クラウド テンプレートの新規作成] 名前 デザインに識別しやすい名前を付けます。
    説明 デザインの目的を入力します。
    プロジェクト Terraform 構成が保存されているリポジトリ統合を含むプロジェクトを選択します。
    [構成ソース] リポジトリ Terraform 構成を保存した統合リポジトリを選択します。
    コミット リポジトリ コミットを選択するか、エントリを空白のままにして、リポジトリ ヘッドから Terraform 構成を使用します。

    Bitbucket の制限:Bitbucket のリポジトリ サーバの設定により、選択可能なコミットの数が切り詰められることがあります。

    ソース ディレクトリ 作成したリポジトリ構造からサブディレクトリを選択します。前のセットアップで示したサブディレクトリの例は、demo1、demo2、demo3 です。
    [構成の確定] リポジトリ 正しいリポジトリが選択されていることを確認します。
    ソース ディレクトリ 正しいディレクトリが選択されていることを確認します。
    Terraform バージョン Terraform 構成を展開するときに実行する Terraform ランタイム バージョンを選択します。
    プロバイダ

    Terraform 構成にプロバイダ ブロックが含まれていた場合、このクラウド テンプレートの展開先となるプロバイダとクラウド ゾーンを確認します。

    プロバイダがないことは問題にはなりません。ウィザードの終了後、テンプレートのプロパティでプロバイダとクラウド ゾーンを編集し、展開ターゲットを追加または変更します。

    変数 パスワードなど、暗号化を行う機密性の高い値を選択します。
    出力 Terraform 構成からの出力を確認します。これにより、デザイン コードで参照できる式に変換されます。
  3. [作成] をクリックします。

    Terraform リソースと、展開する Terraform 構成が反映された Cloud Assembly コードが、クラウド テンプレート キャンバスに表示されます。

デザインに追加された Terraform リソース

必要に応じて、他の Cloud Assembly リソースをクラウド テンプレートに追加し、Terraform コードと Terraform 以外のコードをハイブリッド デザインに統合することができます。

注: リポジトリ内の Terraform 構成を更新しても、変更はクラウド テンプレートと同期されません。自動同期により、新たに追加された機密変数などのセキュリティ リスクが生じる可能性があります。

Terraform 構成の変更を取得するには、ウィザードを再実行し、新しいコミットを選択して、新しい機密変数を指定します。

クラウド テンプレートの展開

クラウド テンプレートを展開する際に、展開の [履歴] タブで割り当てフェーズや作成フェーズなどのイベントを展開し、Terraform CLI からのメッセージのログを調べることができます。

承認—PLAN、ALLOCATE、CREATE など、通常の Terraform フェーズに加え、Cloud Assembly では承認フェーズによるガバナンスを導入しています。申請の承認の詳細については、Service Broker 承認ポリシーの構成方法を参照してください。

ログ内の Terraform CLI メッセージ

展開後は、Terraform コンポーネント全体を表す外部リソースが、Terraform で作成された別のコンポーネントに対する内部の子リソースとともに表示されます。子リソースのライフサイクルは、親の Terraform リソースによって制御されます。

Terraform の親リソースと子リソース