Amazon AppFlow でCSVの内容を一部変更してみる part1
この記事はアンテクアドベントカレンダー2022の10日目の記事です
https://adventar.org/calendars/7821
皆さんこんにちは、サーバーサイドエンジニアの大川です。今回はAWSのAppFlowを使ってCSVの内容を一部マスクしてみようと思います!
注意点
「Amazon AppFlowを触ってみた」の記事でも紹介しましたが、Amazon AppFlowはフローを実行するたびに料金が発生します。
ご注意ください。また詳しい内容は下記の「注意点」をご確認ください!
今回やること
今回やりたいことは前回の「Amazon AppFlowmを触ってみた」の時と同様にS3からS3に対してCSVを送ります。
ただし、その過程でpasswordのフィールドをマスクしてみようと思います!
今回使用するCSVは前回と同じ下記です。
id,first_name,last_name,password,age,
1,Tarou,Yamada,abcd1234,20,
2,Hanako,Yamada,abcd1234,22,
3,Tarou,Satou,abcd1234,24,
4,Hanako,Satou,abcd1234,16,
前提
前回の記事を参考にS3バケット間でCSVのやり取りができる状態になっていることを前提とします。
方法
AWSにログインしAppFlowのページを開きます。
既にフローが作成されているはずなので左サイドバーから「フロー」を選んでクリックします。
フローの一覧が表示されるはずなので、前回作成したtest-flowにチェックを入れ「編集」をクリックします。
「次へ」をクリックしてゆき、手順3「データフィールドを編集」のページまで遷移します。
データフィールドを編集のページで下記の作業をしてマスクする値を設定します。
- マッピングされたフィールドのpasswordにチェックをつけ「値を変更」をクリック。
- 「変更を選択」部分をクリックし、「値をマスクする」を選択
- 「すべての値をマスクする」を選択し「保存」をクリック
更にフローそのものの設定も保存しましょう。
実行
それでは実際に設定を修正したフローを実行してみましょう!
フローの「フローを実行」をクリックしてフローを実行してみます。
フローの実行が完了したらout側のバケットを見に行きます。
新しいフォルダが作成されていますのでそちらに入ります。
設置されたファイルでダウンロードします。
内容を確認するとマスクされた値が出力されていました!無事完了です!
- 送信元CSV
id,first_name,last_name,password,age,
1,Tarou,Yamada,abcd1234,20,
2,Hanako,Yamada,abcd1234,22,
3,Tarou,Satou,abcd1234,24,
4,Hanako,Satou,abcd1234,16,
- 送信先CSV
"id","first_name","last_name","password","age"
"1","Tarou","Yamada","********","20"
"2","Hanako","Yamada","********","22"
"3","Tarou","Satou","********","24"
"4","Hanako","Satou","********","16"
おわりに
今回はAppFlowでのデータのマスクを実施してみました!ノーコードでちょっとクリックするだけですぐにデータがマスクできるのは便利だなーと思いました、、!
また、格納先CSVがわかりにくいので「フローの設定」から手順2「フロー設定を編集」ページの「ファイル形式の設定」の「ファイル名の設定」の「ファイル名にタイムスタンプを追加する」を選択して保存しておきましょう。