Redriving Step Functions의 맵 런 실행 - AWS Step Functions

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

Redriving Step Functions의 맵 런 실행

실패한 하위 워크플로 실행을 Map Run Bay에서 다시 시작할 수 있습니다. redriving부모 워크플로. A redriven 부모 워크플로 redrives 모든 실패 상태 (분산 맵 포함) 상위 워크플로에서 실행을 완료한 시점의 상태에 대한 <stateType>Entered 이벤트에 해당하는 <stateType>Exited 이벤트가 없으면 상위 워크플로는 실패한 상태를 리드라이브합니다. 예를 들어 이벤트 기록에 이벤트 관련 이벤트가 없는 경우 다음과 같이 할 수 있습니다. MapStateExited MapStateEntered redrive 상위 워크플로는 redrive Map Run에서 실패한 모든 하위 워크플로우 실행

상태 시스템에 ItemReader (지도), ResultWriter (지도) 또는 둘 다에 액세스하는 데 필요한 권한이 없으면 맵 실행이 원래 실행 시도에서 시작되지 않거나 실패합니다. 상위 워크플로의 원래 실행 시도에서 Map Run이 시작되지 않은 경우 redriving 상위 워크플로우는 처음으로 Map Run을 시작합니다. 이 문제를 해결하려면 상태 시스템 역할에 필요한 권한을 추가한 다음 redrive 상위 워크플로. 만약 redrive 상위 워크플로우는 필요한 권한을 추가하지 않고 새 Map Run 실행을 시작하려고 시도하지만 다시 실패합니다. 필요할 수 있는 권한은 IAM분산 맵 상태 사용 정책 섹션을 참조하세요.

Redrive Map Run의 하위 워크플로를 사용할 수 있는 자격

다음을 수행할 수 있습니다.redrive 다음 조건이 충족되면 Map Run에서 실패한 하위 워크플로우 실행:

  • 2023년 11월 15일 이후에 상위 워크플로 실행을 시작했습니다. 이 날짜 이전에 시작한 실행은 다음을 수행할 수 없습니다.redrive.

  • 엄격한 한도인 1,000을 초과하지 않았습니다.redrives 주어진 맵 런의 이 한도를 초과하면 States.Runtime 오류가 발생합니다.

  • 상위 워크플로는 다음과 같습니다.redrivable. 상위 워크플로가 아닌 경우 redrivable, 할 수 없습니다 redrive Map Run에서의 하위 워크플로 실행 에 대한 자세한 내용은 redrive 워크플로의 적격성은 을 참조하십시오Redrive 실패한 실행에 대한 자격.

  • 맵 실행에서 표준 유형의 하위 워크플로 실행이 실행 이벤트 내역 한도인 25,000개를 초과하지 않았습니다. 이벤트 내역 한도를 초과한 하위 워크플로 실행은 허용 실패 임계값에 포함되며 실패로 간주됩니다. 에 대한 자세한 내용은 redrive 처형 적격성을 참조하십시오Redrive 실패한 실행에 대한 자격.

새 맵 실행이 시작되지만 기존 맵 실행은 시작되지 않습니다.redriven 다음과 같은 경우에는 원래 실행 시도에서 맵 실행이 실패했더라도 마찬가지입니다.

상위 워크플로가 중지되거나 시간 초과된 후에도 맵 실행은 계속 실행될 수 있습니다. 이러한 시나리오에서는 redrive 즉시 발생하지는 않습니다.

  • 맵 실행에서 여전히 진행 중인 표준 유형의 하위 워크플로 실행을 취소하거나 Express 유형의 하위 워크플로 실행이 완료될 때까지 기다리고 있을 수 있습니다.

  • 결과를 내보내도록 맵 실행을 구성한 경우 맵 실행에서 여전히 결과를 ResultWriter (지도)에 쓰고 있을 수 있습니다.

이 경우 실행 중인 Map Run은 작업을 시도하기 전에 작업을 완료합니다.redrive.

하위 워크플로 실행 redrive 동작

The redriven Map Run의 하위 워크플로 실행은 다음 표에 설명된 것과 같은 동작을 보여줍니다.

Express 하위 워크플로 표준 하위 워크플로
원래 실행 시도에서 실패하거나 제한 시간이 초과된 모든 하위 워크플로 실행은 해당 작업을 사용하여 시작됩니다. StartExecutionAPI ItemProcessor의 첫 번째 상태가 먼저 실행됩니다. 원래 실행 시도에서 실패, 시간 초과 또는 취소된 모든 하위 워크플로 실행은 다음과 같습니다.redriven 사용 RedriveExecutionAPI액션. 이러한 하위 워크플로는 다음과 같습니다.redriven 실행 실패로 ItemProcessor 이어진 마지막 상태부터 말이죠.

실패한 실행은 항상 다음과 같을 수 있습니다.redriven. Express 하위 워크플로 실행은 항상 해당 StartExecution API 작업을 사용하여 새 실행으로 시작되기 때문입니다.

표준 하위 워크플로 실행이 실패할 수 없는 경우도 있습니다.redriven. 실행이 되지 않는 경우 redrivable다시 시도되지 않습니다. 실행의 마지막 오류나 출력은 영구적입니다. 이는 실행이 25,000개의 기록 이벤트를 초과하거나 redrivable 14일의 기간이 만료되었습니다.

표준 하위 워크플로 실행은 다음과 같지 않을 수 있습니다.redrivable 상위 워크플로 실행은 14일 이내에 종료되었지만 하위 워크플로 실행은 14일 이전에 종료된 경우

Express 하위 워크플로 실행은 원래 실행 ARN 시도와 동일한 실행을 사용하지만 개인을 구분할 수는 없습니다.redrives. 표준 하위 워크플로 실행은 원래 실행 ARN 시도와 동일한 실행을 사용합니다. 개인을 뚜렷하게 식별할 수 있습니다.redrives 콘솔에서 사용하고 (APIs예 GetExecutionHistory: 및) DescribeExecution 자세한 내용은 검사 redriven 실행 단원을 참조하십시오.

만약 redriven 맵 실행이 동시 실행 한도에 도달하면 해당 맵 실행의 하위 워크플로 실행이 보류 상태로 전환됩니다. 맵 실행의 실행 상태도 보류 중으로 전환됩니다. redrive상태. 지정된 동시성 한도에 도달하여 더 많은 하위 워크플로 실행을 허용할 때까지 실행은 보류 중 상태로 유지됩니다. redrive상태.

예를 들어 워크플로에 있는 분산 맵의 동시성 한도가 3000이고 재실행할 하위 워크플로 수가 6000개라고 가정해보겠습니다. 이로 인해 하위 워크플로가 3000개가 동시에 실행되고 나머지 워크플로 3000개는 리드라이브 보류 중 상태로 유지됩니다. 하위 워크플로 3000개의 첫 번째 배치가 실행을 완료하면 나머지 하위 워크플로 3000개가 실행됩니다.

Map Run이 실행을 완료하거나 중단된 경우 Pending (보류 중) 의 하위 워크플로 실행 수 redrive상태가 0으로 재설정됩니다.

맵 실행에서 사용된 입력 시나리오 redrive

원래 실행 시도에서 분산 맵에 입력을 제공한 방식에 따라 redriven Map Run은 다음 표에 설명된 대로 입력을 사용합니다.

원래 실행 시도의 입력 맵 런에 사용된 입력입니다.redrive
이전 상태에서 전달된 입력 또는 실행 입력 The redriven 맵 런은 동일한 입력을 사용합니다.
다음 중 조건 중 하나에 해당되므로 ItemReader (지도)를 통해 전달된 입력과 맵 실행에서 하위 워크플로 실행을 시작하지 않았습니다.
  • States.ItemReaderFailed 오류가 발생하여 맵 실행이 실패했습니다.

  • States.ResultWriterFailed 오류가 발생하여 맵 실행이 실패했습니다.

  • 맵 실행이 시작되기 전에 상위 워크플로 실행이 시간 초과되었거나 취소되었습니다.

The redriven 맵 런은 Amazon S3 버킷의 입력을 사용합니다.
를 사용하여 입력이 ItemReader 전달되었습니다. 하위 워크플로 실행을 시작하거나 시작하려고 시도한 후에 맵 실행이 실패했습니다. The redriven Map Run은 원래 실행 시도에서 제공된 것과 동일한 입력을 사용합니다.

IAM다음과 같은 권한 redrive 맵 런

Step Functions에는 다음과 같은 적절한 권한이 필요합니다.redrive 맵 런. 다음 IAM 정책 예시는 다음과 같은 경우 스테이트 머신에 필요한 최소 권한을 부여합니다.redriving 맵 런. 교체하는 것을 잊지 마세요 italicized 텍스트를 리소스별 정보로 입력하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine/myMapRunLabel:*" } ] }

Redriving 맵: 콘솔에서 실행

다음 이미지에서는 분산 맵이 포함된 상태 시스템의 실행 그래프를 보여줍니다. 맵 실행이 실패하여 이 실행이 실패했습니다. To redrive 맵 런은 반드시 실행해야 합니다.redrive 상위 워크플로.

맵 실행 실패로 인해 실패한 상태 시스템 실행 그래프입니다.
To redrive a: 콘솔에서 맵 실행
  1. Step Functions 콘솔을 열고 실행이 실패한 분산 맵이 포함된 기존 상태 시스템을 선택합니다.

  2. 상태 시스템 세부 정보 페이지의 실행에서 이 상태 시스템의 실패한 실행 인스턴스를 선택합니다.

  3. Redrive.

  4. 에서Redrive대화 상자, 선택 Redrive 실행.

    작은 정보

    다른 방법 redrive 실행 세부 정보 또는 맵 실행 세부 정보 페이지에서 맵 실행

    실행 세부 정보 페이지에 있는 경우 다음 중 하나를 수행하십시오.redrive 실행:

    • [복구] 를 선택한 다음, Redrive 실패에서.

    • [액션] 을 선택한 다음 [선택] Redrive.

    맵 실행 세부정보 페이지를 사용하는 경우 복구를 선택한 다음 다음을 선택합니다. Redrive 실패 이후.

    알아두세요.redrive 동일한 스테이트 머신 정의 및 를 사용합니다ARN. 원래 실행 시도에서 실패한 단계부터 실행을 계속 실행합니다. 이 예제에서는 Map이라는 분산 맵 단계와 내부의 프로세스 입력 단계입니다. Map Run의 실패한 하위 워크플로 실행을 다시 시작한 후 redrive 완료 단계가 계속 실행됩니다.

  5. 실행 세부 정보 페이지에서 Map Run을 선택하여 세부 정보를 확인합니다.redriven 맵 런.

    이 페이지에서 다음 결과를 볼 수 있습니다.redriven 실행. 예를 들어, 맵 실행 요약 섹션에서 다음을 볼 수 있습니다. Redrive 개수는 맵 실행 횟수를 나타냅니다.redriven. 이벤트 섹션에서 다음을 확인할 수 있습니다.redrive 원래 실행 시도의 이벤트에 관련 실행 이벤트가 추가되었습니다. 예제는 MapRunRedriven 이벤트를 참조하세요.

작업을 완료한 후 redriven 맵 런을 통해 해당 맵을 검토할 수 있습니다.redrive 콘솔 또는 GetExecutionHistoryDescribeExecutionAPI작업을 사용하여 세부 정보를 확인할 수 있습니다. 검사에 대한 자세한 내용은 redriven 실행은 을 참조하십시오검사 redriven 실행.

Redriving 맵 실행: 사용 API

다음을 수행할 수 있습니다.redrive 다음을 사용하여 적격한 맵 실행을 수행할 수 있습니다. RedriveExecutionAPI상위 워크플로우에서 이렇게 하면 Map Run에서 실패한 하위 워크플로 실행이 API 다시 시작됩니다.

에서 AWS Command Line Interface (AWS CLI) 에서 다음 명령을 실행하여 redrive 스테이트 머신 실행에 실패했습니다. 교체하는 것을 잊지 마세요.italicized 텍스트를 리소스별 정보로 입력하세요.

aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo

작업을 완료한 후 redriven 맵 런을 통해 해당 맵을 검토할 수 있습니다.redrive 콘솔 또는 DescribeMapRunAPI액션을 사용하여 세부 정보를 확인할 수 있습니다. 검사하려면 redrive Map Run에서의 표준 워크플로 실행의 세부 정보를 보려면 GetExecutionHistory또는 DescribeExecutionAPI작업을 사용할 수 있습니다. 검사에 대한 자세한 내용은 redriven 실행은 을 참조하십시오검사 redriven 실행.

다음을 검토할 수 있습니다.redrive 상위 워크플로우에서 로깅을 활성화한 경우 Step Functions 콘솔의 Map Run에서의 Express 워크플로우 실행 세부 정보 자세한 내용은 Step Functions에서 CloudWatch 로그를 사용하여 실행 기록 기록 단원을 참조하십시오.