キュー・ソースとのコネクタの作成

キュー・サービスのキューからターゲット・サービスにメッセージを転送するコネクタ・ハブにコネクタを作成します。

キュー・サービスの詳細は、キューを参照してください。

キュー・ソースおよび(オプション)ファンクション・タスクで定義されたコネクタでは、ファンクション、通知、オブジェクト・ストレージおよびストリーミングのターゲットがサポートされます。

コネクタ・ハブ・ワークフローの例は、「コネクタ・ハブの概要」を参照してください。

関数ターゲットに関するシナリオについては、シナリオ: 関数へのキュー・メッセージの送信を参照してください。

ロング・投票

デフォルトでは、コネクタは長いポーリングを使用してキューからメッセージを読み取ります。ロング・ポーリングは、キューが空の場合にタイト・ループの再試行を防止するのに役立ちます。キューからの読み取りの読み取りタイムアウトは30秒です。各移動操作では、コネクタは、キューで消費可能なメッセージが使用可能になるのを待機します。読取りタイムアウトが経過し、消費可能なメッセージがない場合、コネクタはリクエストを終了し、別のリクエストで再試行します。

フィルタと消費されたメッセージ数

特定のチャネルのキューをフィルタできます。キューをフィルタするためのAPIおよびCLIパラメータについては、チャネルからのメッセージの消費を参照してください。コネクタのターゲットに転送されたメッセージは、「消費済」とみなされます。キュー・サービスの要件を満たすために、コネクタはソース・キューから転送されたメッセージを削除します。詳細は、メッセージの使用を参照してください。

保持期間: キュー・ソース

コネクタ・ハブのキュー・ソースの保持期間は、キュー構成によって異なります。「キューの作成」を参照してください。搬送の詳細は、「搬送詳細」を参照してください。

    1. 「コネクタ」リスト・ページで、「コネクタの作成」を選択します。リスト・ページの検索に関するヘルプが必要な場合は、コネクタのリストを参照してください。
    2. 「コネクタの作成」ページで、新しいコネクタのわかりやすい名前と説明(オプション)を入力します。機密情報を入力しないでください。
    3. 新しいコネクタを格納するコンパートメントを選択します。
    4. 「コネクタの構成」「ソース」で、「キュー」を選択します。
    5. 「ターゲット」で、メッセージの転送先のサービスを選択します:
      • ファンクション: キューからファンクションにメッセージを送信します。
      • 通知: キューからトピックにメッセージを送信します。通知は、関数タスクが定義されていない場合にのみサポートされます。
      • オブジェクト・ストレージ: キューからバケットにメッセージを送信します。
      • ストリーミング: キューからストリームにメッセージを送信します。
    6. (オプション)新しいコネクタのサービス・ログを有効にするには、「ログ」スイッチを選択し、次の値を指定します:
      • ログ・カテゴリ: 値「コネクタ・トラッキング」が自動的に選択されます。
      • コンパートメント: コネクタのサービス・ログを格納するコンパートメントを選択します。
      • ログ・グループ: サービス・ログを格納するログ・グループを選択します。新しいログ・グループを作成するには、「新規グループの作成」を選択し、名前を入力します。
      • ログ名: オプションで、ログの名前を入力します。
      • 拡張オプションの表示:
        • ログ保持: オプションで、サービス・ログを保持する期間を指定します(デフォルト: 30日)。
    7. 「ソース接続の構成」で、必要なメッセージを含むキューを選択します:
      • コンパートメント: 必要なキューを含むコンパートメントを選択します。
      • キュー: 必要なメッセージを含むキューを選択します。
      • チャネル・フィルタ(「メッセージ・フィルタリング」の下) (オプション): キュー内のチャネルからメッセージをフィルタするには、値を入力します。

        たとえば、チャネルIDでメッセージをフィルタするには、チャネルIDを入力します。

        サポートされている値については、GetMessages (キューAPI)のchannelFilterを参照してください。

      ノート

      コネクタのターゲットに転送されたメッセージは、「消費済」とみなされます。キュー・サービスの要件を満たすために、コネクタはソース・キューから転送されたメッセージを削除します。詳細は、メッセージの使用を参照してください。
    8. (オプション)「ファンクション・タスクの構成」で、ファンクション・サービスを使用してキューからのメッセージを処理するファンクション・タスクを構成します:
      • タスクの選択: 「関数」を選択します。
      • コンパートメント: 必要なファンクションを含むコンパートメントを選択します。
      • ファンクション・アプリケーション: 必要なファンクションが含まれるファンクション・アプリケーションの名前を選択します。
      • ファンクション: ソースから受け取ったデータの処理に使用するファンクションの名前を選択します。

        タスクとしてコネクタによって使用される場合は、次のいずれかのレスポンスを返すファンクションを構成する必要があります:

        • JSONエントリのリスト(レスポンス・ヘッダーContent-Type=application/jsonを設定する必要があります)
        • 単一のJSONエントリ(レスポンス・ヘッダーContent-Type=application/jsonを設定する必要があります)
        • 単一のバイナリ・オブジェクト(レスポンス・ヘッダーContent-Type=application/octet-streamを設定する必要があります)
      • 追加オプションの表示: このリンクを選択し、ファンクションに送信されるデータのバッチごとに制限を指定します。手動設定を使用するには、バッチ・サイズ制限(KB)およびバッチ時間制限(秒)の値を指定します。

      機能タスクの考慮事項:

      • コネクタ・ハブは、ファンクション・タスクの出力を分析しません。ファンクション・タスクの出力は、そのままターゲットに書き込まれます。たとえば、ファンクション・タスクで通知ターゲットを使用する場合、すべてのメッセージはRAW JSON BLOBとして送信されます。
      • ファンクションは、1回の呼出しで6MBのデータと同期するように呼び出されます。データが6MBを超えると、コネクタが再びファンクションを呼び出して制限を超えるデータを移動します。このような起動は順次処理されます。
      • ファンクションは最大5分間実行できます。Delivery Detailsを参照してください。
      • 関数タスクはスカラー関数に制限されます。
    9. ターゲットとして「ファンクション」を選択した場合は、「ターゲットの構成」で、キューからメッセージを送信するようにファンクションを構成します。ステップ15にスキップします。
      • コンパートメント: 必要なファンクションを含むコンパートメントを選択します。
      • ファンクション・アプリケーション: 必要なファンクションを含むファンクション・アプリケーションの名前を選択します。
      • ファンクション: データの送信先のファンクションの名前を選択します。
      • 追加オプションの表示: このリンクをクリックし、ファンクションに送信されるデータのバッチごとに制限を指定します。手動設定を使用するには、バッチ・サイズ制限(KBまたはメッセージ数)およびバッチ時間制限(秒)の値を指定します。

        たとえば、5,000KBまたは10メッセージを選択して、バッチ・サイズを制限します。バッチ時間制限の例は5秒です。

      ファンクション・ターゲットの考慮事項:

      • コネクタは、ソース・データをバッチでJSONリストとしてフラッシュします。最大バッチ(ペイロード)サイズは6MBです。
      • ファンクションは、1回の呼出しで6MBのデータと同期するように呼び出されます。データが6MBを超えると、コネクタが再びファンクションを呼び出して制限を超えるデータを移動します。このような起動は順次処理されます。
      • ファンクションは最大5分間実行できます。Delivery Detailsを参照してください。
      • ファンクション・ターゲットからコネクタにデータを返さないでください。コネクタ・ハブは、ファンクション・ターゲットから返されたデータを読み取りません。
    10. ターゲットとして「通知」を選択した場合は、「ターゲットの構成」で、キューからメッセージを送信するようにトピックを構成します。ステップ15にスキップします。
      • コンパートメント: 目的のトピックを含むコンパートメントを選択します。
      • トピック: データの送信先のトピックの名前を選択します。
      • メッセージの書式: 必要なオプションを選択します:
        ノート

        「メッセージの書式」オプションは、ロギング・ソースのコネクタでのみ使用できます。これらのオプションは、ファンクション・タスクがあるコネクタでは使用できません。「メッセージ形式」オプションが使用できない場合、メッセージはRAW JSON BLOBとして送信されます。
        • フォーマットされたメッセージの送信: 簡単でわかりやすいレイアウト。

          フォーマットされたメッセージに対してサポートされているサブスクリプション・プロトコルとメッセージ・タイプを確認するには、わかりやすいフォーマットを参照してください。

        • RAWメッセージの送信: RAW JSON BLOB。

      通知ターゲットの考慮事項:

      • Notificationsターゲットの最大メッセージ・サイズは128KBです。最大サイズを超えるメッセージは削除されます。
      • SMSメッセージでは、特定のコネクタ構成の場合に予期しない結果が生成されます。この問題は、指定されたコネクタ構成でSMSサブスクリプションを含むトピックに限定されます。詳細は、1つの通知に対する複数のSMSメッセージを参照してください。
    11. ターゲットとして「オブジェクト・ストレージ」を選択した場合は、「ターゲットの構成」で、キューからメッセージを送信するバケットを構成します。ステップ15にスキップします。
      • コンパートメント: 必要なバケットを含むコンパートメントを選択します。
      • バケット: データの送信先のバケットの名前を選択します。
      • オブジェクト名の接頭辞: オプションで、接頭辞値を入力します。
      • 追加オプションの表示: このリンクをクリックし、オプションでバッチ・サイズ(MB)およびバッチ時間(ミリ秒)の値を入力します。

      オブジェクト・ストレージ・ターゲットに関する考慮事項:

      • バッチ・ロールオーバーの詳細:

        • バッチ・ロールオーバー・サイズ: 100MB
        • バッチ・ロールオーバー時間: 7分
      • オブジェクト・ストレージに保存されるファイルは、gzipを使用して圧縮されます。

      • モニタリング・ソースから移動されたデータの形式: オブジェクト。コネクタは、メトリック・ネームスペース別のモニタリングからソース・データをパーティション化し、各グループ(ネームスペース)のデータをオブジェクトに書き込みます。各オブジェクト名には次の要素が含まれます。

        <object_name_prefix>/<service_connector_ocid>/<metric_compartment_ocid>/<metric_namespace>/<data_start_timestamp>_<data_end_timestamp>.<sequence_number>.<file_type>.gz

        オブジェクト内では、データ・ポイントの各セットが新しい行に追加されます。

    12. ターゲットとして「ストリーミング」を選択した場合は、「ターゲットの構成」で、キューからメッセージを送信するようにストリームを構成します。
      • コンパートメント: ストリームを含むコンパートメントを選択します。
      • ストリーム: データの送信先のストリームの名前を選択します。

      ストリーミング・ターゲットの考慮事項:

      • プライベート・エンドポイント構成はサポートされていません。ストリーム・プール構成の詳細は、ストリーム・プールの作成を参照してください。
      • Monitoringソースから移動されるデータの形式: 各オブジェクトは個別のメッセージとして書き込まれます。
    13. デフォルト・ポリシーを受け入れるには、各デフォルト・ポリシーに用意されている「作成」リンクを選択します。

      デフォルト・ポリシーは、このコネクタがソース、タスクおよびターゲット・サービスにアクセスするために必要な認可のために提供されます。

      この認可は、このようなデフォルト・ポリシーまたはグループベースのポリシーから取得できます。デフォルト・ポリシーは、コンソールを使用してコネクタを作成または編集する際に必ず提供されます。唯一の例外は、IAMに正確なポリシーがすでに存在する場合です。このケースではデフォルト・ポリシーは提供されません。この認可要件の詳細は、認証と認可を参照してください。

      • デフォルト・ポリシーを受け入れる権限がない場合は、管理者に連絡してください。
      • 自動的に作成されたポリシーは、コネクタが削除されてもそのままです。ベスト・プラクティスとしては、コネクタを削除するときに関連するポリシーを削除してください。

      新しく作成したポリシーを確認するには、関連付けられたビュー・リンクを選択します。

    14. (オプション)コネクタにタグを割り当てます。「拡張オプションの表示」をクリックし、タグ付けフィールドの値を指定します。
      • タグ・ネームスペース: 定義済タグを追加するには、既存のネームスペースを選択します。解放元タグを追加するには、値を空白のままにします。
      • タグ・キー: 定義済タグを追加するには、既存のタグ・キーを選択します。フリーフォーム・タグを追加するには、必要なキー名を入力します。
      • タグ値: 必要なタグ値を入力します。
      • タグの追加: 別のタグを追加する場合にクリックします。
    15. 「作成」をクリックします。
    作成プロセスが開始され、その進行状況が表示されます。完了すると、コネクタの詳細ページが開きます。
  • キュー・ソースを使用してコネクタを作成するには、oci sch service-connector createコマンドと必要なパラメータを使用します:

    oci sch service-connector create [...] --source <queue_json_input>

    JSONファイルを使用してソースの詳細をCLIに渡すには:

    oci sch service-connector create [...] --source file:queue_source.json

    JSONファイルのコンテンツの例:

    {
        "kind": "plugin",
        "pluginName": "QueueSource",
        "configMap": {
            "queueId": "<queue_json_input>"
        }
    }

    CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。

  • CreateServiceConnector操作を実行して、コネクタを作成します。

    キュー・ソースを持つコネクタを作成するには、リクエスト(CreateServiceConnectorDetails)のsourceに、キューを使用するコネクタ・プラグイン(pluginName QueueSource、各キューOCIDはconfigMap)を移入します。例については、PluginSourceDetailsを参照してください。

新しいコネクタによるデータの移動の確認

コネクタを作成したら、データが移動していることを確認します。

  • コネクタのログを有効化して、データ・フローの詳細を取得します。
  • ターゲット・サービスで予想される結果を確認します。

データの移動を確認することで、コネクタに長時間障害が発生した場合に発生する自動非アクティブ化を回避できます。