IBM MQ

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

準備

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

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

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

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

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

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

      IBM MQ 接続では、次の認証タイプがサポートされています。

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

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

認証を構成する

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

  • Anonymous

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

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

サポートされている暗号スイート

TLS バージョン サポートされている暗号スイート
1.2
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
1.3
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256

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

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

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

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

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

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

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

システムの上限

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

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

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

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

アクション

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

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

sendMessage アクション

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

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

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

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

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

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

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

requestReply アクション

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

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

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

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

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

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

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

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

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

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

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

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

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

パラメータ名 データ型 必須 説明
default_queue_name STRING False デフォルト キューの名前で、アクションを実行したときにオーバーライドされることがあります。
default_topic_name STRING False デフォルトのトピックの名前で、アクションの実行時にオーバーライドされることがあります。
queue_manager_name STRING True 接続するキュー マネージャーの名前です。
channel_name STRING True キュー マネージャーに接続するチャネルです。

インテグレーションで IBM MQ 接続を使用する

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

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

Google Cloud コミュニティの助けを借りる

Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ