RabbitMQ

Rabbit MQ コネクタは、Rabbit MQ への接続を提供します。

準備

Rabbit MQ コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
    • コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。

    • 次のサービスを有効にします。
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      サービスを有効にする方法については、サービスを有効にするをご覧ください。

    以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。

コネクタを構成する

コネクタを構成するには、データソース(バックエンド システム)への接続を作成する必要があります。接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。

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

    [接続] ページに移動

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

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

    2. [次へ] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [RabbitMQ] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 49 文字以内で指定してください。
      • イベント サブスクリプションをサポートするコネクタの場合、接続名の先頭に接頭辞「goog」は使用できません。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    6. イベント サブスクリプションの接続を使用するには、[イベント サブスクリプションを有効にする] を選択します。このオプションを選択すると、アクションを使用するイベント サブスクリプションが有効になります。
    7. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    8. デフォルト キューの名前: デフォルト キューの名前です。アクションを実行したときにオーバーライドされます。
    9. 仮想ホスト: RabbitMQ の仮想ホストです。
    10. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    11. 必要に応じて SSL を使用する場合は、[SSL を有効にする] を選択します。これにより、SSL 構成の詳細が表示されます。
      1. トラストストアの種類を選択します。[パブリック]、[プライベート]、[安全でない接続] のいずれかになります。
      2. トラストストアの選択に基づいて表示される証明書を選択します。
      3. mTLS を使用している場合は、[Key Store] セクションでキーストア証明書を選択します。
      4. 必要に応じて、TLS のバージョンを選択します。
      5. サポートされている暗号スイートを入力します。複数の暗号スイートをカンマ区切りの値で入力します。詳細については、サポートされている暗号スイートをご覧ください。
    12. [次へ] をクリックします。
  5. [宛先] セクションに、接続するリモートホスト(バックエンド システム)の詳細を入力します。
    1. 宛先の種類: 宛先の種類を選択します。
      • リストから [ホストアドレス] を選択し、宛先のホスト名または IP アドレスを指定します。
      • バックエンド システムへのプライベート接続を確立する場合は、リストからエンドポイント アタッチメントを選択し、次にエンドポイント アタッチメントリストから必要なエンドポイント アタッチメントを選択します。

      セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。

    2. [次へ] をクリックします。
  6. [認証] セクションで、認証の詳細を入力します。
    1. [認証タイプ] を選択し、関連する詳細を入力します。

      RabbitMQ 接続でサポートされる認証タイプは次のとおりです。

      • Anonymous
      • ユーザー名とパスワードを指定する
    2. これらの認証タイプの構成方法については、認証を構成するをご覧ください。

    3. [次へ] をクリックします。
  7. [イベント サブスクリプションの詳細] セクションで、イベント関連の詳細を構成します。
    • デッドレター構成を入力します。デッドレターを構成すると、指定された Pub/Sub トピックに未処理のイベントが書き込まれます。次の詳細情報を入力します。
      1. デッドレター プロジェクト ID: デッドレター Pub/Sub トピックを構成した Google Cloud プロジェクト ID。
      2. デッドレター トピック: 未処理イベントの詳細を書き込む Pub/Sub トピック。
  8. Review: 接続と認証の詳細を確認します。
  9. [作成] をクリックします。

認証を構成する

使用する認証に基づいて詳細を入力します。

  • Anonymous

    匿名ログインを使用する場合は、[Not Available] を選択します。

  • ユーザー名とパスワード
    • ユーザー名: 接続に使用する RabbitMQ ユーザー名。
    • パスワード: RabbitMQ ユーザー名に関連付けられたパスワードを含む Secret Manager の Secret。

エンティティ、オペレーション、アクション

すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。

  • エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。

    ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、Entities リストは空になります。

  • オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。

    使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがいずれかのエンティティ オペレーションをサポートしていない場合、サポートされていないオペレーションは Operations リストに含まれません。

  • アクション: コネクタ インターフェースを介して統合で使用できる主要な関数の一つです。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、Actions リストが空になります。

システムの上限

Rabbit MQ コネクタは、ノードごとに 1 秒あたりの次のトランザクション数を処理し、この上限を超えるトランザクションをスロットリングします。

  • 最大 9 つのトランザクション(主に sendMessage アクションを使用する場合)。
  • 1 つのトランザクション(主に requestReply アクションを使用する場合)。

デフォルトでは、Integration Connectors は、接続に 2 つのノードを割り当てます(可用性を高めるため)。

Integration Connectors に適用される上限の詳細については、上限をご覧ください。

アクション

Rabbit MQ 接続は、次のアクションをサポートしています。

  • sendMessage: キューにメッセージを送信します。
  • requestReply: キューにメッセージを送信し、返信者がレスポンスを書き込むレスポンス キューも指定します。

sendMessage アクション

次の表に、sendMessage アクションの入出力パラメータを示します。

sendMessage アクションの入力パラメータ

パラメータ名 必須 データ型 説明
message はい 文字列 Rabbit MQ キューに送信されるメッセージ。現在、サポートされている最大のメッセージ サイズは 10 MB です。
queueName × 文字列 Rabbit MQ キューの名前。キュー名を指定しなければ、接続の作成時に指定されたデフォルトのキュー名が使用されます。
messageContentType 文字列 TextBytes のいずれかとして指定できるメッセージ コンテンツ タイプ。バイナリデータを送信する場合は、タイプを Bytes に設定する必要があります。

メッセージをバイナリ形式で送信するには、次のタスクを行う必要があります。

  • バイナリ メッセージを Base64 文字列としてエンコードしてから、message パラメータをエンコードされた値に設定します。
  • messageContentType パラメータの値を Bytes に設定します。
messageType 文字列 DatagramReply のいずれかとして指定できるメッセージ タイプ。
topicName × 文字列 Rabbit MQ トピックの名前。トピック名を指定しなければ、接続の作成時に指定されたデフォルトのキュー名が使用されます。

sendMessage アクションの出力パラメータ

パラメータ名 データ型 説明
messageId 文字列 送信されたメッセージの ID。

requestReply アクション

次の表に、requestReply アクションの入出力パラメータを示します。

requestReply アクションの入力パラメータ

パラメータ名 必須 データ型 説明
message はい 文字列 Rabbit MQ キューに送信されるメッセージ。サポートされている最大のメッセージ サイズは 10 MB です。
queueName × 文字列 Rabbit MQ キューの名前。キュー名を指定しなければ、接続の作成時に指定されたデフォルトのキュー名が使用されます。
messageContentType 文字列 TextBytes のいずれかとして指定できるメッセージ コンテンツ タイプ。バイナリデータを送信する場合は、タイプを Bytes に設定する必要があります。

メッセージをバイナリ形式で送信するには、次のタスクを行う必要があります。

  • バイナリ メッセージを Base64 文字列としてエンコードしてから、message パラメータをエンコードされた値に設定します。
  • messageContentType パラメータの値を Bytes に設定します。
replyToQueue 文字列 返信者がレスポンスを書き込むキュー。
replyTimeout 文字列 コネクタがレスポンス キュー内のレスポンスを待つ時間(ミリ秒単位)。サポートされている最大値は 180,000 ミリ秒(3 分)です。

タイムアウト期間が過ぎてからレスポンス キューがメッセージを受信した場合、そのメッセージはコネクタでは処理されません。ただし、タイムアウトしたメッセージの詳細は、インテグレーションの実行ログで確認できます。

requestReply アクションの出力パラメータ

パラメータ名 データ型 説明
replyMessage 文字列 返信者からのレスポンス メッセージ。

Terraform を使用して接続を作成する

Terraform リソースを使用して、新しい接続を作成できます。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。

Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。

パラメータ名 データ型 必須 説明
default_queue_name STRING False デフォルト キューの名前で、アクションを実行したときにオーバーライドされることがあります。
default_topic_name STRING False デフォルトのトピックの名前で、アクションの実行時にオーバーライドされることがあります。
virtual_host STRING True Rabbit MQ の仮想ホスト。

統合で Rabbit MQ 接続を使用する

接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。

  • Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
  • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。