CSVFileReceiver
No description available
Install / Use
/learn @Project-GAUDI/CSVFileReceiverREADME
CSVFileReceiver
目次
- 概要
- 機能
- Quick Start
- イメージのURL
- 動作保証環境
- Deployment 設定値
- 受信メッセージ
- 送信メッセージ
- Direct Method
- ログ出力内容
- ユースケース
- 補足資料
- Feedback
- LICENSE
概要
CSVFileReceiverは、CSVファイルを監視し、検知したCSVファイルのレコードを送信するAzure IoT edgeモジュールです。
機能
フォルダ監視を行い、監視対象のCSVファイルの作成を検知して、ファイル内の行データをメッセージとして送信する。 メッセージ送信後、作成されたCSVファイルを削除・移動する。 ※ 対応改行コードは、CRLF/LF。

Quick Start
-
Personal Access tokenを作成 (参考: 個人用アクセス トークンを管理する)
-
リポジトリをクローン
git clone https://github.com/Project-GAUDI/CSVFileReceiver.git
-
./src/nuget_template.configの<GITHUB_USERNAME>と<PERSONAL_ACCESS_TOKEN>を自身のユーザー名とPersonal Access tokenに書き換えて、ファイル名をnuget.configに変更してください
-
Dockerイメージをビルド
docker image build -t <IMAGE_NAME> ./CSVFileReceiver/src/
例)
docker image build -t ghcr.io/<YOUR_GITHUB_USERNAME>/csvfilereceiver:<VERSION> ./CSVFileReceiver/src/
- Dockerイメージをコンテナレジストリにプッシュ
docker push <IMAGE_NAME>
例)
docker push ghcr.io/<YOUR_GITHUB_USERNAME>/csvfilereceiver:<VERSION>
- Azure IoT edgeで利用
イメージのURL
準備中 | URL | Description | | --------------------------------------------------------------- | ------------------- |
動作保証環境
| Module Version | IoTEdge | edgeAgent | edgeHub | amd64 verified on | arm64v8 verified on | arm32v7 verified on | | -------------- | ------- | --------- | -------- | ----------------- | ------------------- | ------------------- | | 6.0.2 | 1.5.0<br>1.5.16 | 1.5.6<br>1.5.19 | 1.5.6<br>1.5.19 | ubuntu22.04 | - | - |
Deployment 設定値
環境変数
環境変数の値
| Key | Required | Default | Recommend | Description | | ------------------------- | -------- | ------- | --------- | ---------------------------------------------------------------- | | TransportProtocol | | Amqp | | ModuleClient の接続プロトコル。<br>["Amqp", "Mqtt"] | | LogLevel | | info | | 出力ログレベル。<br>["trace", "debug", "info", "warn", "error"] | | InputPath | 〇 | | | 監視するフォルダパス。<br>監視するフォルダパスが存在しない場合、監視が開始されない。 | | BackupPath | △ | null | | 読み込みに成功したファイルの移動先ファイルパス。<br>info[x].after_processがMoveのインプットのみ有効<br>info[x].after_processにMoveが指定されているものが1つでもあり、この変数が指定されていない場合は監視が開始されない。<br>読み込みに成功したファイルの移動先ファイルパスが存在しない場合、監視が開始されない。 | | ErrorPath | 〇 | | | 読み込みに失敗したファイルの移動先ファイルパス。<br>読み込みに失敗したファイルの移動先ファイルパスが存在しない場合、監視が開始されない。 | | MaximumRetryCount | | 5 | | 作成されたファイルへの最大アクセスリトライ回数。<br>1以上の値を設定。 | | RetryInterval | | 5000 | | ファイルアクセス失敗時のアクセスインターバル(ミリ秒)。 | | IncludeSubFolder | | false | | 監視するフォルダ配下のサブフォルダを監視対象に含めるかどうかのフラグ。<br>["true", "false"] | | SortKey | | Name | | ファイルの読込順序キー。<br>["Name"(ファイル名), "Date"(更新日時)] | | SortOrder | | Asc | | ファイルの読込順序。<br>["Asc"(昇順), "Desc"(降順)] | | WaitTime | | 0 | | メッセージ送信後待機時間(ミリ秒)。 |
Desired Properties
Desired Properties の値
| JSON Key | File Type | Required | Default | Recommend | Description | | ---------------------------------- | --------------------------- | -------- | ------- | --------- | ------------------------------------------------------------------------ | | info[x] | 共通 | 〇 | | | 監視するファイル情報 ([x]は連番の数字)。<br>1件も存在しない場合、監視が開始されない。 | | file_type | 共通 | 〇 | | | 監視するファイルの種別。※file_type=aaa,pdは今後展開予定(テスト対象外)<br>(Standard : "standard", AAA : "aaa", 生開標準 : "pd"のいずれかで指定) | | output_name | 共通 | 〇 | | | 送信するメッセージのアウトプット名。 | | error_output_name | 共通 | | null | | エラー時に送信するメッセージのアウトプット名。 | | filter | 共通 | 〇 | | | 監視ファイルのファイル名パターン (正規表現で指定)。 | | encode | 共通 | 〇 | | | 監視ファイルのエンコードタイプ。<br>(utf-8 , shift-jis) | | delimiter | 共通 | 〇 | | | ファイルの区切り文字。 | | data_start_line | 共通 | 〇 | | | データ部の先頭行番号。1以上の数値で指定。 | | eof_enabled | 共通 | 〇 | | | ファイルの終了を意図するメッセージの送信可否。 | | after_process | 共通 | 〇 | | | ファイル読取後のファイル処理情報。<br>(移動 : "move", 削除 : "delete"のいずれかで指定) | | send_header_enabled | Standard | △ | | | ヘッダ行をメッセージ送信するか。file_type=standard時必須。<br>(送信する:"true",送信しない:"false"のいずれかで指定) | | header_start_line | AAA, 生開標準<br>Standard ※ | △ | | | ヘッダ行の開始行番号。file_type=aaa/pd時必須。<br>※ ファイルタイプがStandardの場合は、「send_header_enabled」がtrueの場合のみ有効 | | he
