Amazon AppFlowで不正な値をスルーする

この記事はアンテクアドベントカレンダー2022 15日目の記事です

https://adventar.org/calendars/7821

皆さんこんにちは、サーバーサイドエンジニアの大川です。今回のAWSのAppFlowを使ってCSV内の不正な値があるレコードをスルーする設定をしてみようと思います!

今回やること

今回やりたいことはもはや言うまでも無くいつもどおりのS3からS3に対してCSVを送ることです。

CSVを送る過程でageの値に負の値があったレコードはスキップして見ようと思います。
今回使用する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の当該のフローの編集ページまで移動します。

手順3「データフィールドを編集」のページを開きます。

妥当性確認にて「妥当性確認を追加」をクリックします。

下記の様に設定します

  • フィールド名:age
  • 条件:
  • アクション:レコードを無視

内容を確認して保存をクリックします。

実行

設定ができたらフローを実行してみましょう!

フローが正常に実行されたことを確認し、S3のフォルダを確認します。

CSVが格納されたディレクトリに移動し移動先のCSVをダウンロードします。

内容を確認するとidが4のレコードの情報だけスキップされ、CSVが送られていました!これで無事完了です!

  • 送信元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","abcd1234","20"
"2","Hanako","Yamada","abcd1234","22"
"3","Tarou","Satou","abcd1234","24"

おわりに

ある程度の以上値をAppFlowでフィルターすることも簡単にできました!これで送信先に異常なデータが渡ることを防げそうです!

TAGS使用タグ一覧