Application Integration でサポートされているコネクタをご覧ください。

Cloud Pub/Sub トリガー

Cloud Pub/Sub トリガーを使用すると、Pub/Sub ミドルウェアのイベントに基づいて統合を実行できます。

このトリガーを使用すると、選択したトピックにパブリッシャーがメッセージを書き込むたびに統合を実行できます。トピックは、インテグレーションと同じ  Google Cloud プロジェクトに存在させることも、別の Google Cloud プロジェクトに存在させることもできます。このトリガーを実行すると、パブリッシュされたメッセージが CloudPubSubMessage 出力変数にも書き込まれます。この変数は、要件に応じて、下流のトリガーやタスクで使用できます。

Application Integration と Cloud Pub/Sub トリガーを使用してサンプル統合を作成する方法については、Cloud Pub/Sub トピックをリッスンしてメールを送信するをご覧ください。

このトリガーを使用すると、選択したトピックにパブリッシャーがメッセージを書き込むたびに統合を実行できます。このトリガーを実行すると、パブリッシュされたメッセージが CloudPubSubMessage 出力変数にも書き込まれます。この変数は、要件に応じて、下流のトリガーやタスクで使用できます。

始める前に

Cloud Pub/Sub トリガーを構成する前に、 Google Cloud プロジェクトで次のタスクを行う必要があります。

  • このトリガーを作成するユーザーにプロジェクト IAM 管理者roles/resourcemanager.projectIamAdmin)を割り当てます。
  • インテグレーションがあるプロジェクトで Pub/Sub API を有効にします。 Google Cloud
  • Pub/Sub API がサービス境界で保護されている場合は、これらのサービス境界を管理する次の IAM ロールを定義してください。

    • Access Context Manager 管理者(roles/accesscontextmanager.policyAdmin
    • Access Context Manager 編集者(roles/accesscontextmanager.policyEditor
    • Access Context Manager 読み取り(roles/accesscontextmanager.policyReader

  • Cloud Pub/Sub トピックが存在することを確認します。新しい Pub/Sub トピックを作成します。
    1. Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。

      Pub/Sub トピックページに移動

    2. [トピックを作成] をクリックします。
    3. [トピック ID] フィールドに、一意のトピック名を入力します。
    4. [保存] をクリックします。
IAM ロールを使用したアクセス管理の詳細については、アクセス制御をご覧ください。

プリンシパルにロールを付与する方法については、アクセス権の付与、変更、取り消しをご覧ください。

Cloud Pub/Sub トリガーを追加する

新規または既存の統合に Cloud Pub/Sub トリガーを追加する手順は次のとおりです。
  1. Google Cloud コンソールで、[Application Integration] ページに移動します。

    Application Integration に移動

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

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

  3. 既存の統合を選択するか、[統合の作成] をクリックして新しい統合を作成します。

    新しい統合を作成する場合:

    1. [統合の作成] ペインで名前と説明を入力します。
    2. 統合のリージョンを選択します。
    3. 統合用のサービス アカウントを選択します。統合のサービス アカウントの詳細は、統合ツールバーの [統合の概要] ペインでいつでも変更または更新できます。
    4. [作成] をクリックします。

    新しく作成された統合が統合エディタで開きます。

  4. 統合エディタのナビゲーション バーで、[トリガー] をクリックして、使用可能なトリガーのリストを表示します。
  5. [Cloud Pub/Sub trigger] 要素をクリックしてデザイナーに配置します。

Cloud Pub/Sub トリガーを構成する

統合エディタで [Cloud Pub/Sub trigger] 要素をクリックしてトリガー構成ペインを表示し、次のタスクを行います。

  1. [Pub/Sub topic] フィールドに、トリガーがリッスンするトピックを次の形式で指定します。
    projects/PROJECT_ID/topics/TOPIC_ID

    Google Cloud プロジェクトで使用可能なすべてのトピックを表示するには、[トピック] で [トピック名] 列を確認します。別のプロジェクトからトピックを選択することもできます。 Google Cloud

    以下を置き換えます。
    • PROJECT_ID: トピックが作成される Google Cloud プロジェクト。
    • TOPIC_ID: Pub/Sub トピックの ID。トピックは、インテグレーションと同じ Google Cloud プロジェクトに存在することも、別の Google Cloud プロジェクトに存在することもできます。
  2. 統合の呼び出しに使用するサービス アカウントを選択します。インテグレーションで作成した構成変数を選択することもできます。config 変数の値は、SERVICE_ACCOUNT_NAME@project-id.iam.gserviceaccount.com の形式のサービス アカウントのメールアドレスにする必要があります。例: application-integration-invoke@project123.iam.gserviceaccount.com

    構成変数の作成方法については、変数の作成をご覧ください。サービス アカウントの作成方法については、サービス アカウントの作成をご覧ください。

    構成変数を選択する場合は、構成変数が参照するサービス アカウントに必要なロールを付与する必要があります。ロールを付与する方法の詳細については、必要な IAM ロールをご覧ください。

    サービス アカウントがない場合は、[サービス アカウント] リストで [新規作成] をクリックしてサービス アカウントを作成します。

デフォルトでは、サブスクリプションの有効期限オプションnever expire に設定されています。有効期限を別の値に設定する場合は、 Google Cloud コンソールで Pub/Sub サブスクリプション ページに移動してサブスクリプションを編集します。

サービス アカウントに必要な IAM ロール

サービス アカウントを選択して [付与] をクリックすると、さまざまなサービス アカウントに次のロールが自動的に付与されます。

サービス アカウント IAM ロールが付与されている
Application Integration のデフォルトのサービス アカウント: service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
  • Pub/Sub 編集者(roles/pubsub.editor
  • サービス アカウント ユーザー(roles/iam.serviceAccountUser

Pub/Sub トピックの Google Cloud プロジェクトが統合の Google Cloudプロジェクトと異なる場合、デフォルトのサービス アカウントには、トピックの Google Cloud プロジェクトで Pub/Sub 編集者のロールが必要です。

このトリガーに選択したサービス アカウント Application Integration の起動元( roles/integrations.integrationInvoker

トリガー出力

各イベントでは、Cloud Pub/Sub トリガーにより、下流のタスクで使用できる CloudPubSubMessage 出力変数が生成されます。変数は JSON 形式で、PubsubMessage 構造です。

インテグレーション用のフィルタを使用してサブスクリプションを作成する

インテグレーションの特定のイベントを処理する Pub/Sub サブスクリプションのフィルタを設定する場合は、次の手順を行います。

  1. Cloud Pub/Sub トリガーが構成されたインテグレーションを公開します。この手順により、インテグレーション プロジェクトにサブスクリプションが作成されます。
  2. Google Cloud コンソールで、[サブスクリプション] ページに移動します。

    サブスクリプションに移動

  3. サブスクリプションを開き、サブスクリプション名を含むすべての詳細をコピーします。
  4. 既存のサブスクリプションを削除します。
  5. 手順 3 でコピーしたサブスクリプション名を含めて、削除したサブスクリプションのすべての詳細を使用して新しいサブスクリプションを作成し、新しいサブスクリプションにフィルタも追加します。

    新しく作成したサブスクリプションによって、フィルタされたメッセージとのインテグレーションがトリガーされます。

SLA の免責

Cloud Pub/Sub トリガーは Pub/Sub プロダクトに依存します。この依存関係は Application Integration の外部にあるため、Application Integration サービスレベル契約(SLA)の利用規約は Cloud Pub/Sub トリガーが正常に active 統合の実行を開始した場合にのみ適用されます。

VPC Service Controls で Pub/Sub トリガーを使用する

Application Integration で Pub/Sub トリガーを構成して統合をパブリッシュしようとすると、Pub/Sub API が VPC Service Controls のサービス境界で保護されている場合、必要な Pub/Sub サブスクリプションの作成が失敗します。

サービス境界はリソースの周囲にセキュリティ境界を適用します。これらのポリシーにより、アプリケーション統合が統合の公開中に必要な Pub/Sub サブスクリプションを作成できなくなる可能性があります。 Google Cloud

このようなシナリオで Pub/Sub トリガーを正常に構成して公開するには、次の操作を行います。

  1. サービス境界から Pub/Sub API を一時的に削除します。
    1. Google Cloud コンソールで、[VPC Service Controls] ページに移動します。

      [VPC Service Controls] に移動

    2. インテグレーションで使用する Pub/Sub トピックを含む Google Cloud プロジェクトを選択します。
    3. (省略可)選択したプロジェクトにアクセス ポリシーが構成されていない場合、[現在のスコープで VPC サービス境界が見つかりませんでした] というメッセージが表示されます。この場合は、[組織スコープに切り替え] をクリックして組織レベルに移動します。
    4. [VPC Service Controls] ページのテーブルで、変更するサービス境界の名前をクリックします。
    5. [サービス境界の詳細] ページで、[編集] をクリックします。
    6. [制限付きサービス] ペインで、pubsub.googleapis.com サービスをフィルタして選択します。
    7. [選択したアイテムを削除] をクリックします。
    8. [保存] をクリックします。確認ダイアログで [確認] をクリックして、VPC Service Controls サービス境界から Pub/Sub API を削除します。
  2. 統合で Pub/Sub トリガーを追加して構成します。
  3. 統合を公開します
  4. Pub/Sub API をサービス境界に再度追加します。
    1. [VPC Service Controls] ページに移動します。

      [VPC Service Controls] に移動

    2. [VPC Service Controls] ページのテーブルで、前に変更したサービス境界をクリックします。
    3. [サービス境界の詳細] ページで、[編集] をクリックします。
    4. [制限付きサービス] ペインで、 [サービスを追加] をクリックします。
    5. フィルタして pubsub.googleapis.com サービスを選択します。
    6. [選択したサービスを追加] をクリックします。
    7. [保存] をクリックします。確認ダイアログで [確認] をクリックして、Pub/Sub API を VPC Service Controls サービス境界に再度追加します。

料金

Cloud Pub/Sub トリガーと Salesforce トリガーでは、コネクタを作成する必要はありません。ただし、コネクタタスクを使用して Pub/Sub または Salesforce に接続する場合は、コネクタの使用量に対して課金されます。料金について詳しくは、Application Integration の料金をご覧ください。

考慮事項

  • Pub/Sub メッセージの最大サイズは 10 MB です。Pub/Sub のすべての制限事項については、Pub/Sub の割り当てと上限をご覧ください。
  • Pub/Sub はトピックに複数回同じメッセージを書き込む可能性があります。Pub/Sub のこの動作については、At-Least-Once 配信をご覧ください。したがって、メッセージがトピックに複数回書き込まれないように、べき等になるように統合を設計する必要があります。

    Pub/Sub メッセージは、メッセージ ヘッダーの message_id フィールドで一意に識別されます。

  • インテグレーションの公開を停止しても、メッセージの損失を防ぐために Pub/Sub サブスクリプションは削除されません。ただし、インテグレーションの公開済みのバージョンまたはすべてのインテグレーション バージョンを削除すると、Pub/Sub サブスクリプションも削除されます。

割り当てと上限

割り当てと上限については、割り当てと上限をご覧ください。

次のステップ