2017-09-05 2 views
0

우리가 내 직장에서 다음과 같은 워크 플로우 :직접 AWS S3 대상 버킷에 자바 작업을 실행

가 작업 영역에 AWS S3 버킷에서 데이터를 다운로드 :

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

의 압축을 풀고 데이터

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

자바 명령 실행

java -Xmx1024m -jar param1 etc... 

동기화하면 S3 버킷에서 다운로드 데이터, 압축 해제 데이터를 다시 S3에 복사에 대한 몇 가지 자바 작업을 실행하는 것을 볼 수 있듯이 다시 S3 대상 버킷

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

에 아카이브가 많은 시간을 요하고 자원.

따라서 우리는 s3 대상 버킷에서 직접 압축을 풀고 거기에서 java 작업을 실행할 계획입니다. s3 버킷에서 Java 작업을 직접 실행할 수 있습니까? 그렇다면 통찰력을 제공해 주시겠습니까?

답변

0

No.

S3에서 코드를 실행할 수 없습니다.

3

'S3에서'java를 실행할 수 없지만 자바 코드를 AWS 람다 함수로 옮기면 모든 작업을 '클라우드'에서 수행 할 수 있습니다. 즉, 로컬 컴퓨터로 다운로드, 처리 및 다시 업로드하십시오.

요구 사항에 대한 세부 정보가 없어도 새 파일이 특정 위치에 도착할 때마다 호출되는 S3 알림 요청을 설정하는 것이 좋습니다. 새 파일의 세부 정보로 호출되는 AWS 람다 함수 , 그리고 나서 Lambda가 결과를 다른 버킷/위치에 결과를 출력하도록합니다.

나는 (java가 아니더라도) 비슷한 일을했고 파일 처리의 견고한 방법을 발견했다.

0

S3는 실행 환경을 제공하지 않는 객체 저장소입니다. 파일을 수정하려면 다운로드하여 수정하고 S3에 다시 업로드해야합니다.

파일에 대한 작업을 수행해야하는 경우 AWS Elastic File System을 사용하여 EC2 인스턴스에 탑재하고 필요에 따라 작업을 수행 할 수 있습니다.

관련 문제