기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에서 컨테이너 이미지 파이프라인 생성 AWS CLI
에서 이미지 파이프라인을 생성하려면 파이프라인에 적용되는 구성 옵션을 사용하여 create-image-pipeline 명령을 AWS CLI실행합니다. 모든 파이프라인 구성이 포함된 JSON 파일을 생성하거나 런타임 시 구성을 지정할 수 있습니다. 이 섹션에서는 JSON 구성 파일 메서드를 사용하여 명령을 단순화합니다.
파이프라인이 기본 이미지와 구성 요소의 보류 중인 업데이트를 통합하기 위해 새 이미지를 빌드하는 빈도는 구성한 schedule에 따라 다릅니다. schedule(에)는 다음 속성이 있습니다.
-
scheduleExpression- 파이프라인 실행 일정을 설정하여pipelineExecutionStartCondition(을)를 평가하고 빌드를 시작할지 여부를 결정합니다. 일정은 cron 표현식으로 구성됩니다. Image Builder에서 cron 표현식의 형식을 지정하는 방법에 대한 자세한 내용은 Image Builder에서 cron 표현식 사용 섹션을 참조하세요. -
pipelineExecutionStartCondition- 파이프라인에서 빌드를 시작할지 여부를 결정합니다. 유효한 값으로는 다음이 포함됩니다.-
EXPRESSION_MATCH_ONLY- 파이프라인은 cron 표현식이 현재 시간과 일치할 때마다 새 이미지를 생성합니다. -
EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE- 파이프라인은 일정 표현식이 일치하고 기본 이미지 또는 구성 요소에 대해 보류 중인 업데이트가 있는 경우에만 새 이미지를 빌드합니다. 보류 중인 업데이트가 없으면 빌드를 건너뜁니다. 업데이트를 기다리지 않고 즉시 빌드하려면 파이프라인을 수동으로 실행합니다.
-
에서 create-image-pipeline 명령을 실행할 때 AWS CLI대부분의 구성 리소스는 선택 사항입니다. 그러나 일부 리소스에는 파이프라인이 생성하는 이미지 유형에 따라 조건부 요구 사항이 있습니다. 컨테이너 이미지 파이프라인에는 다음과 같은 리소스가 필요합니다.
-
컨테이너 레시피ARN
-
인프라 구성 ARN
명령을 실행할 때 배포 구성 리소스를 포함하지 않으면 create-image-pipeline 명령을 실행하는 리전의 컨테이너 레시피에 대상 리포지토리로 지정한 ECR 리포지토리에 출력 이미지가 저장됩니다. 파이프라인의 배포 구성 리소스를 포함하면 배포의 첫 번째 리전에 대해 지정한 대상 리포지토리가 사용됩니다.
-
CLI 입력 JSON 파일 생성
자주 사용하는 파일 편집 도구를 사용하여 다음 키와 환경에 적합한 값을 포함하는 JSON 파일을 만드세요. 이 예제에서는
create-image-pipeline.json(이)라는 이름의 파일이 사용됩니다.{ "name": "MyWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled": true, "containerRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:container-recipe/my-example-recipe/2020.12.03", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure-configuration", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration", "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "cron(0 0 * * SUN *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }참고
-
JSON 파일 경로의 시작 부분에
file://표기법을 포함시켜야 합니다. -
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.
-
-
작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.
aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json
예: 이미지 스캔 및 사용자 지정 워크플로를 사용하여 컨테이너 파이프라인 생성
이 예제에서는 매주 월요일 오전 10시에 UTC를 확인하고 종속성 업데이트를 사용할 수 있는 경우에만 실행되는 컨테이너 파이프라인을 구성합니다. 구성 파일은 컨테이너 레시피 및 인프라에 기존 리소스를 사용합니다. Amazon Inspector 및 ECR 통합을 통해 취약성 스캔을 활성화합니다. 구성은 실행 역할이 있는 사용자 지정 워크플로도 지정합니다. 병렬 그룹은 보안 및 기능 테스트를 동시에 실행합니다. 파이프라인 로그는 사용자 지정 CloudWatch 로그 그룹으로 전송됩니다.
-
구성 파일을 생성합니다.
라는 JSON 파일을 생성합니다
create-container-pipeline-with-workflows.json. 이 파일은 이미지 스캔이 활성화된 컨테이너 파이프라인 구성과 사용자 지정 테스트 워크플로를 정의합니다. 자리 표시자 값을 자체 리소스 ARNs.{ "name": "MyContainerPipelineWithScanning", "description": "Container pipeline with vulnerability scanning and custom workflows", "containerRecipeArn": "arn:aws:imagebuilder:us-east-1:123456789012:container-recipe/my-container-recipe/1.0.0", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/my-infra-config", "distributionConfigurationArn": "arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/my-dist-config", "imageScanningConfiguration": { "imageScanningEnabled": true, "ecrConfiguration": { "repositoryName": "my-scanning-repo", "containerTags": ["scan-latest"] } }, "workflows": [ { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/build/my-build-workflow/1.0.0" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-security-scan/1.0.0", "onFailure": "ABORT", "parallelGroup": "security" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-compliance-check/1.0.0", "onFailure": "ABORT", "parallelGroup": "security" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-functional-test/1.0.0", "onFailure": "CONTINUE", "parallelGroup": "functional" }, { "workflowArn": "arn:aws:imagebuilder:us-east-1:123456789012:workflow/test/my-performance-test/1.0.0", "onFailure": "CONTINUE", "parallelGroup": "functional" } ], "executionRole": "arn:aws:iam::123456789012:role/ImageBuilderExecutionRole", "loggingConfiguration": { "imageLogGroupName": "/aws/imagebuilder/my-container-pipeline-image-logs", "pipelineLogGroupName": "/aws/imagebuilder/my-container-pipeline-execution-logs" }, "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 120 }, "schedule": { "scheduleExpression": "cron(0 10 ? * MON *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }참고
-
JSON 파일 경로의 시작 부분에
file://표기법을 포함시켜야 합니다. -
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.
-
-
명령 실행
aws imagebuilder create-image-pipeline --cli-input-json file://create-container-pipeline-with-workflows.json