쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Step Functions 실행의 맵 실행 Redriving

포커스 모드
Step Functions 실행의 맵 실행 Redriving - AWS Step Functions

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

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

상위 워크플로redriving하면 맵 실행에서 실패한 하위 워크플로 실행을 다시 시작할 수 있습니다. redriven 상위 워크플로에서 Distributed Map을 비롯한 실패한 모든 상태를 redrives합니다. 상위 워크플로에서 실행을 완료한 시점의 상태에 대한 <stateType>Entered 이벤트에 해당하는 <stateType>Exited 이벤트가 없으면 상위 워크플로는 실패한 상태를 리드라이브합니다. 예를 들어 이벤트 내역에 MapStateEntered 이벤트에 대한 MapStateExited 이벤트가 포함되어 있지 않으면 상위 워크플로를 redrive하여 맵 실행에서 실패한 모든 하위 워크플로 실행을 redrive할 수 있습니다.

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

맵 실행에서 하위 워크플로에 대한 Redrive 적격성

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

  • 2023년 11월 15일 이후에 상위 워크플로 실행을 시작했습니다. 이 날짜 이전에 시작한 실행은 redrive에 적합하지 않습니다.

  • 특정 맵 실행의 엄격한 한도인 redrives 1,000회를 초과하지 않았습니다. 이 한도를 초과하면 States.Runtime 오류가 발생합니다.

  • 상위 워크플로는 redrivable입니다. 상위 워크플로가 redrivable이 아니면 맵 실행에서 하위 워크플로 실행을 redrive할 수 없습니다. 워크플로의 redrive 적격성에 대한 자세한 내용은 실패한 실행에 대한 Redrive 적격성 섹션을 참조하세요.

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

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

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

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

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

이러한 경우에는 실행 중인 맵 실행이 redrive를 시도하기 전에 작업을 완료합니다.

하위 워크플로 실행 redrive 동작

맵 실행의 redriven 하위 워크플로 실행은 다음 표의 설명과 같은 동작을 나타냅니다.

Express 하위 워크플로 표준 하위 워크플로
원래 실행 시도에서 실패하거나 시간 초과된 모든 하위 워크플로 실행은 StartExecution API 작업을 통해 시작됩니다. ItemProcessor의 첫 번째 상태가 먼저 실행됩니다. 원래 실행 시도에서 실패, 시간 초과 또는 취소된 모든 하위 워크플로 실행은 RedriveExecution API 작업을 통해 redriven됩니다. 이러한 하위 워크플로는 실행이 실패한 ItemProcessor의 마지막 상태에서 redriven됩니다.

실행 실패는 항상 redriven될 수 있습니다. 이는 Express 하위 워크플로 실행이 항상 StartExecution API 작업을 통해 새 실행으로 시작되기 때문입니다.

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

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

Express 하위 워크플로 실행은 원래 실행 시도와 동일한 실행 ARN을 사용하지만 개별 redrives를 명확하게 식별할 수 없습니다. 표준 하위 워크플로 실행은 원래 실행 시도와 동일한 실행 ARN을 사용합니다. 콘솔에서 GetExecutionHistoryDescribeExecution과 같은 API를 사용하여 개별 redrives를 명확하게 식별할 수 있습니다. 자세한 내용은 redriven 실행 검사 단원을 참조하십시오.

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

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

맵 실행이 실행을 완료하거나 중단되면 redrive 보류 중 상태의 하위 워크플로 실행 수가 0으로 재설정됩니다.

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

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

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

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

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

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

맵 실행을 redrive할 수 있는 IAM 권한

Step Functions에는 맵 실행을 redrive할 수 있는 적절한 권한이 필요합니다. 다음 IAM 정책 예제에서는 맵 실행을 redriving하는 데 필요한 최소 권한을 상태 시스템에 부여합니다. 기울임꼴 텍스트를 리소스별 정보로 바꿔야 합니다.

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

콘솔에서 맵 실행 Redriving

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

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

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

  3. Redrive를 선택합니다.

  4. Redrive 대화 상자에서 Redrive 실행을 선택합니다.

    작은 정보

    실행 세부 정보 또는 맵 실행 세부 정보 페이지에서 맵 실행을 redrive할 수도 있습니다.

    실행 세부 정보 페이지에서 다음 중 하나를 수행하여 실행을 redrive합니다.

    • 복구를 선택한 다음 장애로부터 Redrive을 선택합니다.

    • 작업을 선택한 다음 Redrive를 선택합니다.

    맵 실행 세부 정보 페이지에서 복구를 선택한 다음 장애로부터 Redrive을 선택합니다.

    redrive에서 같은 상태 시스템 정의와 ARN을 사용합니다. 원래 실행 시도에서 실패한 단계부터 실행을 계속 실행합니다. 이 예제에서는 Map이라는 분산 맵 단계와 내부의 프로세스 입력 단계입니다. 실패한 맵 실행 하위 워크플로 실행을 다시 시작한 후에도 redrive는 완료 단계 실행을 계속합니다.

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

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

맵 실행을 redriven한 후에 콘솔에서 또는 GetExecutionHistoryDescribeExecution API 작업을 사용하여 redrive 세부 정보를 검사할 수 있습니다. redriven 실행 검사 방법에 대한 자세한 내용은 redriven 실행 검사 섹션을 참조하세요.

API를 사용하여 맵 실행 Redriving

상위 워크플로에서 RedriveExecution API를 사용하여 적합한 맵 실행을 redrive할 수 있습니다. 이 API는 맵 실행에서 실패한 하위 워크플로 실행을 다시 시작합니다.

AWS Command Line Interface (AWS CLI)에서 다음 명령을 실행하여 실패한 상태 시스템 실행을 redrive합니다. 기울임꼴 텍스트를 리소스별 정보로 바꿔야 합니다.

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

맵 실행을 redriven한 후에 콘솔에서 또는 DescribeMapRun API 작업을 사용하여 redrive 세부 정보를 검사할 수 있습니다. 맵 실행에서 표준 워크플로 실행의 redrive 세부 정보를 검사하려면 GetExecutionHistory 또는 DescribeExecution API 작업을 사용하면 됩니다. redriven 실행 검사 방법에 대한 자세한 내용은 redriven 실행 검사 섹션을 참조하세요.

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

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.