#author("2023-06-08T16:19:20+09:00","","") [[Smile:D]] Apache NiFiを使用して設定ファイルに記載されたURLのファイルを取得するためには、以下の手順を実行する必要があります。 +NiFiのフローファイルを開き、新しいプロセッサを追加します(例:InvokeHTTP)。 +プロセッサを構成するために、プロセッサのプロパティを設定します。 --HTTP Method: ファイルを取得するために使用するHTTPメソッド(GETなど)を指定します。 --Remote URL: 取得したいファイルのURLを指定します。これは設定ファイルから取得される値となります。 --Output Directory: 取得したファイルを保存するディレクトリを指定します。 +必要に応じて、その他のプロセッサのプロパティを構成します。例えば、リクエストヘッダーを追加する場合など。 +フローファイルを保存してNiFiを起動します。 これにより、NiFiは指定されたURLからファイルを取得し、指定された出力ディレクトリに保存します。設定ファイルからURLを取得する方法については、NiFiのバージョンや使用しているプラグインに依存します。一般的な方法としては、NiFiのプロセッサ間で値を渡すための属性やフローファイルのパラメータを使用することができます。 ---- 設定ファイルから取得した値をRemote URLに指定するには、NiFiのプロパティを使用して値を渡す方法があります。以下に例を示します。 +NiFiのフローファイルを開き、対象のプロセッサ(例:InvokeHTTP)を選択します。 +プロセッサのプロパティを開き、Remote URLの値を以下のように設定します。 --${property名}: プロパティ名を設定します。例えば、${url}とします。 +プロパティの値を設定するために、NiFiのグローバルプロパティを設定します。 --NiFiのツールバーから「Controller Settings」をクリックします。 --「Add Property」をクリックして新しいプロパティを追加します。 --プロパティ名には先ほど指定した${url}を入力し、値には設定ファイルから取得したURLの値を入力します。例えば、http://example.com/files/sample.txtなどです。 +フローファイルを保存して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