

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

# Step Functions의 작업 상태에서 워크플로 실행 시작
<a name="concepts-nested-workflows"></a>

AWS Step Functions는 상태 머신의 `Task` 상태에서 직접 워크플로 실행을 시작할 수 있습니다. 이를 통해 워크플로를 더 작은 상태 머신으로 나누고 이러한 다른 상태 머신의 실행을 시작할 수 있습니다. 이러한 새로운 워크플로 실행을 시작하면 다음을 수행할 수 있습니다.
+ 상위 수준의 워크플로를 하위 수준의 작업별 워크플로우와 분리합니다.
+ 별도의 상태 머신을 여러 번 호출하여 반복적인 요소를 피하십시오.
+ 빠른 개발을 위해 모듈식 재사용 가능한 워크플로 라이브러리를 만듭니다.
+ 복잡성을 줄이고 상태 머신을보다 쉽게 편집하고 문제를 해결할 수 있습니다.

Step Functions는 자체 API를 [통합 서비스](integrate-services.md)로 직접적으로 호출하여 이러한 워크플로 실행을 시작할 수 있습니다. 해당 `StartExecution` 상태에서 `Task` API 작업을 호출하고 필요한 매개 변수를 전달하면 됩니다. 모든 [서비스 통합 패턴](connect-to-resource.md)을 사용하여 Step Functions API를 직접적으로 호출할 수 있습니다.

**작은 정보**  
중첩된 워크플로 예제를 배포하려면 * AWS Step Functions 워크숍*의 [비용 최적화](https://catalog.workshops.aws/stepfunctions/nested-workflow)를 참조하세요.

상태 머신의 새 실행을 시작하려면 다음 예제와 유사한 `Task` 상태를 사용합니다.

```
{  
   "Type":"Task",
   "Resource":"arn:aws:states:::states:startExecution",
   "Parameters":{  
      "StateMachineArn":"arn:aws:states:region:account-id:stateMachine:HelloWorld",
      "Input":{  
         "Comment":"Hello world!"
      },
   },
   "Retry":[  
      {  
        "ErrorEquals":[  
            "StepFunctions.ExecutionLimitExceeded"
        ]
      }
   ],
   "End":true
}
```

이 `Task` 상태는 `HelloWorld` 상태 머신의 새로운 실행을 시작하고 JSON 주석을 입력으로 전달합니다.

**참고**  
`StartExecution` API 작업 할당량은 시작할 수 있는 실행 수를 제한할 수 있습니다. `Retry`의 `StepFunctions.ExecutionLimitExceeded`를 사용하여 실행이 시작되었는지 확인하십시오. 다음 항목을 참조하십시오.  
[API 작업 제한과 관련된 할당량](service-quotas.md#service-limits-api-action-throttling-general)
[Step Functions 워크플로의 오류 처리](concepts-error-handling.md)

## 워크플로 실행을 연결합니다
<a name="nested-execution-startid"></a>

시작된 워크플로 실행을 시작된 실행과 연결하려면 [컨텍스트 객체](input-output-contextobject.md)의 실행 ID를 실행 입력으로 전달하세요. 실행 중인 `Task` 상태에서 컨텍스트 객체의 ID에 액세스할 수 있습니다. 매개 변수 이름에 `.$`를 추가하고 `$$.Execution.Id`를 사용하여 컨텍스트 객체에서 ID를 참조하여 실행 ID를 전달하세요.

```
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
```

실행을 시작할 때 `AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID`로 이름이 지정된 특수 매개 변수를 사용할 수 있습니다. 포함된 경우 이 연결은 Step Functions 콘솔의 **단계 세부 정보** 섹션에 링크를 제공합니다. 제공되면 실행 시작부터 시작된 워크플로 실행까지 워크플로 실행을 쉽게 추적할 수 있습니다. 이전 예제를 사용하여 다음과 같이 실행 ID를 `HelloWorld` 상태 머신의 시작된 실행과 연결합니다.

```
{  
   "Type":"Task",
   "Resource":"arn:aws:states:::states:startExecution",
   "Parameters":{  
      "StateMachineArn":"arn:aws:states:region:account-id:stateMachine:HelloWorld",
      "Input": {
        "Comment": "Hello world!",
        "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
       }
   },
   "End":true
}
```

자세한 내용은 다음 자료를 참조하세요.
+ [ 서비스 통합](integrate-services.md)
+ [Step Functions의 서비스 API에 파라미터 전달](connect-parameters.md)
+ [컨텍스트 객체 액세스](input-output-contextobject.md#contextobject-access)
+ [AWS Step Functions](connect-stepfunctions.md)