기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
워크플로 문서에 지원되는 단계 작업
이 섹션에는 Image Builder에서 지원하는 단계 작업에 대한 세부 정보가 포함되어 있습니다.
이 섹션에서 사용되는 용어
- AMI
-
Amazon Machine Image
- ARN
-
Amazon 리소스 이름
지원되는 작업
ApplyImageConfigurations
이 단계 작업은 라이선스 구성, 시작 템플릿 구성, S3 내보내기 구성, EC2 Fast Launch 구성 및 Systems Manager 파라미터 구성과 같은 다양한 구성 및 통합을 분산 AMIs에 적용합니다. 구성은 소스 계정의 분산 이미지에만 적용됩니다. 단, 교차 계정을 적용할 수 있는 SSM 파라미터 구성은 예외입니다.
기본 제한 시간: 360분
최대 제한 시간: 720분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| 리전. | 이미지 리전입니다. | 문자열 | 예 | ||
| licenseConfigurationArns | 이미지의 라이선스 구성 ARN입니다. | Array | 아니요 | ||
| launchTemplateConfigurations | Array | 아니요 | |||
| launchTemplateConfigurations:launchTemplateId | 이미지에 적용할 시작 템플릿 ID입니다. | 문자열 | launchTemplateConfigurations가 지정된 경우 예 |
||
| launchTemplateConfigurations:accountId | 이미지에 적용할 시작 템플릿 계정 IDs. | 문자열 | No | ||
| launchTemplateConfigurations:setDefaultVersion | 이미지에 대한 시작 템플릿 기본 버전 설정입니다. | 불린(Boolean) | 아니요 | ||
| s3ExportConfiguration | Array | 아니요 | |||
| s3ExportConfiguration:roleName | 이미지의 S3 내보내기 구성 역할 이름입니다. | 문자열 | s3ExportConfiguration가 지정된 경우 예 |
||
| s3ExportConfiguration:diskImageFormat | 이미지의 S3 내보내기 구성 디스크 이미지 형식입니다. | 문자열 | s3ExportConfiguration가 지정된 경우 예 |
허용된 값 - VMDK|RAW|VHD | |
| s3ExportConfiguration:s3Bucket | 이미지의 S3 내보내기 구성 버킷 이름입니다. | 문자열 | s3ExportConfiguration가 지정된 경우 예 |
||
| s3ExportConfiguration:s3Prefix | 이미지의 S3 내보내기 구성 버킷 접두사입니다. | 문자열 | No | ||
| fastLaunchConfigurations | 이미지에 대한 EC2 Fast Launch 구성입니다. | Array | 아니요 | ||
| fastLaunchConfigurations:enabled | 이미지에 대해 EC2 Fast Launch가 활성화/비활성화되었습니다. | 불린(Boolean) | fastLaunchConfigurations가 지정된 경우 예 |
||
| fastLaunchConfigurations:snapshotConfiguration | 이미지에 대해 EC2 Fast Launch가 활성화/비활성화되었습니다. | 맵 | 아니요 | ||
| fastLaunchConfigurations:snapshotConfiguration:targetResourceCount | 이미지에 대한 EC2 Fast Launch 대상 리소스 수입니다. | Integer | 아니요 | ||
| fastLaunchConfigurations:maxParallelLaunches | 이미지에 대한 EC2 Fast Launch 최대 병렬 시작입니다. | Integer | 아니요 | ||
| fastLaunchConfigurations:launchTemplate | 아니요 | ||||
| fastLaunchConfigurations:launchTemplate:launchTemplateId | 이미지의 EC2 Fast Launch 시작 템플릿 ID입니다. | 문자열 | No | ||
| fastLaunchConfigurations:launchTemplate:launchTemplateName | 이미지의 EC2 Fast Launch 시작 템플릿 이름입니다. | 문자열 | No | ||
| fastLaunchConfigurations:launchTemplate:launchTemplateVersion | 이미지에 대한 EC2 Fast Launch 시작 템플릿 버전입니다. | 문자열 | No | ||
| ssmParameterConfigurations | 이미지에 대한 SSM 파라미터 구성입니다. | 맵 | 아니요 | ||
| ssmParameterConfigurations:amiAccountId | 이미지의 SSM 파라미터 AMI 계정 ID입니다. | 문자열 | No | ||
| ssmParameterConfigurations:parameterName | 이미지의 SSM 파라미터 이름입니다. | 문자열 | ssmParameterConfigurations가 지정된 경우 예 |
||
| ssmParameterConfigurations:dataType | 이미지의 SSM 파라미터 데이터 유형입니다. | 문자열 | No | 허용된 값 - text|aws:ec2:image) |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| configuredImages | 구성된 이미지 목록입니다. | Array |
| configuredImages:accountId | 분산 이미지의 대상 계정 ID입니다. | 문자열 |
| configuredImages:name | AMI의 이름입니다. | 문자열 |
| configuredImages:amiId | 분산 이미지의 AMI ID입니다. | 문자열 |
| configuredImages:dateStarted | 배포가 시작된 UTC 시간입니다. | 문자열 |
| configuredImages:dateStopped | 배포가 완료된 UTC 시간입니다. | 문자열 |
| configuredImages:step | 배포가 중지된 단계입니다. | Completed|AssociateLicensesRunning|UpdateLaunchTemplateRunning|PutSsmParametersRunning|UpdateFastLaunchConfiguration|ExportAmiQueued|ExportAmiRunning |
| configuredImages:region | 분산 이미지의 톤 AWS | 문자열 |
| configuredImages:status | 배포 상태입니다. | 완료됨|실패함|취소됨|TimedOut |
| configuredImages:errorMessage | 오류 메시지가 있는 경우 | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:ApplyImageConfigurationsaction: ApplyImageConfigurations onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.ApplyImageConfigurationsStep.configuredImages
BootstrapInstanceForContainer
이 단계 작업은 서비스 스크립트를 실행하여 컨테이너 워크플로를 실행하기 위한 최소 요구 사항으로 인스턴스를 부트스트랩합니다. Image Builder는 Systems Manager API의 sendCommand를 사용하여 이 스크립트를 실행합니다. 자세한 내용은 AWS Systems Manager Run Command를 참조하세요.
참고
부트스트랩 스크립트는 Image Builder가 Docker 컨테이너를 성공적으로 빌드하기 위한 사전 조건인 AWS CLI 및 Docker 패키지를 설치합니다. 이 단계 작업을 포함하지 않으면 이미지 빌드가 실패할 수 있습니다.
기본 제한 시간: 60분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 부트스트랩할 인스턴스의 ID입니다. | 문자열 | 예 | 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| runCommandId | 인스턴스에서 부트스트랩 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. | 문자열 |
| status | Systems Manager sendCommand에서 반환된 상태입니다. | 문자열 |
| output | Systems Manager sendCommand에서 반환된 출력입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:ContainerBootstrapStepaction: 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분
롤백: Image Builder는 이 단계에서 생성된 모든 Systems Manager 리소스를 롤백합니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 메타데이터 설정을 적용할 빌드 인스턴스입니다. | 문자열 | 예 | 이 워크플로의 빌드 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| osVersion | 빌드 인스턴스에서 수집된 운영 체제의 이름과 버전입니다. | 문자열 |
| associationId | 인벤토리 수집에 사용하는 Systems Manager 연결 ID입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:CollectMetadataStepaction: CollectImageMetadata onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId
워크플로 문서의 단계 작업 출력을 사용합니다.
$.stepOutputs.CollectMetadataStep.osVersion
CollectImageScanFindings
계정에서 Amazon Inspector를 활성화하고 파이프라인에서 이미지 스캔을 활성화한 경우, 이 단계 작업은 테스트 인스턴스에 대해 Amazon Inspector에서 보고한 이미지 스캔 결과를 수집합니다. 빌드 워크플로에는 이 단계 작업을 사용할 수 없습니다.
기본 제한 시간: 120분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 스캔을 실행한 인스턴스의 ID입니다. | 문자열 | 예 | 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| runCommandId | 검색 결과를 수집하기 위해 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. | 문자열 |
| status | Systems Manager sendCommand에서 반환된 상태입니다. | 문자열 |
| output | Systems Manager sendCommand에서 반환된 출력입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:CollectFindingsStepaction: CollectImageScanFindings onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.CollectFindingsStep.status
CreateImage
이 단계 작업은 Amazon EC2 CreateImage API를 이용하여 실행 중인 인스턴스에서 이미지를 생성합니다. 생성 프로세스 중에 단계 작업은 리소스가 올바른 상태에 도달했는지 확인하기 위해 필요한 만큼 대기한 후 작업을 계속합니다.
기본 제한 시간: 720분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 새 이미지를 만들 때 사용할 인스턴스입니다. | 문자열 | 예 | 제공된 인스턴스 ID의 인스턴스는 이 단계가 시작될 때 running 상태여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| imageId | 생성한 이미지의 AMI ID입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:CreateImageFromInstanceaction: CreateImage onFailure: Abort inputs: instanceId.$: "i-1234567890abcdef0"
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.CreateImageFromInstance.imageId
DistributeImage
이 단계 작업은 AMI를 지정된 리전 및 계정에 배포합니다. CreateImage 또는 CreateImagePipeline APIs에 대한 요청 또는 워크플로에 제공된 사용자 지정 배포 설정에 제공된 배포 구성을 기반으로 대상 리전 및 계정에 AMI의 복사본을 생성하여 배포 구성의 설정을 재정의합니다.
기본 제한 시간: 360분
최대 제한 시간: 720분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| 리전. | 이미지를 배포할 리전 목록입니다. | 문자열 | 예 | 최소 길이는 1이고, 최대 길이 1024. | |
| name | 배포 구성의 이름입니다. | 문자열 | No | ||
| 설명 | 배포 구성의 배포입니다. | 문자열 | No | ||
| targetAccountIds | 이미지를 배포할 계정 IDs. | Array | 아니요 | ||
| amiTags | 배포 구성의 태그입니다. | 맵 | 아니요 | ||
| kmsKeyId | 분산 이미지에 적용할 KMS 키입니다. | 문자열 | No |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| distributedImages | 분산 이미지 목록 | Array |
| distributedImages:region | 분산 이미지의 Tne 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:DistributeImageaction: 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분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 구성 요소를 실행해야 하는 인스턴스의 ID입니다. | 문자열 | 예 | 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| runCommandId | 인스턴스에서 구성 요소를 실행한 Systems Manager sendCommand의 ID입니다. | 문자열 |
| status | Systems Manager sendCommand에서 반환된 상태입니다. | 문자열 |
| output | Systems Manager sendCommand에서 반환된 출력입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:ExecComponentsStepaction: 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시간
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| stateMachineArn | 실행할 Step Functions 상태 시스템의 ARN입니다. | 문자열 | 예 | 유효한 상태 시스템 ARN이어야 합니다. | |
| 입력 | 상태 시스템에 제공할 JSON 입력 데이터입니다. | 문자열 | No | {} | 유효한 JSON 문자열이어야 하며 최대 길이는 16KiB입니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| executionArn | 상태 시스템 실행의 ARN입니다. | 문자열 |
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:ValidateImageComplianceaction: ExecuteStateMachine timeoutSeconds: 3600 onFailure: Abort inputs: stateMachineArn: arn:aws:states:us-west-2:111122223333:stateMachine:ImageComplianceValidationinput: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2", "complianceLevel": "high", "requiredScans": ["cve", "benchmark", "configuration"] }
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.ValidateImageCompliance.executionArn
LaunchInstance
이 단계 작업은에서 인스턴스를 시작하고 다음 단계로 넘어가기 전에 Systems Manager 에이전트가 인스턴스에서 실행될 때까지 AWS 계정 기다립니다. 시작 작업에는 레시피의 설정과 이미지와 관련된 인프라 구성 리소스가 사용됩니다. 예를 들어, 시작할 인스턴스 유형은 인프라 구성에서 가져옵니다. 출력은 시작한 인스턴스의 인스턴스 ID입니다.
waitFor 입력은 단계 완료 요구 사항을 충족하는 조건을 구성합니다.
기본 제한 시간: 60분
롤백: 빌드 인스턴스의 경우 롤백은 인프라 구성 리소스에서 구성한 작업을 수행합니다. 기본적으로 이미지 생성에 실패하면 빌드 인스턴스가 종료됩니다. 하지만 인프라 구성에는 문제 해결을 위해 빌드 인스턴스를 유지하는 설정이 있습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| imageIdOverride | 인스턴스를 시작하는 데 사용할 이미지 | 문자열 | No |
빌드 단계: 이미지 레시피 기본 이미지 테스트 단계: 빌드 단계에서 AMI 출력 |
유효한 AMI ID여야 합니다. |
| instanceTypesOverride | Image Builder는 성공적으로 시작되는 인스턴스 유형을 찾을 때까지 목록의 각 인스턴스 유형을 시도합니다. | 문자열 목록 | 아니요 | 인프라 구성에 지정된 인스턴스 유형 | 유효한 인스턴스 유형이어야 합니다. |
| waitFor | 워크플로 단계를 완료하고 다음 단계로 넘어가기 전에 기다릴 조건입니다. | 문자열 | 예 | Image Builder는 ssmAgent(을)를 지원합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| instanceId | 시작한 인스턴스의 인스턴스 ID입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:LaunchStepaction: LaunchInstance onFailure: Abort inputs: waitFor:ssmAgent
워크플로 문서의 단계 작업 출력을 사용합니다.
$.stepOutputs.LaunchStep.instanceId
ModifyImageAttributes
이 단계 작업은 시작 권한 및 기타 AMIs 속성과 같은 분산 AMI의 속성을 수정합니다. 대상 리전 및 계정에 배포된 AMIs에서 작동합니다.
기본 제한 시간: 120분
최대 제한 시간: 180분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| 리전. | 이미지의 리전입니다. | 문자열 | 예 | ||
| launchPermission | 아니요 | ||||
| launchPermission:userIds | 이미지의 시작 권한에서 수정할 사용자 IDs입니다. | 문자열 | No | ||
| launchPermission:userGroups | 이미지에 대한 시작 권한에서 수정할 사용자 그룹입니다. | 문자열 | No | ||
| launchPermission:organizationArns | 이미지에 대한 시작 권한에서 수정할 AWS 조직 ARNs입니다. | 문자열 | No | ||
| launchPermission:organizationalUnitArns | 이미지에 대한 시작 권한에서 수정할 AWS 조직 단위 ARNs입니다. | 문자열 | No |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| modifiedImages | 수정된 이미지 목록 | Array |
| modifiedImages:accountId | 분산 이미지의 대상 계정 ID입니다. | 문자열 |
| modifiedImages:name | AMI의 이름입니다. | 문자열 |
| modifiedImages:amiId | 분산 이미지의 AMI ID입니다. | 문자열 |
| modifiedImages:dateStarted | 배포가 시작된 UTC 시간입니다. | 문자열 |
| modifiedImages:dateStopped | 배포가 완료된 UTC 시간입니다. | 문자열 |
| modifiedImages:step | 배포가 중지된 단계입니다. | 완료됨|ModifyAmiRunning |
| modifiedImages:region | 이미지의 Tne AWS 리전입니다. | 문자열 |
| modifiedImages:status | 배포 상태입니다. | 완료됨|실패함|취소됨|TimedOut |
| modifiedImages:errorMessage | 오류 메시지가 있는 경우 | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:ModifyImageAttributesaction: ModifyImageAttributes onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.ModifyImageAttributesStep.modifiedImages
RegisterImage
이 단계 작업은 Amazon EC2 RegisterImage API를 사용하여 새 Amazon Machine Image(AMI)를 등록합니다. RegisterImage 이를 통해 기존 스냅샷 또는 스냅샷 세트에서 AMI를 생성하여 다양한 이미지 속성을 지정할 수 있습니다.
기본 제한 시간: 720분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| architecture | AMI의 아키텍처입니다. | 문자열 | No | 유효한 값: i386, x86_64, arm64, x86_64_mac, arm64_mac | |
| blockDeviceMapping | AMI에 대한 블록 디바이스 매핑 항목입니다. | Array | 아니요 | ||
| bootMode | AMI의 부팅 모드입니다. | 문자열 | No | 유효한 값: legacy-bios, uefi, uefi-preferred | |
| 설명 | AMI에 대한 설명입니다. | 문자열 | No | ||
| enaSupport | ENA를 사용한 향상된 네트워킹 활성화 여부. | 불린(Boolean) | 아니요 | ||
| imageLocation | AMI 매니페스트의 위치입니다. | 문자열 | No | S3-backed AMIs에 필요 | |
| imdsSupport | IMDSv2 지원 수준입니다. | 문자열 | No | 유효한 값: v2.0 | |
| includeSnapshotTags | 블록 디바이스 매핑에 정의된 첫 번째 스냅샷의 태그를 포함할지 여부입니다. | 불린(Boolean) | 아니요 | FALSE |
true로 설정하면 태그가 다음과 같이 포함됩니다.
|
| 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입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- 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-idvol-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를 참조하세요.
기본 제한 시간: 12시간
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| 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:RunCommandDocaction: RunCommand onFailure: Abort inputs: documentName:SampleDocumentparameters: osPlatform: - "linux" instanceId.$: $.stepOutputs.LaunchStep.instanceId
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.RunCommandDoc.status
RunSysPrep
이 단계 작업은 스냅샷을 위해 빌드 인스턴스가 종료되기 전에 Systems Manager API의 sendCommand를 사용하여 Windows 인스턴스용 AWSEC2-RunSysprep 문서를 실행합니다. 이러한 작업은 AWS 이미지 강화 및 정리 모범 사례를
기본 제한 시간: 60분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | AWSEC2-RunSysprep 문서를 실행할 인스턴스의 ID입니다. |
문자열 | 예 | 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| runCommandId | 인스턴스에서 AWSEC2-RunSysprep 문서를 실행한 Systems Manager sendCommand의 ID입니다. |
문자열 |
| status | Systems Manager sendCommand에서 반환된 상태입니다. | 문자열 |
| output | Systems Manager sendCommand에서 반환된 출력입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:RunSysprepaction: 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분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 삭제할 인스턴스의 ID입니다. | 문자열 | 예 | 이 워크플로의 인스턴스를 시작한 워크플로 단계의 출력 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| runCommandId | 인스턴스에서 삭제 스크립트를 실행한 Systems Manager sendCommand의 ID입니다. | 문자열 |
| status | Systems Manager sendCommand에서 반환된 상태입니다. | 문자열 |
| output | Systems Manager sendCommand에서 반환된 출력입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:SanitizeStepaction: SanitizeInstance onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.SanitizeStep.status
TerminateInstance
이 단계 작업은 입력으로 전달된 인스턴스 ID를 사용하여 인스턴스를 종료합니다.
기본 제한 시간: 30분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | 종료할 인스턴스의 ID입니다. | 문자열 | 예 |
출력: 이 단계 작업에 대한 출력이 없습니다.
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:TerminateInstanceaction: TerminateInstance onFailure: Continue inputs: instanceId.$:i-1234567890abcdef0
WaitForAction
이 단계 작업은 실행 중인 워크플로를 일시 중지하고 Image Builder SendWorkflowStepAction API 작업으로부터 외부 작업을 수신할 때까지 기다립니다. 이 단계에서는 EventBridge 이벤트를 세부 정보 유형 EC2 Image Builder Workflow Step Waiting과 함께 기본 EventBridge 이벤트 버스에 게시합니다. 이 단계에서는 SNS 주제 ARN을 제공하는 경우 SNS 알림을 보내거나 Lambda 함수 이름을 제공하는 경우 Lambda 함수를 비동기적으로 호출할 수도 있습니다.
기본 제한 시간: 3일
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| snsTopicArn | 워크플로 단계가 보류 중일 때 알림을 보내는 선택적 SNS 주제 ARN입니다. | 문자열 | No | ||
| lambdaFunctionName | 워크플로 단계가 보류 중일 때 비동기적으로 호출하는 Lambda 함수의 선택적 이름 또는 ARN입니다. | 문자열 | No | ||
| payload | SNS의 메시지로 사용되는 JSON 문자열과 Lambda의 페이로드입니다. 제공된 경우 사용자 지정 페이로드는 각각 SNS 및 Lambda에 사용되는 기본 메시지/페이로드로 래핑됩니다. 제공되지 않은 경우는 기본 메시지/페이로드를 생성합니다. | 문자열 | No | 유효한 JSON 문자열이어야 하며 최대 16KiB여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| 작업 | SendWorkflowStepAction API 작업이 반환하는 작업입니다. | 문자열(RESUME 또는 STOP) |
| reason | 작업이 반환된 이유입니다. | 문자열 |
예제
SNS 알림을 사용하여 워크플로 문서에서 단계 작업을 지정합니다.
- name:SendEventAndWaitaction: WaitForAction onFailure: Abort inputs: snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic
Lambda 함수 호출을 사용하여 워크플로 문서에서 단계 작업을 지정합니다.
- name:SendEventAndWaitWithLambdaaction: WaitForAction onFailure: Abort inputs: lambdaFunctionName:ExampleFunctionpayload: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-west-2" }
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.SendEventAndWait.reason
WaitForSSMAgent
이 단계 작업은 예상 무응답 기간이 지난 후에서 AWS Systems Manager EC2 인스턴스를 관리할 수 있을 때까지 기다립니다. 시스템 재부팅, OS 업그레이드 또는 SSM에서 인스턴스를 일시적으로 연결 해제하는 플랫폼별 작업과 같이 알려진 인스턴스 중단이 있는 워크플로에 특히 유용합니다. Image Builder는 SSM 연결을 다시 얻거나 시간 초과될 때까지 인스턴스를 모니터링합니다.
기본 제한 시간: 60분
최대 제한 시간: 180분
롤백: 이 단계 작업에는 롤백이 없습니다.
입력: 다음 표에는 이 단계 작업에 지원되는 입력이 포함되어 있습니다.
| 입력 이름 | 설명 | 형식 | 필수 | 기본값 | 제약 조건 |
|---|---|---|---|---|---|
| instanceId | SSM 연결을 모니터링할 인스턴스의 ID입니다. | 문자열 | 예 | 유효한 EC2 인스턴스 ID여야 합니다. |
출력: 다음 표에는 이 단계 작업의 출력이 포함되어 있습니다.
| 출력 이름 | 설명 | 형식 |
|---|---|---|
| Status | SSM 에이전트의 연결 상태입니다. | 문자열 |
예제
워크플로 문서에 단계 작업을 지정합니다.
- name:WaitForInstanceAfterRebootaction: WaitForSSMAgent onFailure: Abort timeoutInSeconds: 900 # 15 minutes inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId
워크플로 문서에 있는 단계 작업 값의 출력을 사용합니다.
$.stepOutputs.WaitForInstanceAfterReboot.Status