View a markdown version of this page

워크플로 문서에 지원되는 단계 작업 - EC2 Image Builder

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

워크플로 문서에 지원되는 단계 작업

이 섹션에는 Image Builder에서 지원하는 단계 작업에 대한 세부 정보가 포함되어 있습니다.

이 섹션에서 사용되는 용어
AMI

Amazon Machine Image

ARN

Amazon 리소스 이름

다음 표에는 각 단계 작업을 지원하는 워크플로 단계가 나와 있습니다. 확인 표시(X)는 해당 단계에서 단계 작업을 사용할 수 있음을 나타냅니다. Image Builder는 몇 가지 작업을 ExecuteComponents 빌드 및 테스트 단계, CollectImageScanFindings 테스트 단계, DistributeImage, ModifyImageAttributes, ApplyImageConfigurations, 배포 단계 등 특정 단계로 제한DistributeContainerImage합니다. 모든 단계에서 다른 모든 작업을 사용할 수 있습니다.

단계 작업 빌드 테스트 배포 참고
LaunchInstance X X X Amazon EC2 인스턴스를 시작합니다.
BootstrapInstanceForContainer X X X 컨테이너 빌드 AWS CLI 용 Docker 및를 설치합니다.
ExecuteComponents X X 인스턴스에서 구성 요소를 실행합니다. 빌드 및 테스트 단계로 제한됩니다.
CollectImageMetadata X X X AMI는 빌드만 합니다.
RunSysPrep X X X Windows 빌드.
SanitizeInstance X X X Linux AMI 빌드. 컨테이너용이 아님.
CreateImage X X X 빌드 인스턴스에서 AMI를 생성합니다.
CreateImageFromIso X X X ISO 디스크 이미지에서 AMI를 생성합니다.
RegisterImage X X X 스냅샷에서 AMI를 등록합니다.
DistributeContainerImage X 컨테이너 이미지를 배포합니다. 배포 단계로 제한됩니다.
CollectImageScanFindings X 이미지 스캔 결과를 수집합니다. 테스트 단계로 제한됩니다. Amazon Inspector 및 이미지 스캔이 필요합니다.
RunCommand X X X AWS Systems Manager (Systems Manager) 명령 문서를 실행합니다.
WaitForSSMAgent X X X 재부팅 후 Systems Manager 연결을 기다립니다.
WaitForAction X X X 외부 작업을 일시 중지합니다.
ExecuteStateMachine X X X Step Functions 상태 시스템을 실행합니다.
TerminateInstance X X X 인스턴스를 종료합니다. 예를 들어 컨테이너 배포 워크플로는 이미지를 푸시한 후 빌드 인스턴스를 종료합니다.
DistributeImage X AMI를 리전 및 계정에 복사합니다. 배포 단계로 제한됩니다.
ModifyImageAttributes X AMI 시작 권한을 수정합니다. 배포 단계로 제한됩니다.
ApplyImageConfigurations X 시작 템플릿, 라이선스, 내보내기, 빠른 시작 및 Systems Manager 파라미터를 적용합니다. 배포 단계로 제한됩니다.
중요

단일 워크플로는 AMIs 또는 컨테이너 이미지를 모두 배포하지는 않습니다. 워크플로에가 포함된 경우 DistributeContainerImage, ModifyImageAttributes또는 DistributeImage도 포함할 수 없습니다ApplyImageConfigurations. 이러한 AMI 배포 작업은 Amazon EC2 AMIs에서 작동하는 반면, DistributeContainerImage는 Amazon Elastic Container Registry(Amazon ECR)의 컨테이너 이미지에서 작동합니다.

ApplyImageConfigurations

이 단계 작업을 사용하여 라이선스 구성, 시작 템플릿 구성, S3 내보내기 구성, EC2 Fast Launch 구성 및 Systems Manager 파라미터 구성과 같은 다양한 구성 및 통합을 분산 AMIs에 적용합니다. 구성은 소스 계정의 분산 이미지에만 적용됩니다. 단, 교차 계정을 적용할 수 있는 SSM 파라미터 구성은 예외입니다.

참고

configurations 입력은 선택 사항입니다. 제공하는 경우 Image Builder는 워크플로 입력을 사용하고 연결된 배포 구성을 무시합니다. 이를 생략하면 Image Builder는 파이프라인 또는 이미지에 연결된 배포 구성으로 돌아갑니다.

기본 제한 시간: 360분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다. distributedImages.$ 입력이 필요합니다. 나머지 행은 configurations 배열의 각 항목 내의 필드를 설명합니다.

입력 이름 설명 형식 필수 기본값 제약 조건
distributedImages.$ 구성할 분산 이미지 목록입니다. 동일한 워크플로의 DistributeImage 단계에서 distributedImages 출력을 참조합니다. 문자열 로 시작하는 JSONPath 참조 $.stepOutputs.
configurations 분산 AMIs에 목록으로 적용할 구성입니다. 각 항목은 하나의 AWS 리전을 대상으로 합니다. 배열 아니요
구성:리전 구성할 분산 AMI의 AWS 리전입니다. 문자열 의 각 항목에 필요합니다configurations.
구성:licenseConfigurationArns 이미지의 라이선스 구성 ARN입니다. 배열 아니요
구성:launchTemplateConfigurations 분산 AMIs. 배열 아니요
구성:launchTemplateConfigurations:launchTemplateId 이미지에 적용할 시작 템플릿 ID입니다. 문자열 launchTemplateConfigurations가 지정된 경우 예
구성:launchTemplateConfigurations:accountId 이미지에 적용할 시작 템플릿 계정 IDs. 문자열 No
구성:launchTemplateConfigurations:setDefaultVersion 이미지에 대한 시작 템플릿 기본 버전 설정입니다. 부울 아니요
구성:s3ExportConfiguration 분산 AMI에 대한 Amazon S3 내보내기 구성입니다. AMIs 배열 아니요
구성:s3ExportConfiguration:roleName 이미지의 Amazon S3 내보내기 구성 역할 이름입니다. 문자열 s3ExportConfiguration가 지정된 경우 예
구성:s3ExportConfiguration:diskImageFormat 이미지의 Amazon S3 내보내기 구성 디스크 이미지 형식입니다. 문자열 s3ExportConfiguration가 지정된 경우 예 허용되는 값 - VMDK|RAW|VHD
구성:s3ExportConfiguration:s3Bucket 이미지의 Amazon S3 내보내기 구성 버킷 이름입니다. 문자열 s3ExportConfiguration가 지정된 경우 예
구성:s3ExportConfiguration:s3Prefix 이미지의 Amazon S3 내보내기 구성 버킷 접두사입니다. 문자열 No
구성:fastLaunchConfigurations 이미지에 대한 Amazon EC2 Fast Launch 구성입니다. 배열 아니요
구성:fastLaunchConfigurations:enabled 이미지에 대해 Amazon EC2 Fast Launch가 활성화되어 있는지 여부입니다. 부울 fastLaunchConfigurations가 지정된 경우 예
구성:fastLaunchConfigurations:snapshotConfiguration Amazon EC2 Fast Launch 스냅샷 사전 프로비저닝을 위한 스냅샷 구성입니다. 아니요
구성:fastLaunchConfigurations:snapshotConfiguration:targetResourceCount 이미지의 Amazon EC2 Fast Launch 대상 리소스 수입니다. Integer 아니요
구성:fastLaunchConfigurations:maxParallelLaunches 이미지에 대한 Amazon EC2 Fast Launch 최대 병렬 시작입니다. Integer 아니요
구성:fastLaunchConfigurations:launchTemplate Amazon EC2 Fast Launch가 사전 프로비저닝된 스냅샷을 준비하는 데 사용하는 시작 템플릿입니다. 아니요
구성:fastLaunchConfigurations:launchTemplate:launchTemplateId 이미지의 Amazon EC2 Fast Launch 시작 템플릿 ID입니다. 문자열 No
구성:fastLaunchConfigurations:launchTemplate:launchTemplateName 이미지의 Amazon EC2 Fast Launch 시작 템플릿 이름입니다. 문자열 No
구성:fastLaunchConfigurations:launchTemplate:launchTemplateVersion 이미지의 Amazon EC2 Fast Launch 시작 템플릿 버전입니다. 문자열 No
구성:ssmParameterConfigurations 이미지에 대한 Systems Manager 파라미터 구성입니다. 아니요
구성:ssmParameterConfigurations:amiAccountId 이미지의 Systems Manager 파라미터 AMI 계정 ID입니다. 문자열 No
구성:ssmParameterConfigurations:parameterName 이미지의 Systems Manager 파라미터 이름입니다. 문자열 ssmParameterConfigurations가 지정된 경우 예
구성:ssmParameterConfigurations:dataType 이미지의 Systems Manager 파라미터 데이터 형식입니다. 문자열 No 허용된 값 - text|aws:ec2:image)

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
configuredImages 구성된 이미지 목록입니다. 배열
configuredImages:accountId 분산 이미지의 대상 계정 ID입니다. 문자열
configuredImages:name AMI의 이름입니다. 문자열
configuredImages:amiId 분산 이미지의 AMI ID입니다. 문자열
configuredImages:dateStarted 배포가 시작된 UTC 시간입니다. 문자열
configuredImages:dateStopped 배포가 완료된 UTC 시간입니다. 문자열
configuredImages:step 배포가 중지된 단계입니다. 완료됨|AssociateLicensesRunning|UpdateLaunchTemplateRunning|PutSsmParametersRunning|UpdateFastLaunchConfiguration|ExportAmiQueued|ExportAmiRunning
configuredImages:region 분산 이미지의 AWS 리전입니다. 문자열
configuredImages:status 배포 상태입니다. 완료됨|실패함|취소됨|TimedOut
configuredImages:errorMessage 오류 메시지가 있는 경우 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ApplyImageConfigurations action: ApplyImageConfigurations onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages configurations: - region: us-west-2 licenseConfigurationArns: - arn:aws:license-manager:us-west-2:111122223333:license-configuration:lic-example

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ApplyImageConfigurationsStep.configuredImages

BootstrapInstanceForContainer

이 단계 작업은 서비스 스크립트를 실행하여 컨테이너 워크플로를 실행하기 위한 최소 요구 사항으로 인스턴스를 부트스트랩합니다. Image Builder는 Systems Manager API의 sendCommand를 사용하여 이 스크립트를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

참고

부트스트랩 스크립트는 Image Builder가 Docker 컨테이너를 성공적으로 빌드하기 위한 사전 조건인 AWS CLI 및 Docker 패키지를 설치합니다. 이 단계 작업을 포함하지 않으면 이미지 빌드가 실패할 수 있습니다.

기본 제한 시간: 60분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 부트스트랩할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 부트스트랩 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ContainerBootstrapStep action: BootstrapInstanceForContainer onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ContainerBootstrapStep.status

CollectImageMetadata

이 단계 작업은 빌드 워크플로에만 유효합니다.

EC2 Image Builder는 시작한 EC2 인스턴스에서 AWS Systems Manager (Systems Manager) Agent를 실행하여 이미지를 빌드 및 테스트합니다. Image Builder는 Systems Manager Inventory를 사용하여 빌드 단계에서 사용된 인스턴스에 대한 추가 정보를 수집합니다. 이 정보에는 운영 체제(OS)이름 및 버전 뿐만 아니라 운영 체제에서 보고한 패키지 및 해당 버전 목록이 포함됩니다.

참고

이 단계 작업은 AMI를 생성하는 이미지에만 적용됩니다.

기본 제한 시간: 30분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: Image Builder는 이 단계에서 생성된 모든 Systems Manager 리소스를 롤백합니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 메타데이터 설정을 적용할 빌드 인스턴스입니다. 문자열 이 워크플로의 빌드 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
osVersion 빌드 인스턴스에서 수집된 운영 체제의 이름과 버전입니다. 문자열
associationId 인벤토리 수집에 사용하는 Systems Manager 연결 ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CollectMetadataStep action: CollectImageMetadata onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

워크플로 문서의 단계 작업 출력을 사용합니다.

$.stepOutputs.CollectMetadataStep.osVersion

CollectImageScanFindings

계정에서 Amazon Inspector를 활성화하고 파이프라인에서 이미지 스캔을 활성화한 경우, 이 단계 작업은 테스트 인스턴스에 대해 Amazon Inspector에서 보고한 이미지 스캔 결과를 수집합니다. 빌드 워크플로에는 이 단계 작업을 사용할 수 없습니다.

기본 제한 시간: 120분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 스캔을 실행한 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 검색 결과를 수집하기 위해 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CollectFindingsStep action: CollectImageScanFindings onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.CollectFindingsStep.status

CreateImage

이 단계 작업은 Amazon EC2 CreateImage API를 이용하여 실행 중인 인스턴스에서 이미지를 생성합니다. 생성 프로세스 중에 단계 작업은 리소스가 올바른 상태에 도달했는지 확인하기 위해 필요한 만큼 대기한 후 작업을 계속합니다.

기본 제한 시간: 720분

최대 제한 시간: 3일(259,200초)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 새 이미지를 만들 때 사용할 인스턴스입니다. 문자열 제공된 인스턴스 ID의 인스턴스는 이 단계가 시작될 때 running 상태여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
imageId 생성한 이미지의 AMI ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CreateImageFromInstance action: CreateImage onFailure: Abort inputs: instanceId.$: "i-1234567890abcdef0"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.CreateImageFromInstance.imageId

CreateImageFromIso

이 단계 작업을 사용하여 빌드 인스턴스의 ISO 디스크 이미지에서 Amazon Machine Image(AMI)를 생성합니다. 소스가 기본 AMI가 아닌 ISO 파일인 경우 빌드 워크플로에서 사용합니다. Image Builder는 ISO를 AMI로 변환하고 리소스가 필요한 상태에 도달할 때까지 기다렸다가 계속 진행합니다.

참고

이 작업에는 ISO 디스크 이미지를 가져오는 것과 동일한 요구 사항이 있습니다. 자세한 내용은 Image Builder를 사용하여 확인된 Windows ISO 디스크 이미지 가져오기 단원을 참조하십시오.

기본 제한 시간: 720분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId ISO 디스크 이미지를 포함하는 빌드 인스턴스의 ID입니다. 문자열 이 워크플로의 빌드 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
amiName 단계가 생성한 AMI의 이름입니다. 문자열
snapshotId AMI를 지원하는 스냅샷의 ID입니다. 문자열
구조 AMI의 아키텍처(x86_64 또는 arm64). 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: CreateImageFromIsoStep action: CreateImageFromIso onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.CreateImageFromIsoStep.amiName

DistributeContainerImage

이 단계 작업을 사용하여 빌드 단계에서 생성한 컨테이너 이미지를 이미지에 대해 정의된 대상 리전의 Amazon ECR 리포지토리에 배포합니다. 컨테이너(DOCKER) 이미지의 배포 워크플로에서이 작업을 사용합니다. 에 상응하는 컨테이너 이미지로 작동합니다DistributeImage.

이 단계 작업은 빌드 인스턴스에서 Systems Manager 명령을 실행하여 컨테이너 이미지를 푸시합니다. 인스턴스에는 Docker와가 AWS CLI 설치되어 있어야 합니다. 자세한 내용은 BootstrapInstanceForContainer 단원을 참조하십시오.

중요

를 포함하는 워크플로에는 DistributeImage, ModifyImageAttributes또는 도 포함될 DistributeContainerImage 수 없습니다ApplyImageConfigurations. 단일 워크플로는 컨테이너 이미지 또는 AMIs 모두 배포하지는 않습니다.

기본 제한 시간: 120분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 컨테이너 이미지를 포함하는 빌드 인스턴스의 ID입니다. 문자열 이 워크플로의 빌드 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
succeededRegions 배포가 성공한 리전입니다. 배열
failedRegions 배포에 실패한 리전입니다. 배열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: DistributeContainer action: DistributeContainerImage onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.DistributeContainer.status

DistributeImage

이 단계 작업은 지정한 대상 리전 및 계정에 AMI를 배포합니다. CreateImage 또는 CreateImagePipeline 요청의 배포 구성 또는 기본 구성을 재정의하는 워크플로의 사용자 지정 배포 설정을 사용합니다.

참고

distributions 입력은 선택 사항입니다. 제공하는 경우 Image Builder는 워크플로 입력을 사용하고 연결된 배포 구성을 무시합니다. 이를 생략하면 Image Builder는 파이프라인 또는 이미지에 연결된 배포 구성으로 돌아갑니다.

기본 제한 시간: 360분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
배포 AMI의 배포 설정을 목록으로 표시합니다. 각 항목은 하나의 AWS 리전을 대상으로 합니다. 이 입력을 생략하면 Image Builder는 파이프라인 또는 이미지에 연결된 배포 구성을 사용합니다. 배열 아니요
배포:리전 AMI를 배포할 AWS 리전입니다. 문자열 최소 길이는 1이고, 최대 길이 1024.
distributions:name 분산 AMI에 적용할 이름입니다. 문자열 No
distributions:description 분산 AMI에 적용할 설명입니다. 문자열 No
distributions:targetAccountIds AMI를 배포할 계정 IDs. 배열 아니요
distributions:amiTags 분산 AMI에 적용할 태그입니다. 아니요 최대 50개의 태그.
배포:kmsKeyId 분산 AMI를 암호화하는 데 사용할 KMS 키입니다. 문자열 No

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
distributedImages 분산 이미지 목록 배열
distributedImages:region 분산 이미지의 AWS 리전입니다. 문자열
distributedImages:name AMI의 이름입니다. 문자열
distributedImages:amiId 분산 이미지의 AMI ID입니다. 문자열
distributedImages:accountId 분산 이미지의 대상 계정 ID입니다. 문자열
distributedImages:dateStarted 배포가 시작된 UTC 시간입니다. 문자열
distributedImages:dateStopped 배포가 완료된 UTC 시간입니다. 문자열
distributedImages:status 배포 상태입니다. 완료됨|실패함|취소됨|TimedOut
distributedImages:step 배포가 중지된 단계입니다. 완료됨|CopyAmiRunning
distributedImages:errorMessage 오류 메시지가 있는 경우 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: DistributeImage action: DistributeImage onFailure: Abort inputs: distributions: - region.$: "$.parameters.SourceRegion" description: "AMI distribution to source region" amiTags: DistributionTest: "SourceRegion" WorkflowStep: "DistributeToSourceRegion" BuildDate: "{{imagebuilder:buildDate:yyyyMMHHss}}" BuildVersion: "{{imagebuilder:buildVersion}}"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.DistributeImageStep.distributedImages

ExecuteComponents

이 단계 동작은 빌드 중인 현재 이미지의 레시피에 지정된 구성 요소를 실행합니다. 빌드 워크플로는 빌드 인스턴스에서 빌드 구성 요소를 실행합니다. 테스트 워크플로는 테스트 인스턴스에서만 테스트 구성 요소를 실행합니다.

Image Builder는 Systems Manager API의 sendCommand를 사용하여 구성 요소를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

기본 제한 시간: 720분

최대 제한 시간: 1일(24시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 구성 요소를 실행해야 하는 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 구성 요소를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ExecComponentsStep action: ExecuteComponents onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

워크플로 문서의 단계 작업 출력을 사용합니다.

$.stepOutputs.ExecComponentsStep.status

ExecuteStateMachine

이 단계 작업은 Image Builder 워크플로에서 AWS Step Functions 상태 시스템 실행을 시작합니다. Image Builder는 Step Functions StartExecution API를 사용하여 상태 시스템을 시작하고 완료될 때까지 기다립니다. 이는 복잡한 워크플로, 규정 준수 검증 또는 인증 프로세스를 이미지 빌드 파이프라인에 통합하는 데 유용합니다.

자세한 내용은 AWS Step Functions 개발자 안내서Step Functions의 상태 시스템에 대해 알아보기를 참조하세요.

기본 제한 시간: 6시간

최대 제한 시간: 24시간

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
stateMachineArn 실행할 Step Functions 상태 시스템의 ARN입니다. 문자열 유효한 상태 시스템 ARN이어야 합니다.
입력 상태 시스템에 제공할 JSON 입력 데이터입니다. 문자열 No {} 유효한 JSON 문자열이어야 하며 최대 길이는 16KiB입니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
executionArn 상태 시스템 실행의 ARN입니다. 문자열
output 상태 시스템 실행의 출력입니다. 문자열

IAM 권한 필요

이 단계 작업을 사용하려면 사용자 지정 실행 역할에 다음 권한이 있어야 합니다.

작업 허용
  • states:StartExecution

  • states:DescribeExecution

리소스 지정
  • arn:aws:states:us-west-2:111122223333:stateMachine:state-machine-name

  • arn:aws:states:us-west-2:111122223333:execution:state-machine-name:*

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ValidateImageCompliance action: ExecuteStateMachine timeoutSeconds: 3600 onFailure: Abort inputs: stateMachineArn: arn:aws:states:us-west-2:111122223333:stateMachine:ImageComplianceValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2", "complianceLevel": "high", "requiredScans": ["cve", "benchmark", "configuration"] }

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ValidateImageCompliance.executionArn

LaunchInstance

이 단계 작업을 사용하여에서 인스턴스를 시작합니다 AWS 계정. 작업은 인스턴스가 지정된 상태 확인 조건을 충족하고 Systems Manager 에이전트가 실행될 때까지 기다린 후 다음 단계로 진행합니다. 시작 작업은 레시피 및 인프라 구성 리소스의 설정을 사용합니다. 예를 들어, 시작할 인스턴스 유형은 인프라 구성에서 가져옵니다. 출력은 시작된 인스턴스의 인스턴스 ID입니다.

waitFor 입력은 단계 완료 요구 사항을 충족하는 조건을 구성합니다. healthCheck 입력은 단계를 진행하기 전에 통과해야 하는 EC2 인스턴스 상태 확인 수준을 지정합니다.

기본 제한 시간: 75분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 빌드 인스턴스의 경우 롤백은 인프라 구성 리소스에서 구성한 작업을 수행합니다. 기본적으로 이미지 생성에 실패하면 빌드 인스턴스가 종료됩니다. 하지만 인프라 구성에는 문제 해결을 위해 빌드 인스턴스를 유지하는 설정이 있습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
imageIdOverride 인스턴스를 시작하는 데 사용할 이미지 문자열 No

빌드 단계: 이미지 레시피 기본 이미지

테스트 단계: 빌드 단계에서 AMI 출력

유효한 AMI ID여야 합니다.
instanceTypesOverride Image Builder는 성공적으로 시작된 인스턴스 유형을 찾을 때까지 목록의 각 인스턴스 유형을 시도합니다. 문자열 목록 아니요 인프라 구성에 지정된 인스턴스 유형 유효한 인스턴스 유형이어야 합니다.
waitFor 워크플로 단계를 완료하고 다음 단계로 넘어가기 전에 기다릴 조건입니다. 문자열 없음 Image Builder는 ssmAgent(을)를 지원합니다.
healthCheck 워크플로 단계를 진행하기 전에 필요한 EC2 상태 확인 수준입니다. 최소한의 검증으로 더 빠른 빌드를 RUNNING 위해 STATUS_CHECK_PASSED를 지정하거나 EC2 상태 확인이 통과할 때까지 기다립니다. 문자열 No STATUS_CHECK_PASSED 유효한 값: RUNNING | STATUS_CHECK_PASSED.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
instanceId 시작한 인스턴스의 인스턴스 ID입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: LaunchStep action: LaunchInstance onFailure: Abort inputs: healthCheck: "RUNNING" waitFor: ssmAgent

워크플로 문서의 단계 작업 출력을 사용합니다.

$.stepOutputs.LaunchStep.instanceId

ModifyImageAttributes

이 단계 작업을 사용하여 시작 권한 및 기타 AMIs 속성과 같은 분산 AMI의 속성을 수정합니다. 대상 리전 및 계정에 배포된 AMIs에서 작동합니다.

참고

attributes 입력은 선택 사항입니다. 제공하는 경우 Image Builder는 워크플로 입력을 사용하고 연결된 배포 구성을 무시합니다. 이를 생략하면 Image Builder는 파이프라인 또는 이미지에 연결된 배포 구성으로 돌아갑니다.

기본 제한 시간: 120분

최대 제한 시간: 180분(3시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
distributedImages.$ 수정할 분산 이미지 목록입니다. 동일한 워크플로의 DistributeImage 단계에서 distributedImages 출력을 참조합니다. 문자열 로 시작하는 JSONPath 참조 $.stepOutputs.
attributes 목록으로 수정할 이미지 속성입니다. 각 항목은 하나의 AWS 리전을 대상으로 합니다. 배열 아니요
속성:리전 수정할 분산 AMI의 AWS 리전입니다. 문자열 의 각 항목에 필요합니다attributes.
attributes:launchPermission 분산 AMI에 적용할 시작 권한 설정입니다. 아니요
attributes:launchPermission:userIds AMI에 대한 시작 권한에 추가하거나 제거할 계정 IDs입니다. 배열 아니요
attributes:launchPermission:userGroups AMI에 대한 시작 권한에 추가하거나 제거할 사용자 그룹입니다. 배열 아니요
attributes:launchPermission:organizationArns AMI에 대한 시작 권한에 추가하거나 제거할 AWS Organizations ARNs입니다. 배열 아니요
attributes:launchPermission:organizationalUnitArns ARNs입니다. 배열 아니요

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
modifiedImages 수정된 이미지 목록 배열
modifiedImages:accountId 분산 이미지의 대상 계정 ID입니다. 문자열
modifiedImages:name AMI의 이름입니다. 문자열
modifiedImages:amiId 분산 이미지의 AMI ID입니다. 문자열
modifiedImages:dateStarted 배포가 시작된 UTC 시간입니다. 문자열
modifiedImages:dateStopped 배포가 완료된 UTC 시간입니다. 문자열
modifiedImages:step 배포가 중지된 단계입니다. 완료됨|ModifyAmiRunning
modifiedImages:region 이미지의 AWS 리전입니다. 문자열
modifiedImages:status 배포 상태입니다. 완료됨|실패함|취소됨|TimedOut
modifiedImages:errorMessage 오류 메시지가 있는 경우 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: ModifyImageAttributes action: ModifyImageAttributes onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages attributes: - region: us-west-2 launchPermission: userIds: - "111122223333"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.ModifyImageAttributesStep.modifiedImages

RegisterImage

이 단계 작업은 Amazon EC2 RegisterImage API를 사용하여 새 Amazon Machine Image(AMI)를 등록합니다. RegisterImage 이를 통해 기존 스냅샷 또는 스냅샷 세트에서 AMI를 생성하여 다양한 이미지 속성을 지정할 수 있습니다.

기본 제한 시간: 540분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
구조 AMI의 아키텍처입니다. 문자열 No 유효한 값: i386, x86_64, arm64, x86_64_mac, arm64_mac
blockDeviceMapping AMI에 대한 블록 디바이스 매핑 항목입니다. 배열 아니요
bootMode AMI의 부팅 모드입니다. 문자열 No 유효한 값: legacy-bios, uefi, uefi-preferred
description AMI에 대한 설명입니다. 문자열 No
enaSupport ENA를 사용한 향상된 네트워킹 활성화 여부. 부울 아니요
imageLocation AMI 매니페스트의 위치입니다. 문자열 No S3-backed AMIs에 필요
imdsSupport IMDSv2 지원 수준입니다. 문자열 No 유효한 값: v2.0
includeSnapshotTags 블록 디바이스 매핑에 정의된 첫 번째 스냅샷의 태그를 포함할지 여부입니다. 부울 아니요 FALSE

true로 설정하면 태그가 다음과 같이 포함됩니다.

  • blockDeviceMapping 목록에가 포함된 첫 번째 EBS 볼륨SnapshotId의에서 가져온 태그SnapshotId는 출력 AMI 태그와 병합됩니다.

  • 출력 AMI 태그는 키가 동일한 스냅샷 태그보다 우선합니다.

  • AWS 예약된 태그(로 시작하는 키가 있는 태그aws:)는 자동으로 제외됩니다.

  • 를 사용하여 여러 EBS 볼륨SnapshotId이 정의된 경우 SnapshotId가 포함된 목록의 첫 번째 EBS 볼륨에 있는 태그만 포함됩니다.

kernelId 사용할 커널의 ID입니다. 문자열 No
ramdiskId 사용할 RAM 디스크의 ID입니다. 문자열 No
rootDeviceName 루트 디바이스의 디바이스 이름입니다. 문자열 No 예: /dev/sda1
sriovNetSupport Intel 82599 VF 인터페이스를 사용하여 네트워킹을 개선했습니다. 문자열 No
tpmSupport TPM 버전 지원. 문자열 No 유효한 값: v2.0
uefiData Base64-encoded UEFI 데이터입니다. 문자열 No
virtualizationType 가상화 유형입니다. 문자열 No 유효한 값: hvm, 반가상화

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
imageId 등록된 이미지의 AMI ID입니다. 문자열

IAM 권한 필요

이 단계 작업을 사용하려면 사용자 지정 실행 역할에 다음 권한이 있어야 합니다.

작업 허용
  • ec2:DescribeSnapshots

  • ec2:CreateTags

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: RegisterNewImage action: RegisterImage onFailure: Abort inputs: architecture: "x86_64" bootMode: "uefi" blockDeviceMapping: - DeviceName: "/dev/sda1" Ebs: SnapshotId: "snap-1234567890abcdef0" VolumeSize: 100 VolumeType: "gp3" rootDeviceName: "/dev/sda1" virtualizationType: "hvm"

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.RegisterNewImage.imageId

다른 단계의 SnapshotId와 생성된 AMI에 포함된 스냅샷 태그가 있는 예제

- name: CreateSnapshot action: RunCommand onFailure: Abort inputs: instanceId: "i-1234567890abcdef0" documentName: "AWS-RunShellScript" parameters: commands: - "aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description 'Snapshot for AMI' --query 'SnapshotId' --output text" - name: RegisterImageFromSnapshot action: RegisterImage onFailure: Abort inputs: architecture: "x86_64" bootMode: "uefi" blockDeviceMapping: - DeviceName: "/dev/sda1" Ebs: SnapshotId.$: "$.stepOutputs.CreateSnapshot.output[0]" VolumeSize: 100 VolumeType: "gp3" includeSnapshotTags: true rootDeviceName: "/dev/sda1" virtualizationType: "hvm"

RunCommand

이 단계 동작은 워크플로의 명령 문서를 실행합니다. Image Builder는 Systems Manager API의 sendCommand를 사용하여 대신 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

기본 제한 시간: 720분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 명령 문서를 실행할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.
documentName 실행할 Systems Manager 명령 문서의 이름입니다. 문자열
parameters 명령 문서에 필요한 파라미터의 키 값 페어의 목록입니다. dictionary<string, list<string>> 조건부
documentVersion 실행할 명령 문서 버전입니다. 문자열 No $DEFAULT

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 명령 문서를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열 목록

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: RunCommandDoc action: RunCommand onFailure: Abort inputs: documentName: SampleDocument parameters: osPlatform: - "linux" instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.RunCommandDoc.status

RunSysPrep

이 단계 작업은 스냅샷을 위해 빌드 인스턴스가 종료되기 전에 Systems Manager API의 sendCommand를 사용하여 Windows 인스턴스용 AWSEC2-RunSysprep 문서를 실행합니다. 이러한 작업은 AWS 이미지 강화 및 정리 모범 사례를 따릅니다.

기본 제한 시간: 60분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId AWSEC2-RunSysprep 문서를 실행할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 AWSEC2-RunSysprep 문서를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: RunSysprep action: RunSysPrep onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.RunSysprep.status

SanitizeInstance

이 단계 작업은 스냅샷을 위해 빌드 인스턴스를 종료하기 전에 Linux 인스턴스용 권장 삭제 스크립트를 실행합니다. 삭제 스크립트는 최종 이미지가 보안 모범 사례를 따르는지 확인하고 스냅샷으로 전달해서는 안 되는 빌드 아티팩트 또는 설정을 제거하는 데 도움이 됩니다. 스크립트에 대한 자세한 내용은 빌드 후 정리 필요 섹션을 참조하세요. 이 단계 작업은 컨테이너 이미지에 적용되지 않습니다.

Image Builder는 Systems Manager API의 sendCommand를 사용하여 이 스크립트를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.

기본 제한 시간: 60분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 삭제할 인스턴스의 ID입니다. 문자열 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
runCommandId 인스턴스에서 삭제 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. 문자열
status Systems Manager sendCommand에서 반환된 상태입니다. 문자열
output Systems Manager sendCommand에서 반환된 출력입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: SanitizeStep action: SanitizeInstance onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.SanitizeStep.status

TerminateInstance

이 단계 작업은 instanceId 입력으로 지정한 인스턴스를 종료합니다. 기본적으로 종료를 시작하고 기다리지 않고 다음 단계로 이동합니다. 백그라운드 프로세스는 종료 시 EC2 서비스 오류가 발생하는 경우 정리를 처리합니다. 계속하기 전에 완전히 종료될 때까지 기다리려면 waitForTermination 입력을 로 설정합니다true.

기본 제한 시간: 30분

최대 제한 시간: 720분(12시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId 종료할 인스턴스의 ID입니다. 문자열 없음 없음
waitForTermination 단계가 계속하기 전에 인스턴스가 종료 상태에 도달할 때까지 대기할지 여부를 지정합니다. 로 설정하면 true단계가 완전히 종료될 때까지 기다립니다(10초에서 몇 분). 부울 아니요 false true | false

출력: 이 단계 작업에 대한 출력이 없습니다.

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: TerminateInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: i-1234567890abcdef0 waitForTermination: false

WaitForAction

이 단계 작업은 실행 중인 워크플로를 일시 중지하고 Image Builder SendWorkflowStepAction API 작업으로부터 외부 작업을 수신할 때까지 기다립니다. 이 단계에서는 EventBridge 이벤트를 세부 정보 유형 EC2 Image Builder Workflow Step Waiting과 함께 기본 EventBridge 이벤트 버스에 게시합니다. 이 단계에서는 SNS 주제 ARN을 제공하는 경우 SNS 알림을 보내거나 Lambda 함수 이름을 제공하는 경우 Lambda 함수를 비동기적으로 호출할 수도 있습니다.

일시 중지 및 재개 작동 방식

WaitForAction 단계가 실행되면 Image Builder는 단계 상태를 WAITING 로 설정하고 EventBridge 이벤트(세부 정보 유형 EC2 Image Builder Workflow Step Waiting)를 게시합니다. 를 제공하면 Amazon SNS 알림snsTopicArn도 전송됩니다. 를 제공하면 해당 함수가 비동기적으로 lambdaFunctionName호출됩니다. 워크플로는 다음 중 하나가 발생할 때까지 일시 중지된 상태로 유지됩니다.

  • 계속하려면 SendWorkflowStepAction를 호출RESUME하고 워크플로를 종료STOP하려면를 호출합니다.

  • 단계가 제한 시간(기본값 3일, 최대 7일)에 도달하면 워크플로가 실패합니다.

reason 전달하는 SendWorkflowStepAction는 단계와 함께 저장되며 이후 단계에서 단계의 reason 출력으로 사용할 수 있습니다.

기본 제한 시간: 3일

최대 제한 시간: 7일(604,800초)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
snsTopicArn 워크플로 단계가 보류 중일 때 알림을 보내는 선택적 SNS 주제 ARN입니다. 문자열 No
lambdaFunctionName 워크플로 단계가 보류 중일 때 비동기적으로 호출하는 Lambda 함수의 선택적 이름 또는 ARN입니다. 문자열 No
payload SNS의 메시지로 사용되는 JSON 문자열과 Lambda의 페이로드입니다. 제공된 경우 사용자 지정 페이로드는 각각 SNS 및 Lambda에 사용되는 기본 메시지/페이로드로 래핑됩니다. 제공되지 않은 경우는 기본 메시지/페이로드를 생성합니다. 문자열 No 유효한 JSON 문자열이어야 하며 최대 16KiB여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
작업 SendWorkflowStepAction API 작업이 반환하는 작업입니다. 문자열(RESUME 또는 STOP)
reason 작업이 반환된 이유입니다. 문자열

IAM 권한 필요

이 단계 작업을 사용하려면 사용자 지정 실행 역할에 다음 권한이 있어야 합니다.

작업 허용
  • lambda:InvokeFunction

리소스 지정
  • arn:aws:lambda:us-west-2:111122223333:function:function-name

  • arn:aws:lambda:us-west-2:111122223333:function:*

예제

SNS 알림을 사용하여 워크플로 문서에서 단계 작업을 지정합니다.

- name: SendEventAndWait action: WaitForAction onFailure: Abort inputs: snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic

Lambda 함수 호출을 사용하여 워크플로 문서에서 단계 작업을 지정합니다.

- name: SendEventAndWaitWithLambda action: WaitForAction onFailure: Abort inputs: lambdaFunctionName: ExampleFunction payload: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2" }

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.SendEventAndWait.reason

WaitForSSMAgent

이 단계 작업은 예상 무응답 기간이 지난 후에서 AWS Systems Manager EC2 인스턴스를 관리할 수 있을 때까지 기다립니다. 시스템 재부팅, OS 업그레이드 또는 SSM에서 인스턴스를 일시적으로 연결 해제하는 플랫폼별 작업과 같이 알려진 인스턴스 중단이 있는 워크플로에 특히 유용합니다. Image Builder는 SSM 연결을 다시 얻거나 시간이 초과될 때까지 인스턴스를 모니터링합니다.

기본 제한 시간: 60분

최대 제한 시간: 180분(3시간)

표시된 최대값timeoutSeconds까지 로 기본값을 재정의할 수 있습니다. 최대값을 초과하는 값은 검증에 실패합니다.

롤백: 이 단계 작업에는 롤백이 없습니다.

입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.

입력 이름 설명 형식 필수 기본값 제약 조건
instanceId SSM 연결을 모니터링할 인스턴스의 ID입니다. 문자열 유효한 EC2 인스턴스 ID여야 합니다.

출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.

출력 이름 설명 형식
status SSM 에이전트의 연결 상태입니다. 문자열

예제

워크플로 문서에 단계 작업을 지정합니다.

- name: WaitForInstanceAfterReboot action: WaitForSSMAgent onFailure: Abort timeoutSeconds: 900 inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.

$.stepOutputs.WaitForInstanceAfterReboot.status