aws:loop- 자동화의 여러 단계를 반복 - AWS Systems Manager

aws:loop- 자동화의 여러 단계를 반복

이 작업은 Automation 런북의 일부 하위 단계를 반복합니다. do while 또는 for each 스타일 루프를 선택할 수 있습니다. do while 루프를 구성하려면 LoopCondition 입력 파라미터를 사용합니다. for each 루프를 구성하려면 IteratorsIteratorDataType 입력 파라미터를 사용합니다. aws:loop 작업을 사용할 때는 Iterators 또는 LoopCondition 입력 파라미터 중 하나만 지정하십시오. 최대 반복 횟수는 100회입니다.

onCancel 속성은 루프 내에 정의된 단계에 대해서만 사용할 수 있습니다. 해당 onCancel 속성은 aws:loop 작업에 지원되지 않습니다. onFailure 속성은 aws:loop 작업에 사용할 수 있지만 예상치 못한 오류가 발생하여 단계가 실패하는 경우에만 사용됩니다. 루프 내 단계에 대해 onFailure 속성을 정의하는 경우 aws:loop 작업이 이러한 속성을 상속하고 오류가 발생할 경우 적절하게 반응합니다.

예시

다음은 다양한 유형의 루프 작업을 구성하는 방법의 예시입니다.

do while
name: RepeatMyLambdaFunctionUntilOutputIsReturned action: aws:loop inputs: Steps: - name: invokeMyLambda action: aws:invokeLambdaFunction inputs: FunctionName: LambdaFunctionName outputs: - Name: ShouldRetry Selector: $.Retry Type: Boolean LoopCondition: Variable: "{{ invokeMyLambda.ShouldRetry }}" BooleanEquals: true MaxIterations: 3
for each
name: stopAllInstancesWithWaitTime action: aws:loop inputs: Iterators: "{{ DescribeInstancesStep.InstanceIds }}" IteratorDataType: "String" Steps: - name: stopOneInstance action: aws:changeInstanceState inputs: InstanceIds: - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}" CheckStateOnly: false DesiredState: stopped - name: wait10Seconds action: aws:sleep inputs: Duration: PT10S
Input

입력은 다음과 같습니다.

반복자

반복할 단계의 항목 목록입니다. 최대 반복자 수는 100입니다.

유형: StringList

필수 항목 여부: 아니요

IteratorDataType

Iterators의 데이터 유형을 지정하는 선택적 파라미터입니다. 이 파라미터의 값은 Iterators 입력 파라미터와 함께 제공될 수 있습니다. 이 파라미터와 Iterators 값을 지정하지 않으면 LoopCondition 파라미터의 값을 지정해야 합니다.

유형: 문자열

유효한 값: Boolean | Integer | String | StringMap

기본값: 문자열

필수 항목 여부: 아니요

LoopCondition

평가할 Variable 및 연산자 조건으로 구성됩니다. 이 파라미터의 값을 지정하지 않으면 IteratorsIteratorDataType 파라미터의 값을 지정해야 합니다. And, Not, Or 연산자를 조합하여 복잡한 연산자 평가를 사용할 수 있습니다. 조건은 루프의 단계가 완료된 후에 평가됩니다. 조건이 true에 해당하고 MaxIterations 값에 도달하지 않은 경우 루프의 단계가 다시 실행됩니다. 연산자 조건은 다음과 같습니다.

문자열 연산
  • StringEquals

  • EqualsIgnoreCase

  • StartsWith

  • EndsWith

  • 포함

수치 연산
  • NumericEquals

  • NumericGreater

  • NumericLesser

  • NumericGreaterOrEquals

  • NumericLesser

  • NumericLesserOrEquals

부울 연산
  • BooleanEquals

유형: StringMap

필수 항목 여부: 아니요

MaxIterations

루프의 최대 단계 실행 횟수입니다. 이 입력값에 지정된 값에 도달하면 LoopCondition 항목이 여전히 true에 해당하거나 Iterators 파라미터에 객체가 남아 있더라도 루프 실행이 중지됩니다.

유형: 정수

유효한 값은 1~100입니다.

필수 항목 여부: 아니요

단계

루프에서 실행할 단계 목록입니다. 이들은 중첩된 런북처럼 작동합니다. 이 단계에서 {{loopStepName.CurrentIteratorValue}} 구문을 사용하여 for each 루프의 현재 반복자 값에 액세스할 수 있습니다. {{loopStepName.CurrentIteration}} 구문을 사용하여 두 루프 유형에 대한 현재 반복의 정수 값에 액세스할 수도 있습니다.

유형: 단계 목록

필수 여부: 예

출력
CurrentIteration

현재 루프 반복을 정수로 나타낸 값입니다. 반복 값은 1에서 시작합니다.

유형: 정수

CurrentIteratorValue

문자열인 현재 반복자 값입니다. 이 출력은 for each 루프에만 표시됩니다.

유형: 문자열