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

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

Step API Functions에서 서비스에 파라미터 전달하기

Task상태의 Parameters 필드를 사용하여 서비스에 전달되는 매개변수를 제어할 수 API 있습니다.

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

The field Filter is not supported by Step Functions.

정적을 JSON 파라미터로 전달하십시오.

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

예를 들어, for의 RetryStrategy 파라미터를 설정하려면 SubmitJob API AWS Batch매개 변수에 다음을 포함할 수 있습니다.

"RetryStrategy": { "attempts": 5 }

static을 사용하여 여러 매개 변수를 전달할 수도 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 변수로 지정된 노드 값을 전달하려면 다음 구문을 지정하십시오. myMessage

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

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

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

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

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

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