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「フロー設定を編集」ページの「ファイル形式の設定」の「ファイル名の設定」の「ファイル名にタイムスタンプを追加する」を選択して保存しておきましょう。

TAGS使用タグ一覧