예제: S3 Batch Operations 완료 보고서
예제: S3 Batch Operations 완료 보고서
S3 Batch Operations 작업을 만들 때 모든 태스크 또는 실패한 태스크에 대한 완료 보고서를 요청할 수 있어요. 보고서에는 각 태스크의 객체 키 이름과 버전, 상태, 오류 코드, 오류 설명이 담겨요. 실제 보고서가 어떻게 생겼는지 예시로 살펴볼게요.
출처: 문서
본문
S3 Batch Operations 작업을 만들 때 모든 태스크 또는 실패한 태스크에 대한 완료 보고서를 요청할 수 있어요. S3 Batch Operations가 최소한 하나의 태스크를 성공적으로 호출하는 한, 완료·실패·취소된 작업에 대해 보고서를 생성해요.
완료 보고서는 각 태스크에 대한 추가 정보를 포함해요. 객체 키 이름과 버전, 상태, 오류 코드, 오류 설명이 그것이죠. 실패한 각 태스크의 오류 설명은 작업 생성 중 발생하는 권한 같은 문제를 진단하는 데 쓸 수 있어요. Compute checksum 작업의 경우 완료 보고서는 모든 객체의 체크섬 값을 포함해요.
참고 완료 보고서는 항상 Amazon S3 관리형 키(SSE-S3)로 암호화돼요.
최상위 수준의 manifest.json 파일은 각 성공 보고서의 위치와(작업에 실패가 있었다면) 실패 보고서의 위치를 포함해요. 다음 예시를 보세요.
{
"Format": "Report_CSV_20180820",
"ReportCreationDate": "2019-04-05T17:48:39.725Z",
"Results": [
{
"TaskExecutionStatus": "succeeded",
"Bucket": "my-job-reports",
"MD5Checksum": "83b1c4cbe93fc893f54053697e10fd6e",
"Key": "job-f8fb9d89-a3aa-461d-bddc-ea6a1b131955/results/6217b0fab0de85c408b4be96aeaca9b195a7daa5.csv"
},
{
"TaskExecutionStatus": "failed",
"Bucket": "my-job-reports",
"MD5Checksum": "22ee037f3515975f7719699e5c416eaa",
"Key": "job-f8fb9d89-a3aa-461d-bddc-ea6a1b131955/results/b2ddad417e94331e9f37b44f1faf8c7ed5873f2e.csv"
}
],
"ReportSchema": "Bucket, Key, VersionId, TaskStatus, ErrorCode, HTTPStatusCode, ResultMessage"
}
성공한 태스크 보고서 (Succeeded task reports)
성공한 태스크 보고서는 성공한 태스크에 대해 다음을 포함해요.
- Bucket
- Key
- VersionId
- TaskStatus
- ErrorCode
- HTTPStatusCode
- ResultMessage
실패한 태스크 보고서 (Failed task reports)
실패한 태스크 보고서는 모든 실패한 태스크에 대해 다음 정보를 포함해요.
- Bucket
- Key
- VersionId
- TaskStatus
- ErrorCode
- HTTPStatusCode
- ResultMessage
다음 예제에서 Lambda 함수는 Amazon S3 객체를 다른 버킷에 성공적으로 복사했어요. 반환된 Amazon S3 응답은 S3 Batch Operations로 다시 전달되고, 최종 완료 보고서에 기록돼요.
amzn-s3-demo-bucket1,image_17775,,succeeded,200,,"{
u'CopySourceVersionId': 'xVR78haVKlRnurYofbTfYr3ufYbktF8h', u'CopyObjectResult': {
u'LastModified': datetime.datetime(2019, 4, 5, 17, 35, 39, tzinfo=tzlocal()), u'ETag': '""fe66f4390c50f29798f040d7aae72784""'}, 'ResponseMetadata': {
'HTTPStatusCode': 200, 'RetryAttempts': 0, 'HostId': 'nXNaClIMxEJzWNmeMNQV2KpjbaCJLn0OGoXWZpuVOFS/iQYWxb3QtTvzX9SVfx2lA3oTKLwImKw=', 'RequestId': '3ED5852152014362', 'HTTPHeaders': {
'content-length': '234', 'x-amz-id-2': 'nXNaClIMxEJzWNmeMNQV2KpjbaCJLn0OGoXWZpuVOFS/iQYWxb3QtTvzX9SVfx2lA3oTKLwImKw=', 'x-amz-copy-source-version-id': 'xVR78haVKlRnurYofbTfYr3ufYbktF8h', 'server': 'AmazonS3', 'x-amz-request-id': '3ED5852152014362', 'date': 'Fri, 05 Apr 2019 17:35:39 GMT', 'content-type': 'application/xml'}}}"
amzn-s3-demo-bucket1,image_17763,,succeeded,200,,"{
u'CopySourceVersionId': '6HjOUSim4Wj6BTcbxToXW44pSZ.40pwq', u'CopyObjectResult': {
u'LastModified': datetime.datetime(2019, 4, 5, 17, 35, 39, tzinfo=tzlocal()), u'ETag': '""fe66f4390c50f29798f040d7aae72784""'}, 'ResponseMetadata': {
'HTTPStatusCode': 200, 'RetryAttempts': 0, 'HostId': 'GiCZNYr8LHd/Thyk6beTRP96IGZk2sYxujLe13TuuLpq6U2RD3we0YoluuIdm1PRvkMwnEW1aFc=', 'RequestId': '1BC9F5B1B95D7000', 'HTTPHeaders': {
'content-length': '234', 'x-amz-id-2': 'GiCZNYr8LHd/Thyk6beTRP96IGZk2sYxujLe13TuuLpq6U2RD3we0YoluuIdm1PRvkMwnEW1aFc=', 'x-amz-copy-source-version-id': '6HjOUSim4Wj6BTcbxToXW44pSZ.40pwq', 'server': 'AmazonS3', 'x-amz-request-id': '1BC9F5B1B95D7000', 'date': 'Fri, 05 Apr 2019 17:35:39 GMT', 'content-type': 'application/xml'}}}"
amzn-s3-demo-bucket1,image_17860,,succeeded,200,,"{
u'CopySourceVersionId': 'm.MDD0g_QsUnYZ8TBzVFrp.TmjN8PJyX', u'CopyObjectResult': {
u'LastModified': datetime.datetime(2019, 4, 5, 17, 35, 40, tzinfo=tzlocal()), u'ETag': '""fe66f4390c50f29798f040d7aae72784""'}, 'ResponseMetadata': {
'HTTPStatusCode': 200, 'RetryAttempts': 0, 'HostId': 'F9ooZOgpE5g9sNgBZxjdiPHqB4+0DNWgj3qbsir+sKai4fv7rQEcF2fBN1VeeFc2WH45a9ygb2g=', 'RequestId': '8D9CA56A56813DF3', 'HTTPHeaders': {
'content-length': '234', 'x-amz-id-2': 'F9ooZOgpE5g9sNgBZxjdiPHqB4+0DNWgj3qbsir+sKai4fv7rQEcF2fBN1VeeFc2WH45a9ygb2g=', 'x-amz-copy-source-version-id': 'm.MDD0g_QsUnYZ8TBzVFrp.TmjN8PJyX', 'server': 'AmazonS3', 'x-amz-request-id': '8D9CA56A56813DF3', 'date': 'Fri, 05 Apr 2019 17:35:40 GMT', 'content-type': 'application/xml'}}}"
다음 예제 보고서는 AWS Lambda 함수가 시간 초과(timeout)되어 실패가 실패 임계값을 초과한 경우를 보여줘요. 이 태스크는 PermanentFailure로 표시돼요.
amzn-s3-demo-bucket1,image_14975,,failed,200,PermanentFailure,"Lambda returned function error: {
""errorMessage"":""2019-04-05T17:35:21.155Z 2845ca0d-38d9-4c4b-abcf-379dc749c452 Task timed out after 3.00 seconds""}"
amzn-s3-demo-bucket1,image_15897,,failed,200,PermanentFailure,"Lambda returned function error: {
""errorMessage"":""2019-04-05T17:35:29.610Z 2d0a330b-de9b-425f-b511-29232fde5fe4 Task timed out after 3.00 seconds""}"
amzn-s3-demo-bucket1,image_14819,,failed,200,PermanentFailure,"Lambda returned function error: {
""errorMessage"":""2019-04-05T17:35:22.362Z fcf5efde-74d4-4e6d-b37a-c7f18827f551 Task timed out after 3.00 seconds""}"
amzn-s3-demo-bucket1,image_15930,,failed,200,PermanentFailure,"Lambda returned function error: {
""errorMessage"":""2019-04-05T17:35:29.809Z 3dd5b57c-4a4a-48aa-8a35-cbf027b7957e Task timed out after 3.00 seconds""}"
amzn-s3-demo-bucket1,image_17644,,failed,200,PermanentFailure,"Lambda returned function error: {
""errorMessage"":""2019-04-05T17:35:46.025Z 10a764e4-2b26-4d8c-9056-1e1072b4723f Task timed out after 3.00 seconds""}"
amzn-s3-demo-bucket1,image_17398,,failed,200,PermanentFailure,"Lambda returned function error: {
""errorMessage"":""2019-04-05T17:35:44.661Z 1e306352-4c54-4eba-aee8-4d02f8c0235c Task timed out after 3.00 seconds""}"
다음 예제에서 Compute checksum 작업은 정지 상태(at rest)의 업로드된 객체에 대한 체크섬을 성공적으로 계산했어요. 반환된 Amazon S3 응답은 S3 Batch Operations로 전달되고, 최종 완료 보고서에 기록돼요.
amzn-s3-demo-bucket1,s3-standard-1mb-test-object,,succeeded,200,,"{
""checksum_base64"":""bS9TOQ\u003d\u003d"",""etag"":""3c3c1813042989094598e4b57ecbdc82"",""checksumAlgorithm"":""CRC32"",""checksumType"":""FULL_OBJECT"",""checksum_hex"":""6D2F5339""}"
다음 예제 보고서는 Compute checksum 작업이 실패해 실패한 태스크 보고서가 생긴 경우를 보여줘요.
amzn-s3-demo-bucket1,image_14975,,failed,200,PermanentFailure,"error details: {
""failureMessage"":""Task 2845ca0d-38d9-4c4b-abcf-379dc749c452 SSE-C encryption type is not supported for this operation", ""errorCode"": ""400""}"
amzn-s3-demo-bucket1,image_14975,,failed,200,PermanentFailure,"error details: {
""failureMessage"":""Task 2845ca0d-38d9-4c4b-abcf-379dc749c452 Key not found", ""errorCode"": ""404""}"
amzn-s3-demo-bucket1,image_14975,,failed,200,PermanentFailure,"error details: {
""failureMessage"":""Task 2845ca0d-38d9-4c4b-abcf-379dc749c452 Internal server error, please retry", ""errorCode"": ""500""}"