쿠키 기본 설정 선택

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

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

Step Functions 워크플로에서 파라미터 조작

포커스 모드
Step Functions 워크플로에서 파라미터 조작 - AWS Step Functions

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

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

InputPath, ParametersResultSelector 필드는 JSON이 워크플로를 통해 이동할 때 JSON을 조작하는 방법을 제공합니다. InputPath는 경로를 사용하여 JSON 표기법을 필터링해 전달되는 입력을 제한할 수 있습니다(JSONPath 경로 사용 참조). Parameters 필드를 사용하면 정적 값을 사용하거나 경로를 사용하여 입력에서 선택한 항목을 사용하여 키-값 페어 모음을 전달할 수 있습니다.

ResultSelector 필드는 ResultPath가 적용되기 전의 상태 결과를 조작할 수 있는 방법을 제공합니다.

AWS Step Functions 는 먼저 InputPath 필드를 적용한 다음 Parameters 필드를 적용합니다. 우선 InputPath를 사용하여 원시 입력을 필터링한 다음 Parameters를 적용하여 입력을 추가로 조작하거나 새 값을 추가할 수 있습니다. 그런 다음 ResultSelector 필드를 사용하여 ResultPath가 적용되기 전의 상태 출력을 조작할 수 있습니다.

InputPath

InputPath를 사용하여 상태 입력의 부분을 선택합니다.

예를 들어, 상태에 대한 입력에 다음이 포함된다고 가정합니다.

{ "comment": "Example for InputPath.", "dataset1": { "val1": 1, "val2": 2, "val3": 3 }, "dataset2": { "val1": "a", "val2": "b", "val3": "c" } }

InputPath를 적용할 수 있습니다.

"InputPath": "$.dataset2",

위의 InputPath를 통해 입력으로 전달되는 JSON은 다음과 같습니다.

{ "val1": "a", "val2": "b", "val3": "c" }
참고

경로는 값의 모음을 출력할 수 있습니다. 다음 예제를 살펴보세요.

{ "a": [1, 2, 3, 4] }

경로 $.a[0:2]를 적용하는 경우 결과는 다음과 같습니다.

[ 1, 2 ]

파라미터

이 섹션에서는 파라미터 필드를 사용할 수 있는 다양한 방법을 설명합니다.

키-값 페어

Parameters 필드를 사용하여 입력으로 전달되는 키-값 페어 컬렉션을 만듭니다. 각 값은 상태 시스템 정의에 포함하거나 경로가 있는 입력 또는 컨텍스트 객체에서 선택한 정적 값일 수 있습니다. path를 사용하여 값을 선택한 키-값 페어의 경우 키 이름이 .$ 기호로 끝나야 합니다.

예를 들어 다음과 같은 입력을 제공한다고 가정합니다.

{ "comment": "Example for Parameters.", "product": { "details": { "color": "blue", "size": "small", "material": "cotton" }, "availability": "in stock", "sku": "2317", "cost": "$23" } }

정보의 일부를 선택하기 위해 상태 머신 정의에 이러한 파라미터를 지정할 수 있습니다.

"Parameters": { "comment": "Selecting what I care about.", "MyDetails": { "size.$": "$.product.details.size", "exists.$": "$.product.availability", "StaticValue": "foo" } },

이전 입력 및 Parameters 필드를 지정하면 다음과 같은 JSON이 전달됩니다.

{ "comment": "Selecting what I care about.", "MyDetails": { "size": "small", "exists": "in stock", "StaticValue": "foo" } },

입력 외에도 컨텍스트 객체라고 하는 특수 JSON 객체에 액세스할 수 있습니다. 컨텍스트 객체에는 상태 시스템 실행에 대한 정보가 포함됩니다. Step Functions의 컨텍스트 객체에서 실행 데이터 액세스 을 참조하세요.

연결된 리소스

또한 Parameters 필드는 정보를 연결된 리소스로 전달할 수 있습니다. 예를 들어 작업 상태가 AWS Batch 작업을 오케스트레이션하는 경우 관련 API 파라미터를 해당 서비스의 API 작업에 직접 전달할 수 있습니다. 자세한 내용은 다음을 참조하세요.

Amazon S3

상태 간에 전달하는 Lambda 함수 데이터가 262,144바이트를 초과하는 경우 Amazon S3를 사용하여 데이터를 저장하고 다음 방법 중 하나를 구현하는 것이 좋습니다.

또는 구현을 조정하여 실행에서 더 작은 용량의 페이로드를 전달할 수 있습니다.

ResultSelector

ResultSelector 필드를 사용하여 ResultPath가 적용되기 전의 상태 결과를 조작합니다. 이 ResultSelector 필드를 사용하면 키 값 페어 컬렉션을 만들 수 있습니다. 여기서 값은 정적이거나 상태 결과에서 선택한 값입니다. ResultSelector 필드를 사용하면 ResultPath 필드에 전달하려는 상태 결과 부분을 선택할 수 있습니다.

참고

ResultPath 필드를 사용하여 ResultSelector 필드 출력을 원래 입력에 추가할 수 있습니다.

ResultSelector는 다음 상태의 선택적 필드입니다.

예를 들어 Step Functions 서비스 통합에서는 결과의 페이로드 외에 메타데이터를 반환합니다. ResultSelector는 결과의 일부를 선택하고 ResultPath를 사용하여 상태 입력과 병합할 수 있습니다. 이 예제에서는 resourceTypeClusterId만 선택하고 이를 Amazon EMR createCluster.sync의 상태 입력과 병합하려고 합니다. 다음을 예로 들어보겠습니다.

{ "resourceType": "elasticmapreduce", "resource": "createCluster.sync", "output": { "SdkHttpMetadata": { "HttpHeaders": { "Content-Length": "1112", "Content-Type": "application/x-amz-JSON-1.1", "Date": "Mon, 25 Nov 2019 19:41:29 GMT", "x-amzn-RequestId": "1234-5678-9012" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { "RequestId": "1234-5678-9012" }, "ClusterId": "AKIAIOSFODNN7EXAMPLE" } }

그런 다음 ResultSelector를 사용하여 resourceTypeClusterId를 선택할 수 있습니다.

"Create Cluster": { "Type": "Task", "Resource": "arn:aws:states:::elasticmapreduce:createCluster.sync", "Parameters": { <some parameters> }, "ResultSelector": { "ClusterId.$": "$.output.ClusterId", "ResourceType.$": "$.resourceType" }, "ResultPath": "$.EMROutput", "Next": "Next Step" }

지정된 입력에서 ResultSelector를 사용하면 다음이 생성됩니다.

{ "OtherDataFromInput": {}, "EMROutput": { "ClusterId": "AKIAIOSFODNN7EXAMPLE", "ResourceType": "elasticmapreduce", } }

배열의 배열 평면화

상태 시스템의 병렬 워크플로 상태 또는 Map 워크플로 상태 상태에서 배열의 배열을 반환하는 경우 ResultSelector 필드를 사용하여 배열을 평면 배열로 변환할 수 있습니다. Parallel 또는 Map 상태 정의 내에 이 필드를 포함하여 이러한 상태의 결과를 조작할 수 있습니다.

배열을 평면화하려면 다음 예제와 같이 [*] ResultSelector 필드에 구문을 사용합니다.

"ResultSelector": { "flattenArray.$": "$[*][*]" }

배열을 평면화하는 방법을 보여주는 예제는 다음 자습서의 3단계를 참조하세요.

이 페이지에서

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