2017-09-05 5 views
0

我々持っている私の仕事で次のワークフロー:直接AWS S3のターゲットバケットにJavaの操作を実行

ワークスペースにAWS S3バケットからデータをダウンロードします。

aws s3 cp --only-show-errors s3://bucket1 

解凍データ

unzip -q "/workspace/folder1/data.zip" -d "/workspace/folder2" 

javaコマンドを実行する

java -Xmx1024m -jar param1 etc... 

同期バックS3のターゲットバケットにアーカイブ

aws s3 sync --include #{archive.location} s3://bucket 

あなたは解凍、S3バケットからのダウンロードデータを見ることができるように、バックS3にデータコピーにいくつかのJavaオペレーションを実行すると、多くの時間がかかりますし、リソース。

したがって、私たちはs3ターゲットバケットで直接解凍し、そこでJava操作を実行することを計画しています。 s3バケットでjava操作を直接実行することは可能でしょうか?はいの場合、いくつかの洞察力を提供していただけますか?

答えて

0

S3でコードを実行することはできません。

3

「S3でJava」を実行することはできませんが、JavaコードをAWSラムダ関数に移動してすべての作業を「クラウド」で行うことができます。ローカルマシンにダウンロードし、処理して再アップロードしてください。

要件の詳細を知らないうちに、新しいファイルが特定の場所にPUTを取得するたびに呼び出されるS3通知要求を設定することを検討し、その新しいファイルの詳細で呼び出されるAWSラムダ関数ラムダが結果と異なるバケット/場所に結果を出力するようにします。

私は似たようなことをしましたが(javaではありませんが)、ファイルを処理するための堅実な方法を見つけました。

0

S3はオブジェクトストアであり、実行環境を提供しません。ファイルを変更するには、ダウンロードして修正してS3にアップロードする必要があります。

ファイルの操作を行う必要がある場合は、AWS Elastic File Systemを使用してEC2インスタンスにマウントし、必要に応じて操作を実行できます。

関連する問題