第三者がS3バケットにログファイルの毎日のアップロードを送信します。私は、DataPipelineを使用してawkと少し異なるフォーマットに変換しようとしています。新しいファイルをS3に戻し、元のファイルを別の場所に移動して、明日も同じファイルを処理しないようにします。AWS Datapipelineの完了後に処理されたソースファイルを削除します
これを行うにはきれいな方法がありますか?私のループが途中で処理を死亡した場合、それらの以前の - 私は、ループの各反復の上に置き、ソースファイルを移動するには、AWSに、CLIツールを使用することができますが、それはフレーク状思わ
#!/usr/bin/env bash
set -eu -o pipefail
aws s3 cp s3://example/processor/transform.awk /tmp/transform.awk
for f in "${INPUT1_STAGING_DIR}"/*; do
basename=${f//+(*\/|.*)}
unzip -p "$f" | awk -f /tmp/transform.awk | gzip > ${OUTPUT1_STAGING_DIR}/$basename.tsv.gz
done
:現在、私のシェルコマンドのようになりますファイルが失われる可能性があります。
(2)を使用すると、OUTPUT1_STAGING_DIRを使用して実行終了時にファイルをS3に同期させることに心配しています。パイプラインが途中で消滅してもファイルが失われる可能性があります。または、OUTPUT1_STAGING_DIRが実際のS3マウントであり、そこに書かれたものはすべて宛先S3バケットで同期可能ですか? –