2017-03-27 14 views
1

AWSデータパイプラインを使用していくつかのプレフィックスで始まるすべてのS3キーを削除したいとします。 私はAWSシェルアクティビティを使用しています。AWSデータパイプラインを使用してS3ファイルを削除する

これらは私が出力フォルダで2017年3月19日から始まるすべてのS3のキーを削除したい引数

"scriptUri": "https://s3.amazonaws.com/my_s3_bucket/hive/removeExitingS3.sh", 
    "scriptArgument": "s3://my_s3_bucket/output/2017-03-19", 

です。これを行うには何が命ずるべきですか?

私はこれが動作しない.shファイルに

sudo yum -y upgrade aws-cli 
    aws s3 rm $1 --recursive 

を、このコマンドを試してみました。

サンプルファイルが

s3://my_s3_bucket/output/2017-03-19/1.txt 
s3://my_s3_bucket/output/2017-03-19/2.txt 
s3://my_s3_bucket/output/2017-03-19_3.txt 

EDITです:

日(2017年3月19日)は、ダイナミックであり、これは#{format(@scheduledStartTime,"YYYY-MM-dd")}の出力です。だから、効果的

"scriptArgument": "s3://my_s3_bucket/output/{format(@scheduledStartTime,"YYYY-MM-dd")}" 

答えて

1

EDIT

"scriptArgument": "s3://my_s3_bucket/output/" 

aws s3 rm $1 --recursive --exclude "*" --include "2017-03-19*" --include "2017-03-19/*" 

を試してみてください:、日付が動的PARAMあるので、シェルコマンドの活動への二scriptArgumentとして渡し

aws s3 rm $1 --recursive --exclude "*" --include "$2*" --include "$2/*" 
+0

日付は動的で、#{format(@scheduledStartTime、 "YYYY-MM-dd")}と同じです。 –

+0

追加の 'scriptArgument'として渡し、スクリプト内で' $ 2'と呼んでください。 – franklinsijo

+0

だから、aws s3 rm $ 1 - 再帰--exclude "*" - "$ 2 *"またはaws s3 rm $ 1 - 再帰--exclude "*" --include $ 2 * –

関連する問題