기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 |
파라미터의 데이터 유형이며 다음 중 하나여야 합니다.
|
예제
워크플로 문서에 파라미터를 지정합니다.
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 워크플로 문서에서 지원되는 단계의 작업이어야 합니다. |
|
|
|
조건문은 워크플로 단계 본문에 제어 결정 지점의 흐름을 추가합니다. |
Dict |
아니요 |
Image Builder는 다음과 같은 조건문을
|
|
|
description |
단계에 대한 설명입니다. |
문자열 |
No |
빈 문자열은 허용되지 않습니다. 포함할 경우 길이는 1~1024자여야 합니다. |
|
|
입력 |
해당 단계의 작업을 실행하는 데 필요한 파라미터가 들어 있습니다. 키 값을 정적 값으로 지정하거나 올바른 데이터 유형으로 확인되는 JSONPath 변수를 사용하여 지정할 수 있습니다. |
Dict |
예 |
||
|
이름 |
단계의 이름입니다. 이 이름은 워크플로 문서 내에서 고유해야 합니다. |
문자열 |
예 |
길이는 3~128자여야 합니다. 영숫자 문자 및 |
|
|
onFailure |
단계가 실패할 경우 수행할 작업을 다음과 같이 구성합니다. 동작
|
문자열 |
No |
|
|
|
재시도 |
실패할 경우 단계를 자동으로 다시 실행하도록 Image Builder를 구성합니다. 자세한 내용은 실패한 워크플로 단계 재시도 섹션을 참조하세요. |
Dict |
아니요 |
재시도 없음 |
|
|
rollbackEnabled |
실패 발생 시 해당 단계를 롤백할지 여부를 구성합니다. 정적 부울 값 또는 부울 값으로 해석되는 동적 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(필수) - 첫 번째 시도를 포함하여 단계가 실행될 수 있는 총 횟수입니다. 예를 들어를3maxAttempts로 설정하고 모든 시도가 실패하면 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