기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
워크플로 문서에 동적 변수 사용
워크플로 문서에서 동적 변수를 사용하여 이미지 생성 프로세스의 런타임에 변하는 값을 표현할 수 있습니다. 동적 변수의 문자열 보간을 사용하면 JSON 문자열과 같은 구조화된 콘텐츠 내에 JSONPath 표현식을 포함할 수 있습니다. 이는 복잡한 페이로드 내에 런타임 값을 전달하여 ExecuteStateMachine 또는와 같은 작업을 단계화해야 할 때 특히 유용합니다WaitForAction.
동적 변수에 문자열 보간을 사용하려면 문자열 콘텐츠 "{{...}}" 내에서 JSONPath 표현식을 이중 중괄호로 묶습니다. 이중 중괄호로 래핑된 JSONPath 표현식만 변수로 처리됩니다. 이중 중괄호로 래핑되지 않은 모든 JSONPath 표현식은 리터럴 문자열 콘텐츠로 처리됩니다.
JSONPath 동적 워크플로 변수 구문
$.<document structure>.[<step name>.]<variable name>
동적 변수 값은 대상 변수를 고유하게 식별하는 구조적 노드가 있는 JSONPath 선택기로 표시됩니다. 루트($) 뒤의 첫 번째 노드는 워크플로 문서의 구조(예: stepOutputs 또는 Image Builder 시스템 변수의 경우 imageBuilder)를 나타냅니다. 다음 목록에는 지원되는 JSONPath 워크플로 문서 구조 노드가 포함되어 있습니다.
문서 구조 노드
-
파라미터-워크플로 파라미터
-
stepOutputs-동일한 워크플로 문서에 있는 단계의 출력
-
workflowOutputs-이미 실행된 워크플로 문서의 출력
-
imagebuilder - Image Builder 시스템 변수
parameters 및 stepOutputs 문서 구조 노드에는 단계의 이름에 대한 선택적 노드가 포함됩니다. 이렇게 하면 모든 단계에서 고유한 변수 이름을 지정할 수 있습니다.
JSONPath의 마지막 노드는 대상 변수의 이름(예: instanceId)입니다.
각 단계에서 이러한 JSONPath 동적 변수를 사용하여 이전 단계 작업의 출력을 참조할 수 있습니다. 이를 체이닝 또는 참조라고도 합니다. 이전 단계 작업의 결과를 참조하려면 다음 동적 변수를 사용할 수 있습니다.
$.stepOutputs.step-name.output-name
중요
입력 파라미터가 동적 변수를 참조하는 경우 연결 표시기(.$)를 파라미터 이름 끝에 연결해야 합니다.
예제 1: 입력 파라미터 체인 표시기
다음 예제는 문자열 보간을 사용하여 런타임 시 파라미터 값의 동적 변수를 확인하는 입력 파라미터를 보여줍니다.
- name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"
예제 2: 동적 변수의 문자열 보간
다음 예제에서는 동적 변수가 문자열 보간을 사용하여 런타임 시 값을 결정하는 방법을 보여줍니다.
- name: ValidateImageConfiguration action: ExecuteStateMachine inputs: stateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:ImageValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-east-1", "buildDate": "{{ $.imagebuilder.dateTime }}", "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}" }
이 예제에서는 이중 중괄호로 래핑된 JSONPath 표현식이 런타임에 확인됩니다.
-
{{ $.stepOutputs.CreateImageFromInstance.imageId }}- CreateImageFromInstance 단계에서 실제 이미지 ID로 확인 -
{{ $.imagebuilder.dateTime }}- 현재 빌드 타임스탬프로 해결됩니다. 사용할 수 있는 Image Builder 시스템 변수 목록은 Image Builder 시스템 변수 사용 섹션을 참조하세요. -
{{ $.stepOutputs.LaunchStep.instanceType }}- LaunchStep에 사용된 인스턴스 유형으로 해결합니다.
와 같은 리터럴 문자열은 "region": "us-east-1" 변경되지 않습니다.
참고
문자열 보간은 YAML 파이프(|) 연산자를 사용하는 여러 줄 문자열을 포함하여 워크플로 문서의 모든 문자열 콘텐츠와 함께 작동합니다. 중괄호 요구 사항은 JSONPath 변수와 리터럴 텍스트 콘텐츠를 명확하게 구분하는 이스케이프 메커니즘 역할을 합니다.
Image Builder 시스템 변수 사용
Image Builder는 워크플로 문서에서 사용할 수 있는 다음과 같은 시스템 변수를 제공합니다.
|
변수 이름 |
설명 |
형식 |
예시 값 |
|---|---|---|---|
|
cloudWatchLogGroup |
출력 로그에서 CloudWatch Logs 그룹의 이름입니다. 형식: |
문자열 |
|
|
cloudWatchLogStream |
출력 로그에서 CloudWatch Logs 스트림의 이름입니다. |
문자열 |
|
|
collectImageMetadata |
인스턴스 메타데이터를 수집할지 여부를 Image Builder에 지시하는 설정입니다. |
불린(Boolean) |
|
|
collectImageScanFindings |
Image Builder가 이미지 스캔 결과를 수집할 수 있도록 지원하는 설정의 현재 값입니다. |
불린(Boolean) |
|
|
imageBuildNumber |
이미지의 빌드 버전 번호입니다. |
Integer |
|
|
imageId |
기본 이미지의 AMI id입니다. |
문자열 |
|
|
imageName |
이미지의 이름입니다. |
문자열 |
|
|
imageType |
이미지 출력 유형입니다. |
문자열 |
|
|
imageVersionNumber |
이미지의 버전 번호입니다. |
문자열 |
|
|
instanceProfileName |
Image Builder가 빌드 및 테스트 인스턴스를 시작하는 데 사용하는 인스턴스 프로파일 역할의 이름입니다. |
문자열 |
|
|
platform |
빌드된 이미지의 운영 체제 플랫폼입니다. |
문자열 |
|
|
s3Logs |
Image Builder가 작성하는 S3 로그의 구성을 포함하는 JSON 객체입니다. |
JSON 객체 |
{'s3Logs': {'s3BucketName': ' |
|
securityGroups |
빌드 및 테스트 인스턴스에 적용되는 보안 그룹 ID입니다. |
목록[문자열] |
|
|
sourceImageARN |
워크플로가 빌드 및 테스트 단계에 사용하는 Image Builder 이미지 리소스의 Amazon 리소스 이름(ARN)입니다. |
문자열 |
arn:aws:imagebuilder: |
|
subnetId |
빌드 및 테스트 인스턴스를 시작할 서부넷의 ID입니다. |
문자열 |
|
|
terminateInstanceOnFailure |
실패 시 Image Builder에서 인스턴스를 종료하거나 문제 해결을 위해 인스턴스를 유지하도록 지시하는 설정의 현재 값입니다. |
불린(Boolean) |
|
|
workflowPhase |
워크플로 실행을 위해 실행 중인 현재 단계입니다. |
문자열 |
|
|
workingDirectory |
작업 디렉터리에 대한 경로입니다. |
문자열 |
|