Step Functions를 사용하여 장기간 실행되는 워크플로를 계속 실행 API (권장) - AWS Step Functions

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

Step Functions를 사용하여 장기간 실행되는 워크플로를 계속 실행 API (권장)

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

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

새 워크플로 실행을 시작하려면 해당 Task 상태에서 StartExecution API 작업을 호출하고 필요한 매개 변수를 전달해야 합니다.

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

1단계: 장기 실행 상태 시스템 만들기

다른 상태 시스템의 Task 상태에서 시작하려는 장기 실행 상태 시스템을 만듭니다. 이 자습서에서는 Lambda 함수를 사용하는 상태 시스템을 사용합니다.

참고

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

2단계: Step Functions API 작업을 호출할 스테이트 머신 만들기

Task 상태에서 워크플로 실행 시작하기
  1. Step Functions 콘솔을 열고 상태 시스템 생성을 선택합니다.

  2. 템플릿 선택 대화 상자에서 공백을 선택합니다.

  3. 선택을 선택하여 워크플로 스튜디오를 에서 엽니다디자인 모드.

  4. 작업 탭에서 StartExecutionAPI액션을 드래그하여 여기로 첫 번째 상태 드래그라는 레이블이 붙은 빈 상태에 놓습니다.

  5. StartExecution상태를 선택하고 구성 탭에서 디자인 모드 다음을 수행하십시오.

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

    2. 통합 유형에서 다음을 선택합니다. AWS SDK- 드롭다운 목록에서 새로 만들기.

    3. API매개변수에서 다음을 수행합니다.

      1. StateMachineArn 경우 샘플 Amazon 리소스 이름을 상태 머신의 이름으로 대체하십시오. ARN 예를 들어, Lambda를 사용하는 상태 머신의 를 입력합니다. ARN

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

        "Comment": "Starting workflow execution using a Step Functions API action"
      3. 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" }
  6. (선택 사항) 워크플로의 자동 생성 Amazon States Language (ASL) 정의를 보려면 검사기 패널 패널에서 정의를 선택합니다.

    작은 정보

    워크플로 스튜디오에서도 ASL 정의를 볼 수 있습니다. 코드 편집기 코드 편집기에서 워크플로의 ASL 정의를 편집할 수도 있습니다.

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

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

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

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

    이전에 상태 컴퓨터에 대한 올바른 권한을 가진 IAM 역할을 생성한 후 이를 사용하려면 권한에서 기존 역할 선택을 선택한 다음 목록에서 역할을 선택합니다. 또는 역할 입력을 선택한 다음 해당 IAM 역할에 ARN ARN 대한 역할을 제공하십시오.

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

    역할 설정 보기를 선택하여 상태 머신 구성으로 돌아갈 수도 있습니다.

    참고

    Step IAM Functions가 생성하는 역할을 삭제하면 Step Functions에서 해당 역할을 나중에 다시 생성할 수 없습니다. 마찬가지로 역할을 수정하는 경우 (예: IAM 정책의 보안 주체에서 Step Functions 제거) Step Functions가 나중에 원래 설정을 복원할 수 없습니다.

3단계: 정책 업데이트 IAM

상태 시스템에 Lambda 함수를 사용하는 상태 머신의 실행을 시작할 권한이 있는지 확인하려면 상태 머신의 역할에 인라인 정책을 연결해야 합니다. IAM 자세한 내용은 사용 설명서의 인라인 정책 삽입을 참조하십시오. IAM

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

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

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

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

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

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine" ] } ] }
    4. 정책 검토를 선택합니다.

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

4단계: 상태 시스템 실행

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

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

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

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

    1. (선택 사항) 생성된 기본값을 재정의하려면 사용자 지정 실행 이름을 입력합니다.

      ASCII비이름 및 로깅

      Step Functions는 ASCII -자가 아닌 문자를 포함하는 상태 머신, 실행, 액티비티 및 레이블의 이름을 허용합니다. CloudWatchAmazon에서는 이러한 문자를 사용할 수 없으므로 지표를 추적할 수 있도록 ASCII 문자만 사용하는 것이 좋습니다 CloudWatch.

    2. (선택 사항) 입력 상자에 워크플로를 실행하는 데 필요한 JSON 형식으로 입력 값을 입력합니다.

    3. 실행 시작을 선택합니다.

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

      실행 결과를 검토하려면 그래프 보기에서 개별 상태를 선택한 다음 단계 세부 정보 창에서 개별 탭을 선택하여 입력, 출력 및 정의가 포함된 각 상태의 세부 정보를 각각 봅니다. 실행 세부 정보 페이지에서 볼 수 있는 실행 정보에 대한 자세한 내용은 실행 세부 정보 개요 섹션을 참조하세요.

  3. LambdaStateMachine페이지를 열고 에 의해 트리거된 새 실행을 확인합니다 ParentStateMachine.