Amazon AppFlowでCSVの内容を一部変更してみる part3

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

https://adventar.org/calendars/7821

皆さんこんにちは、サーバーサイドエンジニアの大川です。今回はAWSのAppFlowを使ってCSVのキー内容を合体して出力してみようと思います!

注意点

Amazon AppFlowはフローを実行するたびに料金が発生します。

ご注意ください。また詳しい内容は下記の「注意点」をご確認ください!

今回やること

今回やりたいことは恒例のS3からS3に対してCSVを送ることです。

CSVを送る過程でfirst_nameとlast_nameの2つの値を合体してnameとして送ってみようと思います。
今回使用する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「データフィールドを編集」のページを開きます。

下記のフィールドにチェックをつけます。

  • first_name
  • last_name

「式を追加」をクリックします。

「式を選択」で「連結」を選択します。

「新しい送信先フィールドを入力」に「name」と入力し「式を使用してフィールドをマッピングする」をクリックし式を保存します。

フローそのものの設定も保存しましょう。

ちなみに設定が完了したあとのマッピングフィールドの内容は下記の様になりました。

実行

早速当該のフローを実行してみましょう!

フローが正常に完了したことを確認してS3のフォルダを確認します。

新規作成されたディレクトリに入りファイルを選択しダウンロードします。

内容を確認すると既存の情報にプラスして、nameの値が追加されていました!今回も無事終了です!

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

おわりに

まさかこんなに簡単にCSVの内容を連結する事ができると思っていませんでした、、!複雑なことはできませんがある程度ならアプリケーションではなくAppFlowに式を記載することで対応できそうです、、!

TAGS使用タグ一覧