ストリーミング・ソースとのコネクタの作成

コネクタ・ハブでコネクタを作成し、ストリーミング・サービスからターゲット・サービスにストリーム・データを転送します。

ストリーミング・サービスの詳細は、「ストリーミング」を参照してください。

ストリーミング・ソースおよび(オプションの)ファンクション・タスクで定義されたコネクタでは、ファンクション、Log Analytics、オブジェクト・ストレージおよびストリーミングのターゲットがサポートされます。通知ターゲットは、ファンクション・タスクが使用されていない場合にのみサポートされます。

コネクタ・ハブ・ワークフローの例は、「コネクタ・ハブの概要」を参照してください。モニタリングをソースとして使用するコネクタの例は、シナリオ: オブジェクト・ストレージへのメトリックの送信を参照してください。

ノート

  • ストリーム入力スキーマについては、メッセージ参照を参照してください。
  • ストリーミング・ソースを使用するNotificationsターゲットの場合、すべてのメッセージはRAW JSON BLOBとして送信されます。

開始する前に

コネクタのストリーム・プールおよびストリームを選択するには、ストリーム・プールおよびストリームを読み取るための認可が必要です。IAMポリシー(コネクタ・ハブの保護)を参照してください。

保持期間: ストリーミング・ソース

コネクタ・ハブのストリーミング・ソースの保持期間は顧客定義です。ストリーミング・リソースの制限 を参照してください。搬送の詳細は、「搬送詳細」を参照してください。

保存期間とともに、ストリーミング・ソースの読取り位置によって、ストリーム内のデータの移動を開始する場所が決まります。ソース接続を指定するときに、読取り位置を指定します。

Streamsのプライベート・エンドポイントの前提条件

ノート

プライベート・エンドポイントを含むストリームを使用するように既存のコネクタを改装することはできません。ストリーム・ソースまたはターゲットに選択したストリーム・プールがパブリックの場合、プライベートに変更できず、プライベート・ストリームを参照するようにコネクタを更新できません。別のプライベート・ストリームを使用するようにソースまたはターゲットを変更するか、ストリーミング以外のソースまたはターゲットを使用するには、必要なソースおよびターゲットでコネクタを再作成します。別のプライベートストリームの必要性の例として、別のストリームプールに移動されたストリームがあります。その場合は、移動したストリームを使用してコネクタを再作成します。必要のないストリーム・ソースまたはターゲットを持つ古いコネクタを非アクティブ化または削除してください。

プライベート・エンドポイント構成は、ソース・ストリームおよびターゲット・ストリームでサポートされています。プライベート・エンドポイントを使用するストリームにアクセスするための前提条件を次に示します。

  • 次のポリシーに従って権限が付与されていることを確認します。
    allow group <group-name> to manage virtual-network-family in compartment id <compartment-ocid>
      where any {request.operation='CreatePrivateEndpoint',
        request.operation='UpdatePrivateEndpoint',
        request.operation='DeletePrivateEndpoint',
        request.operation='ChangePrivateEndpointCompartment',
        request.operation='EnableReverseConnection',
        request.operation='ModifyReverseConnection',
        request.operation='DisableReverseConnection' 
    }
    allow group <group-name> to read stream-family in compartment id <compartment-ocid>
    
  • ベスト・セキュリティ・プラクティスは、プライベート・ストリームとそのコネクタを同じテナンシに配置することです。

コネクタの作成後、コネクタがそのプライベート・エンドポイントにアクセスできるようにイングレスおよびエグレス・ルールを構成します。プライベート・エンドポイント: イングレスおよびエグレス・ルールの構成を参照してください。

  • 「コネクタ」リスト・ページで、「コネクタの作成」を選択します。リスト・ページの検索に関するヘルプが必要な場合は、コネクタのリストを参照してください。

    ノート

    構成にポリシーが必要な場合は、デフォルトのポリシーが提供されます。デフォルト・ポリシーを受け入れるには、指定された「ポリシーの作成」リンクを選択します。

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

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

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

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

    1. 基本的なコネクタ情報

    識別情報およびオプションのログとタグを入力します。

    • コネクタ名: 新しいコネクタのわかりやすい名前とオプションの説明を入力します。機密情報を入力しないでください。
    • コンパートメントの選択: 新しいコネクタを格納するコンパートメントを選択します。
    • 説明(オプション): コネクタの説明を入力します。
    • ログの有効化(オプション): 新しいコネクタのサービス・ログを有効にし、次の情報を指定する場合に選択します。
      • カテゴリ (デフォルト値: 実行ログ)
      • コンパートメント: コネクタのサービス・ログを格納するコンパートメントを選択します。
      • ログ・グループ: サービス・ログを格納するログ・グループ(コンパートメント別)を選択します。新しいログ・グループを作成するには、「新規グループの作成」を選択し、名前を入力します。
      • Log name (オプション): ログの名前を入力します。
      • 拡張オプションの表示:
        • レガシー・アーカイブ・ログの有効化(オプション): レガシー・ログ・アーカイブでは、コンパートメントにバケットが自動的に作成され、ログのコピーがアーカイブされます。
        • ログの保存(オプション): サービス・ログを保持する期間を指定します(デフォルト: 30日)。
      • タグ(オプション): コネクタにタグを追加するには、表示されるオプションを選択します。
        • タグ
        • タグの追加(「拡張オプションの表示」の下)

        リソースを作成するアクセス許可がある場合、そのリソースにフリーフォーム・タグを適用するアクセス許可もあります。定義済タグを適用するには、タグネームスペースを使用する権限を持つ必要があります。タグ付けの詳細は、リソース・タグを参照してください。 タグを適用するかどうかわからない場合は、このオプションをスキップするか、管理者に問い合せてください。後でタグを適用できます。

    「次へ」を選択します。

    2. コネクタ・ソースの構成

    データの転送元となるコネクタのソース・ストリームを指定します。

    • ソースの選択: 「ストリーミング」を選択します。
    • ソースの構成: ソース・ストリームを選択します。
      ノート

      プライベート・エンドポイント構成がサポートされています。プライベート・エンドポイントを使用するには、ストリームのプライベート・エンドポイントの前提条件を参照してください。
      • コンパートメント: 必要なストリームを含むコンパートメントを選択します。
      • ストリーム・プール: 必要なストリームを含むストリーム・プールを選択します。
        ノート

        コネクタのストリーム・プールおよびストリームを選択するには、ストリーム・プールおよびストリームを読み取る権限が必要です。IAMポリシー(コネクタ・ハブの保護)を参照してください。
      • ストリーム: データを受信するストリームの名前を選択します。
      • 読取り位置: ストリームの読取りを開始するカーソル位置を指定します。
        • 最新: コネクタの作成後にパブリッシュされたメッセージの読取りを開始します。
          • この構成で新しいコネクタを初めて実行すると、コネクタの作成時間からデータが移動します。最初の実行が失敗した場合(ポリシーが欠落している場合など)、解決後、コネクタはコネクタの作成時間からデータを移動するか、作成時間が保存期間外の場合はストリーム内で使用可能な最も古いデータを移動します。たとえば、保存期間が2時間のストリームについて午前10時に作成されたコネクタを考えてみます。失敗した実行が午前11時に解決された場合、コネクタは午前10時からデータを移動します。失敗した実行が午後1時に解決された場合、コネクタはストリーム内で使用可能な最も古いデータを移動します。
          • その後、ストリームの次の位置からデータを移動します。後で実行が失敗した場合、解決後、コネクタはストリームの次の位置またはストリーム内の最も古い使用可能なデータから、ストリームの保存期間に応じてデータを移動します。
        • Trim Horizon: ストリーム内で使用可能な最も古いメッセージからの読取りを開始します。
          • この構成で新しいコネクタを初めて実行すると、ストリーム内で使用可能な最も古いデータからデータが移動します。最初の実行が失敗した場合(ポリシーの欠落など)、解決後、コネクタはストリームの保存期間に関係なく、ストリーム内で使用可能な最も古いデータを移動します。
          • その後、ストリームの次の位置からデータを移動します。後で実行が失敗した場合、解決後、コネクタはストリームの次の位置またはストリーム内の最も古い使用可能なデータから、ストリームの保存期間に応じてデータを移動します。

    「次へ」を選択します。

    3. コネクタ・タスクの構成

    オプションで、ファンクション・サービスを使用してソースからのデータを処理するようにファンクション・タスクを構成します。

    • コンパートメント: 必要なファンクションを含むコンパートメントを選択します。
    • ファンクション・アプリケーション: 必要なファンクションが含まれるファンクション・アプリケーションの名前を選択します。
    • ファンクション: ソースから取得したデータの処理に使用するファンクションの名前を選択します。

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

      • 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を参照してください。
    • 関数タスクはスカラー関数に制限されます。

    「次へ」を選択します。

    4. コネクタ・ターゲットの構成

    データの送信先のターゲット・サービスを指定します。

    • ターゲット: データの転送先のサービスを選択します。
      • ファンクション: ストリーム・データをファンクションに送信します。
      • ログ・アナリティクス: ストリーム・データをログ・グループに送信します。
      • 通知: ストリーム・データをトピックに送信します。通知は、ファンクション・タスクが定義されていない場合にのみサポートされます。
      • オブジェクト・ストレージ: ストリーム・データをバケットに送信します。
      • ストリーミング: ストリーム・データをストリームに送信します。
    • ターゲットの構成: 選択したターゲットの値を入力します。
      ファンクション
      • コンパートメント: 必要なファンクションを含むコンパートメントを選択します。
      • ファンクション・アプリケーション: 必要なファンクションを含むファンクション・アプリケーションの名前を選択します。
      • ファンクション: データの送信先のファンクションの名前を選択します。
      • 追加オプションの表示(オプション): このリンクを選択し、関数に送信されるデータのバッチごとに制限を指定します。手動設定を使用するには、バッチ・サイズ制限(KBまたはメッセージ数)およびバッチ時間制限(秒)の値を指定します。

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

      ファンクションのターゲットに関する考慮事項:

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

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

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

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

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

      • Notificationsのターゲットの最大メッセージ・サイズは128KBです。最大サイズを超えるメッセージは削除されます。
      • SMSメッセージには、特定のコネクタ構成に対する予期しない結果が表示されます。この問題は、指定されたコネクタ構成でSMSサブスクリプションを含むトピックに限定されます。詳細は、「単一の通知に対する複数のSMSメッセージ」を参照してください。
      オブジェクト・ストレージ
      • コンパートメント: 目的のバケットを含むコンパートメントを選択します。
      • バケット: データの送信先のバケットの名前を選択します。
      • オブジェクト名接頭辞: オプションで接頭辞値を入力します。
      • バッチ・オプションの表示: このリンクを選択し、オプションでバッチ・サイズ(MB)およびバッチ時間(ミリ秒)の値を入力します。フィールドには、「バッチ・サイズ」および「バッチ時間」というラベルが付いています。

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

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

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

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

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

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

      ストリーミング
      ノート

      コネクタのストリーム・プールおよびストリームを選択するには、ストリーム・プールおよびストリームを読み取るための認可が必要です。IAMポリシー(コネクタ・ハブの保護)を参照してください。プライベート・エンドポイント構成がサポートされています。プライベート・エンドポイントを使用するには、Streamsのプライベート・エンドポイントの前提条件を参照してください。
      • コンパートメント: 必要なストリームを含むコンパートメントを選択します。
      • ストリーム: データの送信先のストリームの名前を選択します。

      ストリーミング・ターゲットに関する考慮事項:

      • モニタリング・ソースから移動されたデータの形式: 各オブジェクトは個別のメッセージとして書き込まれます。

    「次へ」を選択します。

    コネクタ・プレビュー

    コネクタ構成を確認し、「作成」を選択します。

    作成プロセスが開始され、その進行状況が表示されます。完了すると、コネクタの詳細ページが開きます。

  • ストリーミング・ソースでコネクタを作成するには、oci sch service-connector createコマンドと必要なパラメータを使用します:

    oci sch service-connector create --display-name "<display_name>" --compartment-id <compartment_OCID> --source [<stream_source_in_JSON>] --target [<target_in_JSON>]

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

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

    ストリーミング・ソースを含むコネクタを作成するには、リクエスト(CreateServiceConnectorDetails)のsourceにストリーミングの詳細を移入します。例については、StreamingSourceDetailsを参照してください。

プライベート・エンドポイント: イングレスおよびエグレス・ルールの構成

プライベート・エンドポイントを使用するストリームでコネクタを作成した場合は、そのプライベート・エンドポイントにコネクタがアクセスできるようにイングレスおよびエグレス・ルールを構成します。

  • 構成用のIPアドレスの取得:
  • プライマリ・トラフィックの許可: 次の構成を使用して、イングレス・ルールをNSGまたはセキュリティ・リストに追加します。

    コンソール :

    • ステートレス: いいえ
    • ソース: rceTrafficIpAddress (例: 10.0.0.249/32)
    • IPプロトコル: TCP
    • ソース・ポート範囲: すべて
    • 宛先ポート範囲: すべて

    API - リクエスト内のルールの例:

    {
      "protocol": "6",
      "source": "10.0.0.249/32"
    }
  • 次の構成でセキュリティ・リストにエグレス・ルールを追加します。

    コンソール :

    • ステートレス: いいえ
    • ソース: streamPoolIpAddress (例: 10.0.0.20/32)
    • IPプロトコル: TCP
    • ソース・ポート範囲: すべて
    • 宛先ポート範囲: すべて

    API - リクエスト内のルールの例:

    {
      "destination": "10.0.0.20/32",
      "protocol": "6"
    }
ノート

プライベート・エンドポイントを含むストリームを使用するように既存のコネクタを改装することはできません。ストリーム・ソースまたはターゲットに選択したストリーム・プールがパブリックの場合、プライベートに変更できず、プライベート・ストリームを参照するようにコネクタを更新できません。別のプライベート・ストリームを使用するようにソースまたはターゲットを変更するか、ストリーミング以外のソースまたはターゲットを使用するには、必要なソースおよびターゲットでコネクタを再作成します。別のプライベートストリームの必要性の例として、別のストリームプールに移動されたストリームがあります。その場合は、移動したストリームを使用してコネクタを再作成します。必要のないストリーム・ソースまたはターゲットを持つ古いコネクタを非アクティブ化または削除してください。

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

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

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

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

プライベート・ストリーム: プライベート・エンドポイントを含むストリームを使用するように既存のコネクタを改装することはできません。ストリーム・ソースまたはターゲットに選択したストリーム・プールがパブリックの場合、プライベートに変更できず、プライベート・ストリームを参照するようにコネクタを更新できません。別のプライベート・ストリームを使用するようにソースまたはターゲットを変更するか、ストリーミング以外のソースまたはターゲットを使用するには、必要なソースおよびターゲットでコネクタを再作成します。別のプライベートストリームの必要性の例として、別のストリームプールに移動されたストリームがあります。その場合は、移動したストリームを使用してコネクタを再作成します。必要のないストリーム・ソースまたはターゲットを持つ古いコネクタを非アクティブ化または削除してください。