View a markdown version of this page

YAML 워크플로 문서 생성 - EC2 Image Builder

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

YAML 워크플로 문서 생성

YAML 형식 정의 문서는 이미지 생성 프로세스의 빌드, 테스트 및 배포 단계에 대한 입력, 출력 및 워크플로 단계를 구성합니다. 세 워크플로 유형 모두에 동일한 문서 형식이 적용됩니다. 표준화된 단계가 포함된 템플릿에서 시작하거나 처음부터 시작하여 고유한 워크플로를 정의할 수 있습니다. 템플릿을 사용하든 처음부터 시작하든 관계없이 필요에 따라 워크플로를 사용자 정의할 수 있습니다.

YAML 워크플로 문서의 구조

다음 섹션에서는 Image Builder가 이미지 빌드, 테스트 및 배포 작업을 수행하는 데 사용하는 YAML 워크플로 문서의 구조를 설명합니다.

워크플로 문서 식별

워크플로를 고유하게 식별합니다. 이 섹션에는 다음과 같은 속성이 포함될 수 있습니다.

필드

설명

형식

필수

이름

워크플로 문서의 이름입니다.

문자열

No

설명

문서에 대한 설명입니다.

문자열

No

schemaVersion

문서의 스키마 버전, 현재 1.0입니다.

문자열

예

예제

--- name: sample-test-image description: Workflow for a sample image, with extra configuration options exposed through workflow parameters. schemaVersion: 1.0

워크플로 문서 입력 파라미터

워크플로 문서의 이 부분에서는 호출자가 지정할 수 있는 입력 파라미터를 정의합니다. 파라미터가 없는 경우이 섹션을 생략할 수 있습니다. 파라미터를 지정하는 경우 각 파라미터에 다음 속성이 포함될 수 있습니다.

워크플로 문서에서 최대 25개의 파라미터를 정의할 수 있습니다. 각 파라미터 값은 최대 1,024자를 포함할 수 있습니다. 파라미터는 string, integer, boolean또는 네 가지 지원되는 데이터 형식 중 하나를 사용해야 합니다stringList. 파라미터 default 값을 지정하지 않으면 런타임에 파라미터 값을 제공해야 합니다.

필드

설명

형식

필수

제약 조건

이름

파라미터의 이름입니다.

문자열

예

description

파라미터 설명입니다.

문자열

No

기본값

값이 제공되지 않은 경우 파라미터의 값이 기본값으로 적용됩니다. 파라미터 정의에 기본값을 포함하지 않는 경우 런타임에 파라미터 값이 필요합니다.

파라미터 데이터 유형과 일치합니다.

아니요

유형

파라미터의 데이터 유형입니다. 파라미터 정의에 데이터 유형을 포함하지 않는 경우 파라미터 유형의 기본값은 런타임에 필요한 문자열 값입니다.

문자열

No

파라미터의 데이터 유형이며 다음 중 하나여야 합니다.

  • string

  • integer

  • boolean

  • stringList

예제

워크플로 문서에 파라미터를 지정합니다.

parameters: - name: waitForActionAtEnd type: boolean default: true description: "Wait for an external action at the end of the workflow"

워크플로 문서의 파라미터 값을 사용합니다.

$.parameters.waitForActionAtEnd

워크플로 문서 단계

워크플로에 대해 최대 15 단계의 작업을 지정합니다. 단계는 워크플로 문서에 정의된 순서대로 실행됩니다. 실패할 경우 롤백은 실패한 단계부터 시작하여 이전 단계를 거꾸로 진행하면서 역순으로 실행됩니다.

각 단계는 이전 단계 작업의 출력을 참조할 수 있습니다. 이를 체이닝 또는 참조라고합니다. JSONPath 선택기를 사용하여 이전 단계 작업의 결과를 참조할 수 있습니다. 예제:

$.stepOutputs.step-name.output-name

자세한 내용은 워크플로 문서에 동적 변수 사용 섹션을 참조하세요.

참고

단계 자체에는 출력 속성이 없더라도 각 단계 작업의 모든 출력이 해당 단계의 stepOutput에 포함됩니다.

참고

단계에 waitSeconds 대해를 설정한 경우 값은 보다 작아야 합니다timeoutSeconds. 각 단계 작업은 최대값도 정의합니다timeoutSeconds. 작업의 최대값보다를 timeoutSeconds높게 설정하면 검증이 실패합니다. 작업당 최대값은 단원을 참조하십시오워크플로 문서에 지원되는 단계 작업.

각 단계에 다음 속성이 포함될 수 있습니다.

필드

설명

형식

필수

기본값

제약 조건

작업

이 단계에서 수행하는 워크플로 작업입니다.

문자열

예

Image Builder 워크플로 문서에서 지원되는 단계의 작업이어야 합니다.

if의 경우 if 연산자를 수정하는 일련의 조건문이 뒤따릅니다.

조건문은 워크플로 단계 본문에 제어 결정 지점의 흐름을 추가합니다.

Dict

아니요

Image Builder는 다음과 같은 조건문을 if 연산자의 수정자로 지원합니다.

  • 분기 조건 및 수정자는 if, and, or, not입니다. 분기 조건은 한 줄에 자체적으로 지정됩니다.

  • 비교 연산자는 booleanEquals, numberEquals, numberGreaterThan, numberGreaterThanEquals, numberLessThan, numberLessThanEquals, stringEquals입니다.

description

단계에 대한 설명입니다.

문자열

No

빈 문자열은 허용되지 않습니다. 포함할 경우 길이는 1~1024자여야 합니다.

입력

해당 단계의 작업을 실행하는 데 필요한 파라미터가 들어 있습니다. 키 값을 정적 값으로 지정하거나 올바른 데이터 유형으로 확인되는 JSONPath 변수를 사용하여 지정할 수 있습니다.

Dict

예

이름

단계의 이름입니다. 이 이름은 워크플로 문서 내에서 고유해야 합니다.

문자열

예

길이는 3~128자여야 합니다.

영숫자 문자 및 _를 포함할 수 있습니다. 공백은 사용할 수 없습니다.

onFailure

단계가 실패할 경우 수행할 작업을 다음과 같이 구성합니다.

동작
  • Abort-단계가 실패하고 워크플로에도 실패하며 실패한 단계 이후의 나머지 단계는 실행하지 않습니다. 롤백이 활성화된 경우 롤백은 실패한 단계부터 시작하여 롤백을 허용하는 모든 단계가 롤백될 때까지 계속됩니다.

  • Continue-단계는 실패하지만 실패한 단계 이후 나머지 단계는 계속 실행합니다. 이 경우에는 롤백이 없습니다.

문자열

No

Abort

Abort | Continue

재시도

실패할 경우 단계를 자동으로 다시 실행하도록 Image Builder를 구성합니다. 자세한 내용은 실패한 워크플로 단계 재시도 섹션을 참조하세요.

Dict

아니요

재시도 없음

retry 속성에는 다음 필드가 포함됩니다.

  • maxAttempts (필수) - 첫 번째 시도를 포함하여 단계가 실행될 수 있는 총 횟수입니다. 유효한 값: 1~10.

  • backoffSeconds (선택 사항) - Image Builder가 각 재시도를 시작하기 전에 대기하는 초 수입니다. 값을 설정하지 않으면 Image Builder는 30초 동안 기다립니다. 유효한 값: 0~600.

rollbackEnabled

실패 발생 시 해당 단계를 롤백할지 여부를 구성합니다. 정적 부울 값 또는 부울 값으로 해석되는 동적 JSONPath 변수를 사용할 수 있습니다.

부울

아니요

true

true | false

true 또는 false로 확인되는 | 또는 JSONPath 변수입니다.

timeoutSeconds

재시도가 적용되는 경우 실패 및 재시도까지 단계가 실행되는 최대 시간(초)입니다.

Integer

아니요

해당하는 경우 단계 작업에 정의된 기본값에 따라 달라집니다.

단계 작업의 최대 제한 시간을 초과할 수 없습니다.

waitSeconds

단계 실행이 일시 중지되는 초 단위 시간입니다.

Integer

아니요

0

단계 작업의 timeoutSeconds보다 클 수 없습니다.

예제

다음 예제에서는 워크플로 문서가 parameters 해당 섹션에서 선언해야 하는 waitForActionAtEnd 파라미터를 사용합니다.

steps: - name: LaunchTestInstance action: LaunchInstance onFailure: Abort inputs: waitFor: "ssmAgent" - name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: TerminateTestInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: WaitForActionAtEnd action: WaitForAction if: booleanEquals: true value: "$.parameters.waitForActionAtEnd"

실패한 워크플로 단계 재시도

기본적으로 워크플로의 각 단계는 한 번 실행됩니다. Image Builder가 실패할 때 단계를 자동으로 다시 실행하도록 하려면 단계에 retry 속성을 추가합니다. retry 속성에는 다음 필드가 포함됩니다.

  • maxAttempts (필수) - 첫 번째 시도를 포함하여 단계가 실행될 수 있는 총 횟수입니다. 예를 들어를 3 maxAttempts로 설정하고 모든 시도가 실패하면 Image Builder가 실패로 표시하기 전에 단계가 세 번 실행됩니다. 유효한 값: 1~10.

  • backoffSeconds (선택 사항) - Image Builder가 각 재시도를 시작하기 전에 대기하는 초 수입니다. 값을 설정하지 않으면 Image Builder는 30초 동안 기다립니다. 즉시 재시도하려면 값을 로 설정합니다0. 유효한 값: 0~600.

재시도는 다음과 같이 작동합니다.

  • 단계 timeoutSeconds 값은 각 시도에 개별적으로 적용됩니다. 제한 시간 클럭은 재시도가 시작될 때 다시 시작됩니다.

  • 마지막 시도 후에도 단계가 계속 실패하면 단계의 onFailure 동작이 적용됩니다.

일부 단계 작업에는 추가 재시도 동작이 있습니다.

  • LaunchInstance 단계를 재시도하기 전에 Image Builder는 실패한 시도가 시작된 인스턴스를 종료합니다. 재시도는 새 인스턴스를 시작합니다.

  • ExecuteComponents 단계를 재시도하면 Image Builder는 처음부터 구성 요소를 다시 실행합니다. 인스턴스에서 실패한 시도가 이미 이루어진 변경 사항은 실행 취소되지 않습니다. 구성 요소를 실행하는 단계에 대한 재시도를 구성하기 전에 구성 요소가 두 번 이상 안전하게 실행될 수 있는지 확인합니다.

단계가 실행된 횟수를 확인하려면 GetWorkflowStepExecution 또는 ListWorkflowStepExecutions API 작업을 사용합니다. 응답에는 단계의 attemptNumber 및 maxAttempts 필드가 포함됩니다.

참고

워크플로 단계의 retry 속성은 필드와 별개이며,이 maxAttempts 필드는 AWSTOE 구성 요소 문서 내에서 개별 단계를 재시도합니다. 자세한 내용은 사용자 지정 AWSTOE 구성 요소에 구성 요소 문서 프레임워크 사용 섹션을 참조하세요.

예제

steps: - name: LaunchBuildInstance action: LaunchInstance onFailure: Abort retry: maxAttempts: 3 backoffSeconds: 60 inputs: waitFor: "ssmAgent"

워크플로 문서 출력

워크플로의 출력을 정의합니다. 각 출력은 출력의 이름과 값을 지정하는 키 값 페어입니다. 출력을 사용하여 런타임 시 후속 워크플로에서 사용할 수 있는 데이터를 내보낼 수 있습니다. 이 섹션은 선택 사항입니다.

워크플로 문서에서 최대 25개의 출력을 정의할 수 있습니다. 각 출력 이름은 파이프라인에 포함하는 모든 워크플로에서 고유해야 합니다. 이후 워크플로는를 사용하여 이름별로 출력을 참조할 수 있습니다$.workflowOutputs.name.

참고

를 사용하여 동일한 워크플로에서 단계의 출력을 참조하지만 $.stepOutputs.stepName.field출력 이름($.workflowOutputs.name)만 있고 단계 이름은 없는 이전 워크플로의 출력을 참조합니다.

정의하는 각 출력에는 다음 속성이 포함됩니다.

필드

설명

형식

필수

이름

출력의 이름입니다. 이 이름은 파이프라인에서 포함하는 워크플로에서 고유해야 합니다.

문자열

예

값

출력의 값입니다. 문자열의 값은 단계 작업의 출력 파일과 같은 동적 변수일 수 있습니다. 자세한 내용은 워크플로 문서에 동적 변수 사용 섹션을 참조하세요.

문자열

예

예제

createProdImage 단계의 단계 출력을 사용하여 워크플로 문서의 출력 이미지 ID를 생성합니다.

outputs: - name: 'outputImageId' value: '$.stepOutputs.createProdImage.imageId'

다음 워크플로의 워크플로 출력을 참조하세요.

$.workflowOutputs.outputImageId