파라미터를 서비스 API에 전달 - AWS Step Functions

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

파라미터를 서비스 API에 전달

Task 상태의 Parameters 필드를 사용하여 서비스 API로 전달할 파라미터를 제어합니다.

Parameters 필드 내에서는 API 작업에 배열 파라미터 복수형을 사용해야 합니다. 예를 들어 Amazon EC2와 통합을 위해 DescribeSnapshots API 작업의 필터 필드를 사용하는 경우 필드를 Filters로 정의해야 합니다. 복수형을 사용하지 않으면 Step Functions에서 다음과 같은 오류를 반환합니다.

The field Filter is not supported by Step Functions.

정적 JSON을 파라미터로 전달

상태 머신 정의에 JSON 객체를 직접 포함시켜 파라미터로 리소스에 전달할 수 있습니다.

예를 들어 AWS Batch에 대한 SubmitJob API의 RetryStrategy 파라미터를 설정하려면 파라미터에 다음을 포함시킬 수 있습니다.

"RetryStrategy": { "attempts": 5 }

정적 JSON이 포함된 여러 개의 파라미터를 전달할 수 있습니다. 보다 완벽한 예제로서 다음은 myTopic이라는 Amazon SNS 주제에 게시하는 작업의 사양에 대한 ResourceParameters 필드입니다.

"Resource": "arn:aws:states:::sns:publish", "Parameters": { "TopicArn": "arn:aws:sns:us-east-2:123456789012:myTopic", "Message": "test message", "MessageAttributes": { "my attribute no 1": { "DataType": "String", "StringValue": "value of my attribute no 1" }, "my attribute no 2": { "DataType": "String", "StringValue": "value of my attribute no 2" } } },

Path를 사용하여 상태 입력을 파라미터로 전달

Path를 사용하여 상태 입력의 일부분을 파라미터로 전달할 수 있습니다. 경로는 $로 시작하는 문자열이며 JSON 텍스트 내에서 구성 요소를 식별하는 데 사용됩니다. Step Functions 경로는 JsonPath 구문을 사용합니다.

파라미터에서 경로를 사용하도록 지정하려면 파라미터 이름을 .$로 끝냅니다. 예를 들어 상태 입력에서 message라는 노드 내의 텍스트를 포함한 경우 경로를 사용하여 해당 텍스트를 파라미터로 전달할 수 있습니다.

다음 상태 입력을 고려하세요.

{ "comment": "A message in the state input", "input": { "message": "foo", "otherInfo": "bar" }, "data": "example" }

message라는 노드의 값을 파라미터로 전달하려면 다음 구문을 지정합니다.

"Parameters": {"myMessage.$": "$.input.message"},

그러면 Step Functions에서 foo 값을 파라미터로 전달합니다.

Step Functions에서 파라미터 사용에 대한 자세한 내용은 다음을 참조하세요.

파라미터로서 Pass 컨텍스트 객체 노드

정적 콘텐츠 및 정적 입력의 노드 외에도 컨텍스트 객체의 노드를 파라미터로 전달할 수 있습니다. 컨텍스트 객체는 상태 머신 실행 중에 존재하는 동적 JSON 데이터입니다. 여기에는 상태 머신과 현재 실행에 대한 정보가 포함됩니다. 상태 정의의 "Parameters" 필드에서 경로를 사용하여 컨텍스트 객체에 액세스할 수 있습니다.

컨텍스트 객체와 "Parameters" 필드에서 해당 데이터에 액세스하는 방법에 대한 자세한 내용은 다음을 참조하십시오.