쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

ResultWriter(맵)

포커스 모드
ResultWriter(맵) - AWS Step Functions

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ResultWriter 필드는 Distributed Map 상태로 시작된 하위 워크플로 실행의 출력 결과에 대한 옵션을 제공하는 JSON 객체입니다. 출력 결과를 내보내기로 선택한 경우 출력 결과에 대해 Amazon S3 위치와 함께 다양한 형식 지정 옵션을 지정하여 저장할 수 있습니다. Step Functions는 기본적으로 이러한 결과를 내보내지 않습니다.

ResultWriter 필드의 내용

ResultWriter 필드에는 다음 하위 필드가 포함됩니다. 필드 선택에 따라 출력의 형식 지정 방법과 Amazon S3로 내보낼지 여부가 결정됩니다.

ResultWriter

다음 세부 정보를 지정하는 JSON 객체:

  • Resource

    Step Functions가 실행 결과를 내보내기 위해 호출하는 Amazon S3 API 작업입니다.

  • Parameters

    실행 출력을 저장하는 Amazon S3 버킷 이름과 접두사를 지정하는 JSON 객체입니다.

  • WriterConfig

    이 필드를 사용하면 다음 옵션을 구성할 수 있습니다.

    • Transformation

      • NONE - 워크플로 메타데이터 외에도 변경되지 않은 하위 워크플로 실행의 출력을 반환합니다. 하위 워크플로 실행 결과를 Amazon S3로 내보낼 때 기본값WriterConfig이며 지정되지 않습니다.

      • COMPACT - 하위 워크플로 실행의 출력을 반환합니다. ResultWriter가 지정되지 않은 경우 기본값입니다.

      • FLATTEN - 하위 워크플로 실행의 출력을 반환합니다. 하위 워크플로 실행이 배열을 반환하는 경우이 옵션은 결과를 상태 출력에 반환하거나 결과를 Amazon S3 객체에 쓰기 전에 배열을 평면화합니다.

        참고

        하위 워크플로 실행이 실패하면 Step Functions는 실행 결과를 변경 없이 반환합니다. 결과는를 Transformation로 설정한 것과 동일합니다NONE.

    • OutputType

      • JSON - 결과를 JSON 배열로 포맷합니다.

      • JSONL - 결과를 JSON 라인으로 포맷합니다.

필수 필드 조합

ResultWriter 필드는 비워둘 수 없습니다. 이러한 하위 필드 세트 중 하나를 지정해야 합니다.

  • WriterConfig - 결과를 Amazon S3에 저장하지 않고 형식이 지정된 출력을 미리 봅니다.

  • ResourceParameters - 추가 형식 지정 없이 결과를 Amazon S3에 저장합니다.

  • 출력 형식을 지정하고 Amazon S3에 저장하려면 WriterConfig, ResourceParameters의 세 필드를 모두 사용합니다.

예제 구성 및 변환 출력

다음 주제에서는에 대해 가능한 구성 설정ResultWriter과 다양한 변환 옵션에서 처리된 결과의 예를 보여줍니다.

다음 예제에서는 WriterConfig, Resources 및 세 필드의 가능한 조합이 포함된 구성을 보여줍니다Parameters.

WriterConfig

이 예제에서는 WriterConfig 필드에 지정된 출력 형식과 변환을 사용하여 상태 출력이 미리 보기로 표시되는 방법을 구성합니다. Amazon S3 버킷 사양을 제공했을 존재하지 않는 ResourceParameters 필드는 상태 출력 리소스를 의미합니다. 결과는 다음 상태로 전달됩니다.

"ResultWriter": { "WriterConfig": { "Transformation": "FLATTEN", "OutputType": "JSON" } }
리소스파라미터

이 예제에서는 존재하지 않는 WriterConfig 필드가 지정했을 추가 형식 지정 및 변환 없이 상태 출력을 지정된 Amazon S3 버킷으로 내보냅니다.

"ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" }
3개 필드 모두: WriterConfig, 리소스파라미터

이 예제에서는 WriterConfig 필드의 사양에 따라 상태 출력을 포맷합니다. 또한 ResourceParameters 필드의 사양에 따라 Amazon S3 버킷으로 내보냅니다.

"ResultWriter": { "WriterConfig": { "Transformation": "FLATTEN", "OutputType": "JSON" }, "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } }

다음 예제에서는 WriterConfig, Resources 및 세 필드의 가능한 조합이 포함된 구성을 보여줍니다Parameters.

WriterConfig

이 예제에서는 WriterConfig 필드에 지정된 출력 형식과 변환을 사용하여 상태 출력이 미리 보기로 표시되는 방법을 구성합니다. Amazon S3 버킷 사양을 제공했을 존재하지 않는 ResourceParameters 필드는 상태 출력 리소스를 의미합니다. 결과는 다음 상태로 전달됩니다.

"ResultWriter": { "WriterConfig": { "Transformation": "FLATTEN", "OutputType": "JSON" } }
리소스파라미터

이 예제에서는 존재하지 않는 WriterConfig 필드가 지정했을 추가 형식 지정 및 변환 없이 상태 출력을 지정된 Amazon S3 버킷으로 내보냅니다.

"ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" }
3개 필드 모두: WriterConfig, 리소스파라미터

이 예제에서는 WriterConfig 필드의 사양에 따라 상태 출력을 포맷합니다. 또한 ResourceParameters 필드의 사양에 따라 Amazon S3 버킷으로 내보냅니다.

"ResultWriter": { "WriterConfig": { "Transformation": "FLATTEN", "OutputType": "JSON" }, "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } }

이 예제에서는 각 하위 워크플로 실행이 객체 배열인 출력을 반환한다고 가정합니다.

[ { "customer_id": "145538", "order_id": "100000" }, { "customer_id": "898037", "order_id": "100001" } ]

이 예제에서는의 OutputType를 사용하여 다양한 Transformation 값에 대한 형식이 지정된 출력을 보여줍니다JSON.

변환 없음

변환을 사용할 때 처리된 결과의 예입니다FLATTEN. 출력은 변경되지 않으며 워크플로 메타데이터가 포함됩니다.

[ { "ExecutionArn": "arn:aws:states:us-east-1:123456789012:execution:orderProcessing/getOrders:da4e9fc7-abab-3b27-9a77-a277e463b709", "Input": ..., "InputDetails": { "Included": true }, "Name": "da4e9fc7-abab-3b27-9a77-a277e463b709", "Output": "[{\"customer_id\":\"145538\",\"order_id\":\"100000\"},{\"customer_id\":\"898037\",\"order_id\":\"100001\"}]", "OutputDetails": { "Included": true }, "RedriveCount": 0, "RedriveStatus": "NOT_REDRIVABLE", "RedriveStatusReason": "Execution is SUCCEEDED and cannot be redriven", "StartDate": "2025-02-04T01:49:50.099Z", "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:orderProcessing/getOrders", "Status": "SUCCEEDED", "StopDate": "2025-02-04T01:49:50.163Z" }, ... { "ExecutionArn": "arn:aws:states:us-east-1:123456789012:execution:orderProcessing/getOrders:f43a56f7-d21e-3fe9-a40c-9b9b8d0adf5a", "Input": ..., "InputDetails": { "Included": true }, "Name": "f43a56f7-d21e-3fe9-a40c-9b9b8d0adf5a", "Output": "[{\"customer_id\":\"169881\",\"order_id\":\"100005\"},{\"customer_id\":\"797471\",\"order_id\":\"100006\"}]", "OutputDetails": { "Included": true }, "RedriveCount": 0, "RedriveStatus": "NOT_REDRIVABLE", "RedriveStatusReason": "Execution is SUCCEEDED and cannot be redriven", "StartDate": "2025-02-04T01:49:50.135Z", "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:orderProcessing/getOrders", "Status": "SUCCEEDED", "StopDate": "2025-02-04T01:49:50.227Z" } ]
변환 COMPACT

변환을 사용할 때 처리된 결과의 예입니다COMPACT. 이는 원본 배열 구조와 하위 워크플로 실행의 결합된 출력입니다.

[ [ { "customer_id": "145538", "order_id": "100000" }, { "customer_id": "898037", "order_id": "100001" } ], ..., [ { "customer_id": "169881", "order_id": "100005" }, { "customer_id": "797471", "order_id": "100006" } ] ]
변환 FLATTEN

변환을 사용할 때 처리된 결과의 예입니다FLATTEN. 하위 워크플로 실행 배열의 결합된 출력은 하나의 배열로 평면화되어 있습니다.

[ { "customer_id": "145538", "order_id": "100000" }, { "customer_id": "898037", "order_id": "100001" }, ... { "customer_id": "169881", "order_id": "100005" }, { "customer_id": "797471", "order_id": "100006" } ]

이 예제에서는 각 하위 워크플로 실행이 객체 배열인 출력을 반환한다고 가정합니다.

[ { "customer_id": "145538", "order_id": "100000" }, { "customer_id": "898037", "order_id": "100001" } ]

이 예제에서는의 OutputType를 사용하여 다양한 Transformation 값에 대한 형식이 지정된 출력을 보여줍니다JSON.

변환 없음

변환을 사용할 때 처리된 결과의 예입니다FLATTEN. 출력은 변경되지 않으며 워크플로 메타데이터가 포함됩니다.

[ { "ExecutionArn": "arn:aws:states:us-east-1:123456789012:execution:orderProcessing/getOrders:da4e9fc7-abab-3b27-9a77-a277e463b709", "Input": ..., "InputDetails": { "Included": true }, "Name": "da4e9fc7-abab-3b27-9a77-a277e463b709", "Output": "[{\"customer_id\":\"145538\",\"order_id\":\"100000\"},{\"customer_id\":\"898037\",\"order_id\":\"100001\"}]", "OutputDetails": { "Included": true }, "RedriveCount": 0, "RedriveStatus": "NOT_REDRIVABLE", "RedriveStatusReason": "Execution is SUCCEEDED and cannot be redriven", "StartDate": "2025-02-04T01:49:50.099Z", "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:orderProcessing/getOrders", "Status": "SUCCEEDED", "StopDate": "2025-02-04T01:49:50.163Z" }, ... { "ExecutionArn": "arn:aws:states:us-east-1:123456789012:execution:orderProcessing/getOrders:f43a56f7-d21e-3fe9-a40c-9b9b8d0adf5a", "Input": ..., "InputDetails": { "Included": true }, "Name": "f43a56f7-d21e-3fe9-a40c-9b9b8d0adf5a", "Output": "[{\"customer_id\":\"169881\",\"order_id\":\"100005\"},{\"customer_id\":\"797471\",\"order_id\":\"100006\"}]", "OutputDetails": { "Included": true }, "RedriveCount": 0, "RedriveStatus": "NOT_REDRIVABLE", "RedriveStatusReason": "Execution is SUCCEEDED and cannot be redriven", "StartDate": "2025-02-04T01:49:50.135Z", "StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:orderProcessing/getOrders", "Status": "SUCCEEDED", "StopDate": "2025-02-04T01:49:50.227Z" } ]
변환 COMPACT

변환을 사용할 때 처리된 결과의 예입니다COMPACT. 이는 원본 배열 구조와 하위 워크플로 실행의 결합된 출력입니다.

[ [ { "customer_id": "145538", "order_id": "100000" }, { "customer_id": "898037", "order_id": "100001" } ], ..., [ { "customer_id": "169881", "order_id": "100005" }, { "customer_id": "797471", "order_id": "100006" } ] ]
변환 FLATTEN

변환을 사용할 때 처리된 결과의 예입니다FLATTEN. 하위 워크플로 실행 배열의 결합된 출력은 하나의 배열로 평면화되어 있습니다.

[ { "customer_id": "145538", "order_id": "100000" }, { "customer_id": "898037", "order_id": "100001" }, ... { "customer_id": "169881", "order_id": "100005" }, { "customer_id": "797471", "order_id": "100006" } ]

Amazon S3로 내보내기

중요

맵 실행의 결과를 내보내는 데 사용하는 Amazon S3 버킷이 AWS 리전 상태 머신 AWS 계정 과 동일한 및 아래에 있는지 확인합니다. 그렇지 않으면 상태 시스템 실행이 실패하고 States.ResultWriterFailed 오류가 표시됩니다.

결과를 Amazon S3 버킷으로 내보내는 것은 출력 페이로드 크기가 256KiB를 초과하는 경우에 유용합니다. Step Functions는 실행 입력 및 출력, ARN, 실행 상태와 같은 모든 하위 워크플로 실행 데이터를 통합합니다. 그런 다음 같은 상태의 실행을 지정된 Amazon S3 위치에 있는 각 파일로 내보냅니다.

다음 예제에서는 JSONPath를 사용하여 하위 워크플로 실행 결과를 내보내기 Parameters 위해를 사용하여 ResultWriter 필드의 구문을 보여줍니다. 이 예제에서는 csvProcessJobs 접두사 내 amzn-s3-demo-destination-bucket이라는 버킷에 결과를 저장합니다.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } } }

JSONata 상태의 경우 Parameters가 로 대체됩니다Arguments.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Arguments": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } } }
작은 정보

Workflow Studio에서 Amazon S3로 Map 상태 결과 내보내기를 선택하여 하위 워크플로 실행 결과를 내보낼 수 있습니다. 그런 다음 결과를 내보내려는 Amazon S3 버킷의 이름과 접두사를 입력합니다.

Step Functions에는 결과를 내보내려는 버킷과 폴더에 액세스할 수 있는 적절한 권한이 필요합니다. 필요한 IAM 정책에 대한 자세한 내용은 ResultWriter에 대한 IAM 정책 섹션을 참조하세요.

하위 워크플로 실행 결과를 내보내면 Distributed Map 상태 실행에서 맵 실행 ARN과 Amazon S3 내보내기 위치에 대한 데이터를 다음 형식으로 반환합니다.

{ "MapRunArn": "arn:aws:states:us-east-2:123456789012:mapRun:csvProcess/Map:ad9b5f27-090b-3ac6-9beb-243cd77144a7", "ResultWriterDetails": { "Bucket": "amzn-s3-demo-destination-bucket", "Key": "csvProcessJobs/ad9b5f27-090b-3ac6-9beb-243cd77144a7/manifest.json" } }

Step Functions는 동일한 상태의 실행을 해당 파일로 각각 내보냅니다. 예를 들어 하위 워크플로 실행 실행에서 성공이 500개, 실패가 200개인 경우 Step Functions는 지정된 Amazon S3 위치에 성공 및 실패 결과에 대한 파일 2개를 만듭니다. 이 예제에서 성공 결과 파일에는 성공 결과 500개가 포함되고 실패 결과 파일에는 실패 결과 200개가 포함됩니다.

지정된 실행 시도의 경우 Step Functions는 실행 출력에 따라 지정된 Amazon S3 위치에 다음 파일을 만듭니다.

  • manifest.json - 내보내기 위치, 맵 실행 ARN, 결과 파일에 대한 정보와 같은 맵 실행 메타데이터를 포함합니다.

    맵 실행을 redriven한 경우 manifest.json 파일에는 맵 실행의 모든 시도에서 성공한 모든 하위 워크플로 실행에 대한 참조가 포함됩니다. 하지만 이 파일에는 특정 redrive의 실패 및 보류 중인 실행에 대한 참조가 포함됩니다.

  • SUCCEEDED_n.json - 모든 성공적인 하위 워크플로 실행에 대한 통합 데이터를 포함합니다. n은 파일의 인덱스 번호를 나타냅니다. 인덱스 번호는 0부터 시작합니다. 예: SUCCEEDED_1.json.

  • FAILED_n.json - 모든 실패, 제한 시간 및 중단된 하위 워크플로 실행에 대한 통합 데이터를 포함합니다. 실패한 실행을 복구하려면 이 파일을 사용합니다. n은 파일 인덱스를 나타냅니다. 인덱스 번호는 0부터 시작합니다. 예: FAILED_1.json.

  • PENDING_n.json - 맵 실행이 실패하거나 중단되어 시작되지 않은 모든 하위 워크플로 실행에 대한 통합 데이터를 포함합니다. n은 파일 인덱스를 나타냅니다. 인덱스 번호는 0부터 시작합니다. 예: PENDING_1.json.

Step Functions는 개별 결과 파일을 최대 5GB까지 지원합니다. 파일 크기가 5GB를 초과하면 Step Functions에서 나머지 실행 결과를 기록할 다른 파일을 만들고 파일 이름에 인덱스 번호를 추가합니다. 예를 들어 SUCCEEDED_0.json 파일 크기가 5GB를 초과하면 Step Functions에서 SUCCEEDED_1.json 파일을 만들어 나머지 결과를 기록합니다.

하위 워크플로 실행 결과를 내보내도록 지정하지 않은 경우 상태 시스템 실행은 다음 예제와 같이 하위 워크플로 실행 결과 배열을 반환합니다.

[ { "statusCode": 200, "inputReceived": { "show_id": "s1", "release_year": "2020", "rating": "PG-13", "type": "Movie" } }, { "statusCode": 200, "inputReceived": { "show_id": "s2", "release_year": "2021", "rating": "TV-MA", "type": "TV Show" } }, ... ]
참고

반환된 출력 크기가 256KiB를 초과하면 상태 시스템 실행이 실패하고 States.DataLimitExceeded 오류가 반환됩니다.

ResultWriter에 대한 IAM 정책

Step Functions 콘솔을 사용하여 워크플로를 만들면 Step Functions에서 워크플로 정의의 리소스를 기반으로 IAM 정책을 자동으로 생성할 수 있습니다. 이러한 정책에는 상태 시스템 역할에서 Distributed Map 상태에 대한 StartExecution API 작업을 간접적으로 호출하도록 허용하는 데 필요한 최소 권한이 포함되어 있습니다. 또한 이러한 정책에는 Amazon S3 버킷 및 객체와 Lambda 함수와 같은 AWS 리소스에 액세스하는 데 필요한 최소 권한이 포함됩니다. IAM 정책에 필요한 권한만 포함하는 것이 좋습니다. 예를 들어 워크플로에 분산 모드의 Map 상태가 포함된 경우 정책 범위를 데이터 세트가 포함된 특정 Amazon S3 버킷과 폴더로 좁힙니다.

중요

Distributed Map 상태 입력에 있는 기존 키-값 페어에 대한 참조 경로를 사용하여 Amazon S3 버킷과 객체 또는 접두사를 지정하는 경우 워크플로에 대한 IAM 정책을 업데이트해야 합니다. 정책 범위를 런타임 시 경로에서 확인하는 버킷과 객체 이름으로 좁히세요.

다음 IAM 정책 예제에서는 PutObject API 작업을 사용하여 하위 워크플로 실행 결과를 Amazon S3 버킷의 csvJobs 폴더에 쓰는 데 필요한 최소 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*" ] } ] }

하위 워크플로 실행 결과를 작성하는 Amazon S3 버킷이 AWS Key Management Service (AWS KMS) 키를 사용하여 암호화된 경우 IAM 정책에 필요한 AWS KMS 권한을 포함해야 합니다. 자세한 내용은 AWS KMS key 암호화된 Amazon S3 버킷에 대한 IAM 권한 단원을 참조하십시오.

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.