

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

# Step Functions API(권장)를 사용하여 장기 실행 워크플로 계속 진행
<a name="tutorial-continue-new"></a>

AWS Step Functions 는 유한한 기간과 단계 수로 워크플로를 실행하도록 설계되었습니다. 표준 워크플로 실행의 최대 기간은 1년이며 25,000개의 이벤트가 있습니다([Step Functions 서비스 할당량](service-quotas.md) 참조).

장기 실행의 경우 `Task` 상태에서 새 워크플로 실행을 시작하여 하드 할당량에 도달하지 않도록 할 수 있습니다. 워크플로를 새 실행에서 진행 중인 작업을 계속하는 더 작은 상태 머신으로 나눠야 합니다.

새 워크플로 실행을 시작하려면 `Task` 상태에서 `StartExecution` API 작업을 직접적으로 호출하고 필요한 파라미터를 전달합니다.

Step Functions는 자체 API를 [통합 서비스](integrate-services.md)로 직접적으로 호출하여 워크플로 실행을 시작할 수 있습니다. 장기 실행의 서비스 할당량이 초과되지 않도록 하려면 이 방식을 사용하는 것이 좋습니다.

## 1단계: 장기 실행 상태 머신 만들기
<a name="use-sfn-api-create-called-state-machine"></a>

다른 상태 머신의 `Task` 상태에서 시작하려는 장기 실행 상태 머신을 만듭니다. 이 자습서에서는 [Lambda 함수를 사용하는 상태 머신](tutorial-creating-lambda-state-machine.md)을 사용합니다.

**참고**  
나중에 사용할 수 있도록 이 상태 머신의 이름과 Amazon 리소스 이름을 텍스트 파일에 복사해야 합니다.

## 2단계: Step Functions API 작업을 직접적으로 호출할 상태 머신 만들기
<a name="use-sfn-api-create-caller-state-machine"></a>

**`Task` 상태에서 워크플로 실행 시작하기**

1. [AWS Step Functions 콘솔](https://console.aws.amazon.com/states/home)을 열고 메뉴에서 **상태 머신**을 선택한 다음 **상태 머신 생성**을 선택합니다.

1. **새로 생성**을 선택합니다.

1. 상태 머신의 이름을 지정한 다음 **계속**을 선택하여 Workflow Studio에서 상태 머신을 편집합니다.

1. **작업** 탭에서 **StartExecution** API 작업을 끌어 **첫 번째 상태를 여기에 놓기** 레이블이 지정된 빈 상태에 놓습니다.

1. **StartExecution** 상태를 선택하고 [디자인 모드](workflow-studio.md#wfs-interface-design-mode)의 **구성** 탭에서 다음을 수행합니다.

   1. 상태 이름을 **Start nested execution**로 변경합니다.

   1. **통합 유형**의 드롭다운 목록에서 **AWS SDK - new**를 선택합니다.

   1. **API 파라미터**에서 다음을 수행합니다.

      1. `StateMachineArn`의 경우 샘플 Amazon 리소스 이름을 상태 머신 ARN으로 바꿉니다. 예를 들어 [Lambda를 사용하는 상태 머신](tutorial-creating-lambda-state-machine.md)의 ARN을 입력합니다.

      1. `Input` 노드의 경우 기존 자리 표시자 텍스트를 다음 값으로 바꿉니다.

         ```
         "Comment": "Starting workflow execution using a Step Functions API action"
         ```

      1. **API 파라미터**에 입력한 내용이 다음과 비슷한지 확인합니다.

         ```
         {
           "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine",
           "Input": {
             "Comment": "Starting workflow execution using a Step Functions API action",
             "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
           }
         ```

1. (선택 사항) [Inspector 패널](workflow-studio.md#workflow-studio-components-formdefinition) 패널에서 **정의**를 선택하여 자동으로 생성된 워크플로의 [Amazon States Language](concepts-amazon-states-language.md)(ASL) 정의를 봅니다.
**작은 정보**  
Workflow Studio의 [코드 편집기](workflow-studio.md#wfs-interface-code-editor)에서 ASL 정의를 볼 수도 있습니다. 코드 편집기에서 워크플로의 ASL 정의를 편집할 수도 있습니다.

1. 상태 머신 이름을 지정합니다. 이렇게 하려면 기본 상태 머신 이름인 **MyStateMachine** 옆에 있는 편집 아이콘을 선택합니다. 그런 다음 **상태 머신 구성**에서 **상태 머신 이름** 상자에 이름을 지정합니다.

   이 튜토리얼에서는 이름 **ParentStateMachine**를 입력합니다.

1. (선택 사항) **상태 머신 구성**에서 상태 머신 유형 및 실행 역할과 같은 기타 워크플로 설정을 지정합니다.

   이 자습서의 경우 **상태 머신 설정**의 모든 기본 선택 항목을 그대로 둡니다.

   상태 머신에 대한 올바른 권한을 사용하여 [이전에 IAM 역할을 만들었고](procedure-create-iam-role.md) 이를 사용하려면 **권한**에서 **기존 역할 선택**을 선택한 다음 목록에서 역할을 선택합니다. 또는 **역할 ARN 입력**을 선택한 다음 IAM 역할에 대한 ARN을 제공합니다.

1. **역할 생성 확인** 대화 상자에서 **확인**을 선택하여 계속합니다.

   **역할 설정 보기**를 선택하여 **상태 머신 구성**으로 돌아갈 수도 있습니다.
**참고**  
Step Functions에서 만드는 IAM 역할을 삭제하면 나중에 Step Functions에서 이 역할을 다시 만들 수 없습니다. 마찬가지로, 역할을 수정하면(예: IAM 정책의 주요에서 Step Functions 제거) 나중에 Step Functions에서 해당 원본 설정을 복원할 수 없습니다.

## 3단계: IAM 정책 업데이트
<a name="use-sfn-api-update-policy-start-execution"></a>

상태 머신에 [Lambda 함수를 사용하는 상태 머신의](tutorial-creating-lambda-state-machine.md) 실행을 시작할 수 있는 권한이 있는지 확인하려면 인라인 정책을 상태 머신의 IAM 역할에 연결해야 합니다. 자세한 내용은 *IAM 사용 설명서*의 [인라인 정책 임베딩](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console)을 참조하세요.

1. **ParentStateMachine** 페이지에서 **IAM 역할 ARN**을 선택하여 상태 머신의 IAM **역할** 페이지로 이동합니다.

1. 다른 상태 머신의 실행을 시작할 수 있도록 **ParentStateMachine**의 IAM 역할에 적절한 권한을 할당합니다. 권한을 할당하려면 다음을 수행합니다.

   1. IAM **역할** 페이지에서 **권한 추가**를 선택한 다음 **인라인 정책 생성**을 선택합니다.

   1. **정책 생성** 페이지에서 **JSON** 탭을 선택합니다.

   1. 기존 정책을 다음 정책으로 바꿉니다.  
****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "states:StartExecution"
                ],
                "Resource": [
                    "arn:aws:states:us-east-1:123456789012:stateMachine:LambdaStateMachine"
                ]
            }
        ]
      }
      ```

   1. **정책 검토**를 선택합니다.

   1. 정책 이름을 지정한 다음 **정책 생성**을 선택합니다.

## 4단계: 상태 머신 실행
<a name="use-sfn-api-start-execution"></a>

상태 머신 실행은 워크플로를 실행하여 작업을 수행하는 인스턴스입니다.

1. **ParentStateMachine** 페이지에서 **실행 시작**을 선택합니다.

   **실행 시작** 대화 상자가 표시됩니다.

1. **실행 시작** 대화 상자에서 다음을 수행합니다.

   1. (선택 사항) 생성된 기본값을 재정의하려면 사용자 지정 실행 이름을 입력합니다.
**비 ASCII 이름 및 로깅**  
Step Functions는 비 ASCII 문자가 포함된 상태 머신, 실행, 활동 및 레이블 이름을 허용합니다. 이러한 문자는 Amazon CloudWatch에서 데이터 로깅을 방지하므로 Step Functions 지표를 추적할 수 있도록 ASCII 문자만 사용하는 것이 좋습니다.

   1. (선택 사항) **입력** 상자에 입력 값을 JSON 형식으로 입력하여 워크플로를 실행합니다.

   1. **실행 시작**을 선택합니다.

   1. Step Functions 콘솔은 실행 ID가 제목인 페이지로 이동합니다. 이 페이지를 *실행 세부 정보* 페이지라고 합니다. 실행이 진행되는 동안 또는 완료된 후에 이 페이지에서 실행 결과를 검토할 수 있습니다.

      실행 결과를 검토하려면 **그래프 보기**에서 개별 상태를 선택한 다음 [단계 세부 정보](concepts-view-execution-details.md#exec-details-intf-step-details) 창에서 개별 탭을 선택하여 입력, 출력 및 정의가 포함된 각 상태의 세부 정보를 각각 봅니다. *실행 세부 정보* 페이지에서 볼 수 있는 실행 정보에 대한 자세한 내용은 [실행 세부 정보 개요](concepts-view-execution-details.md#exec-details-interface-overview) 섹션을 참조하세요.

1. **LambdaStateMachine** 페이지를 열고 **ParentStateMachine**에서 트리거한 새 실행을 확인합니다.