統合用の CICD をビルドする


このチュートリアルでは、構成変数プレビュー)を使用して、異なる Google Cloud プロジェクトの異なる環境間の統合の昇格を自動化する方法について説明します。

概要

このチュートリアルでは、サンプル統合の構成変数を使用して Application Integration のデプロイを自動化します。このサンプル統合フローでは、API を呼び出して、API からのレスポンスを Pub/Sub トピックに公開します。このサンプルは、REST エンドポイントの呼び出しタスクとコネクタタスクの使用を説明することを目的としています。さまざまな環境と Google Cloud プロジェクトに対応する GitHub リポジトリにサンプル インテグレーションを保存できます。

目標

このチュートリアルでは、統合で以下のタスクを行う方法について説明します。

  • 統合を作成する
  • 構成変数を作成し、統合で使用します。
  • 統合を別の環境に昇格させます。

費用

このチュートリアルでは、Google Cloud の次の課金対象のコンポーネントを使用します。

このチュートリアルの手順は、リソース使用量が Google Cloud の無料のクラウド機能とトライアル特典の制限内に収まるように設計されています。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Secret Manager API, Connectors API API を有効にします。

    API を有効にする

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Pub/Sub Publisher (roles/pubsub.publisher) role to the service account.

      To grant the role, find the Select a role list, then select Pub/Sub Publisher (roles/pubsub.publisher).

    6. Click Continue.
    7. Click Done to finish creating the service account.

  6. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  7. Google Cloud プロジェクトで課金が有効になっていることを確認します

  8. Secret Manager API, Connectors API API を有効にします。

    API を有効にする

  9. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the Pub/Sub Publisher (roles/pubsub.publisher) role to the service account.

      To grant the role, find the Select a role list, then select Pub/Sub Publisher (roles/pubsub.publisher).

    6. Click Continue.
    7. Click Done to finish creating the service account.

Pub/Sub トピックを作成する

  1. Google Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。

    [トピック] に移動

  2. [トピックを作成] をクリックします。

  3. [トピック ID] フィールドに、トピックの ID を入力します。トピックの命名の詳細については、トピック、サブスクリプション、スキーマ、スナップショットの命名に関するガイドラインをご覧ください。

  4. [デフォルトのサブスクリプションを追加] オプションは、そのまま保持します。

  5. 他のオプションは選択しないでください。

  6. [トピックを作成] をクリックします。

Pub/Sub コネクタを構成する

  1. Google Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      サポートされているすべてのリージョンのリストについては、ロケーションをご覧ください。

    2. [NEXT] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [Pub/Sub] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに「pub-sub-connector」と入力します。
    4. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    5. プロジェクト ID: Pub/Sub インスタンスが存在する Google Cloud プロジェクトの ID。
    6. トピック ID: Pub/Sub トピックの名前を入力します。
    7. [次へ] をクリックします。
  5. [認証] セクションで、[次へ] をクリックします。
  6. Review: 接続と認証の詳細を確認します。
  7. [作成] をクリックします。

新しい統合を作成する

Application Integration を設定したら、新しい統合を作成できます。

  1. Google Cloud コンソールで [Application Integration] ページに移動します。

    Application Integration に移動

  2. ナビゲーション メニューで [統合] をクリックします。[統合リスト] ページが表示されます。
  3. [ 統合を作成] をクリックし、[統合を作成] ページで次の情報を入力します。
    1. 統合名: 統合の名前を入力します。例: build-cicd
    2. 説明: 統合の説明を入力します(省略可)。例: Demo integration created for CICD tutorial
    3. リージョン: プロビジョニングされたリージョンのリストからリージョン us-central1 を選択します。選択するリージョンがプロビジョニングされていない場合は、新しいリージョンをプロビジョニングするをご覧ください。サポートされているリージョンの一覧については、Application Integration のロケーションをご覧ください。
    4. サービス アカウント: このフィールドは、リージョンでガバナンスを有効にしている場合に表示されます。統合のサービス アカウントを選択します。リージョンのガバナンスを有効にする方法については、リージョンを編集するをご覧ください。
    5. [作成] をクリックします。[統合エディタ] ページが開き、タスクトリガーを追加して統合を構築できます。

統合フローを作成する

API トリガーと REST エンドポイントの呼び出しを追加する

API トリガーを追加するには、次の操作を行います。
  1. Google Cloud コンソールで [Application Integration] ページに移動します。

    Application Integration に移動

  2. ナビゲーション メニューで [統合] をクリックします。

    [統合リスト] ページが開き、Google Cloud プロジェクトで使用可能なすべての統合が一覧表示されます。

  3. build-cicd 統合を選択します。

    統合エディタで統合が開きます。

  4. 統合エディタのナビゲーション バーで、[トリガー] > [API トリガー] をクリックしてトリガーを追加します。
  5. 統合エディタのナビゲーション バーで、[タスク] > [REST エンドポイントの呼び出し] をクリックしてタスクを追加します。
  6. [API トリガー] 要素からエッジ接続を [REST エンドポイントの呼び出し] 要素に追加するには、[API トリガー] 要素のコントロール ポイントの上にカーソルを合わせてからクリックし、[REST エンドポイントの呼び出し] タスク要素のコントロール ポイントに線を引きます。

構成変数を作成する

構成変数を作成するには、次の手順を行います。
  1. インテグレーション デザイナーのナビゲーション バーで、(切り替えパネル)をクリックして、[変数] ペインを開きます。
  2. [+ 作成] をクリックします。
  3. [変数の作成] ペインで、次の操作を行います。
    1. [名前] に「url」と入力します。

      Application Integration では、構成変数に `CONFIG_ 接頭辞が追加されます。API を使用して統合に構成変数を追加する場合は、構成変数に `CONFIG_CONFIG_VARIABLE_NAME` の形式を使用します。統合のダウンロードとアップロードの方法については、統合のアップロードとダウンロードをご覧ください。

    2. [変数タイプ] で [構成変数] を選択します。
    3. [データ型] で [文字列] を選択します。
    4. [作成] をクリックします。

      構成変数が [変数] ペインに表示されます。

  4. 手順 2 と 3 を繰り返して、次の構成変数を追加します。
    • 名前: connection_name
    • 変数タイプ: Config Variable
    • データ型: String

REST エンドポイントの呼び出しを追加して構成する

構成変数を作成する手順は次のとおりです。
  1. 統合エディタで、[REST エンドポイントの呼び出し] タスクをクリックして、タスク構成ペインを開きます。次に、以下の操作を行います。
    1. [タスク入力] セクションを展開します。
    2. [エンドポイントのベース URL] で [変数] をクリックし、$`CONFIG_url`$ を追加します。

コネクタタスクを追加して構成する

  1. 統合エディタのナビゲーション バーで、[タスク] > [コネクタ] をクリックします。
  2. [コネクタを設定する] をクリックします。
  3. [リージョン] リストから、Pub/Sub コネクタを作成したリージョンを選択します。
  4. [接続] フィールドで、前の手順で作成した Pub/Sub コネクタを選択します。
  5. [タイプ] セクションで [アクション] を選択します。
  6. [エンティティ / アクションを設定する] セクションの [アクション] で、[publishMessage] を選択します。
  7. [デフォルト値] に、構成変数のデフォルト値を追加します。
  8. [作成] をクリックします。
  9. [コネクタ] タスク構成ペインで、[接続の詳細] セクションを展開して次のフィールドを更新します。
    1. [接続名] フィールドで [変数] をクリックし、[$`CONFIG_connection_name`$] を選択します。

データ マッピング タスクを追加する

  1. 統合エディタのナビゲーション バーで、[タスク] > [データ マッピング] をクリックします。
  2. [REST エンドポイントの呼び出し] 要素から [データ マッピング] 要素にエッジ接続を追加するには、[REST エンドポイントの呼び出し] 要素のコントロール ポイントの上にカーソルを合わせてからクリックし、[データ マッピング] タスク要素のコントロール ポイント線を引きます。
  3. データ マッピング 要素上のコントロール ポイントにカーソルを合わせて、データ マッピング 要素からコネクタ要素に別のエッジ接続を追加します。線をクリックして、[コネクタ] タスク要素上のコントロール ポイントにドラッグします。
  4. データ マッピング タスク構成ペインで、[Open Data Mapping Editor] をクリックします。
  5. REST エンドポイントの呼び出しタスクの出力変数をコネクタタスクの入力変数にマッピングします。

統合を公開する

統合を公開する手順は次のとおりです。
  1. 統合を公開するには、統合デザイナー ツールバーの [公開] をクリックします。

    [統合を公開] ダイアログが表示されます。

  2. [Publish integration] ダイアログで、次の構成変数の値を入力します。
    1. url: エンドポイント URL の名前を入力します。
    2. connection_name: 前のステップで作成した Pub/Sub コネクタの名前を入力します。
  3. [Publish] をクリックします。
  4. 統合が正常に公開されると、公開された統合の実行ログを表示、検査できます。ログを表示するには、統合エディタのツールバーで [ログ] をクリックします。

環境間でのインテグレーションをプロモートする

環境間でインテグレーションをプロモートするには、integrationcli ツールを使用できます。これは、Application Integration APIIntegration Connectors API を操作できるオープンソース ツールです。このツールを使用すると、インテグレーション、認証構成などのインテグレーション エンティティを管理できます。インテグレーションのスキャフォールディングを生成して、スキャフォールディングによって生成された変更を適用する方法については、コミュニティ ブログの integrationcli の概要をご覧ください。

Jenkins、GitLab、Cloud Build などを使用して DevOps パイプラインを設定することで、環境間で変更をプロモートすることもできます。詳細については、Cloud Build とのインテグレーションをご覧ください。

integrationcli を使用しない場合は、手動でインテグレーションをダウンロードして新しいプロジェクトにアップロードできます。現在ダウンロードできないため、新しいプロジェクトで手動でコネクタを作成する必要があります。新しい環境でインテグレーションを公開すると、Application Integration で構成変数の値を入力できます。

次のステップ