Smile:D

Apache NiFiを使用して設定ファイルに記載されたURLのファイルを取得するためには、以下の手順を実行する必要があります。

  1. NiFiのフローファイルを開き、新しいプロセッサを追加します(例:InvokeHTTP)。
  2. プロセッサを構成するために、プロセッサのプロパティを設定します。
    • HTTP Method: ファイルを取得するために使用するHTTPメソッド(GETなど)を指定します。
    • Remote URL: 取得したいファイルのURLを指定します。これは設定ファイルから取得される値となります。
    • Output Directory: 取得したファイルを保存するディレクトリを指定します。
  3. 必要に応じて、その他のプロセッサのプロパティを構成します。例えば、リクエストヘッダーを追加する場合など。
  4. フローファイルを保存してNiFiを起動します。

これにより、NiFiは指定されたURLからファイルを取得し、指定された出力ディレクトリに保存します。設定ファイルからURLを取得する方法については、NiFiのバージョンや使用しているプラグインに依存します。一般的な方法としては、NiFiのプロセッサ間で値を渡すための属性やフローファイルのパラメータを使用することができます。


設定ファイルから取得した値をRemote URLに指定するには、NiFiのプロパティを使用して値を渡す方法があります。以下に例を示します。

  1. NiFiのフローファイルを開き、対象のプロセッサ(例:InvokeHTTP)を選択します。
  2. プロセッサのプロパティを開き、Remote URLの値を以下のように設定します。
    • ${property名}: プロパティ名を設定します。例えば、${url}とします。
  3. プロパティの値を設定するために、NiFiのグローバルプロパティを設定します。
    • NiFiのツールバーから「Controller Settings」をクリックします。
    • 「Add Property」をクリックして新しいプロパティを追加します。
    • プロパティ名には先ほど指定した${url}を入力し、値には設定ファイルから取得したURLの値を入力します。例えば、http://example.com/files/sample.txtなどです。
  4. フローファイルを保存してNiFiを起動します。

#!/bin/bash

# NiFiのホストとポートを指定します
NIFI_HOST="localhost"
NIFI_PORT="8080"

# 設定するプロパティ名と値を指定します
PROPERTY_NAME="url"
PROPERTY_VALUE="http://example.com/files/sample.txt"

# NiFiのREST APIエンドポイントURLを構築します
API_URL="http://${NIFI_HOST}:${NIFI_PORT}/nifi-api/controller- services/{service-id}/properties"

# サービスIDを取得するために、NiFiのプロパティエンドポイントを呼び出します
SERVICE_NAME="InvokeHTTP"  # 対象のプロセッサ名を指定します
SERVICE_ID=$(curl -sX GET "${API_URL}" | jq --arg SERVICE_NAME "$SERVICE_NAME" 
'.controllerServices[] | select(.component.name == $SERVICE_NAME) | .id')

# プロパティ値を設定するために、NiFiのプロパティエンドポイントを呼び出します
curl -sX PUT "${API_URL}" \
  -H "Content-Type: application/json" \
  -d '{"properties":{"'"$PROPERTY_NAME"'":"'"$PROPERTY_VALUE"'"}}' \
  | jq
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS