Cloud Pub/Sub トリガー

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

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

始める前に

Cloud Pub/Sub トリガーを構成する前に、Google Cloud プロジェクトで以下の作業を行っていることを確認してください。

  • デフォルトのサービス アカウントservice-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com)に、次の IAM ロールを割り当てます。
  • Cloud Pub/Sub トピックが存在することを確認します。新しい Pub/Sub トピックを作成します。
    1. Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。

      Pub/Sub の [トピック] ページに移動する

    2. [トピックを作成] をクリックします。
    3. [トピック ID] フィールドに、一意のトピック名を入力します。
    4. [保存] をクリックします。

IAM ロールを使用したアクセス管理の詳細については、アクセス制御に関する記事をご覧ください。

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

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

新規または既存の統合に Cloud Pub/Sub トリガーを追加する手順は次のとおりです。
  1. Apigee UI で、Apigee 組織を選択します。
  2. [Develop] > [Integrations] の順にクリックします。
  3. 既存のインテグレーションを選択するか、[Create Integration] をクリックして新しいインテグレーションを作成します。

    新しいインテグレーションを作成する場合:

    1. [Create Integration] ダイアログで名前と説明を入力します。
    2. サポートされているリージョンのリストから、インテグレーションのリージョンを選択します。
    3. [Create] をクリックします。

    統合デザイナーで統合が開きます。

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

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

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

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

projects/PROJECT_ID/topics/TOPIC_ID

Google Cloud プロジェクトで使用可能なすべてのトピックを表示するには、[トピック] の [トピックの名前] 列をご覧ください。

次のように置き換えます。

  • PROJECT_ID: トピックが作成される Google Cloud プロジェクト。
  • TOPIC_ID: Pub/Sub トピックの ID。

トリガー出力

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

考慮事項

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

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

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