이미지 정의 파일 참조 - AWS CodePipeline

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

이미지 정의 파일 참조

이 단원은 참조용입니다. 컨테이너의 소스 또는 배포 작업이 포함된 파이프라인을 만드는 방법에 대한 자세한 내용은 파이프라인, 스테이지, 액션 생성 단원을 참조하십시오.

AWS CodePipeline Amazon ECR 소스 작업이나 Amazon ECS 배포 작업과 같은 컨테이너 작업의 작업 작업자는 정의 파일을 사용하여 이미지와 URI 컨테이너 이름을 작업 정의에 매핑합니다. 각 정의 파일은 다음과 같이 작업 제공자가 사용하는 JSON 형식 파일입니다.

아마존 표준 배포 작업을 위한 imagefinitions.json 파일 ECS

이미지 정의 문서는 Amazon ECS 컨테이너 이름과 이미지 및 태그를 설명하는 JSON 파일입니다. 컨테이너 기반 애플리케이션을 배포하는 경우 이미지 정의 파일을 생성하여 CodePipeline 작업 작업자에게 Amazon ECS 컨테이너와 Amazon 같은 이미지 리포지토리에서 검색할 이미지 식별 정보를 제공해야 합니다. ECR

참고

이 파일의 기본 파일 이름은 imagedefinitions.json입니다. 다른 파일 이름을 사용하려면 파이프라인 배포 단계를 만들 때 이름을 제공해야 합니다.

다음 사항을 고려하여 imagedefinitions.json 파일을 만듭니다.

  • 파일은 -8 인코딩을 사용해야 UTF 합니다.

  • 이미지 정의 파일의 최대 파일 크기 한도는 100KB입니다.

  • 배포 작업에 대한 입력 아티팩트가 되도록 파일을 소스 또는 빌드 아티팩트로 생성해야 합니다. 즉, 파일이 CodeCommit 리포지토리와 같은 소스 위치에 업로드되었는지 아니면 빌드된 출력 아티팩트로 생성되었는지 확인하십시오.

imagedefinitions.json파일은 컨테이너 이름과 이미지를 URI 제공합니다. 이 파일은 다음 키-값 페어 세트로 생성해야 합니다.

name container_name
imageUri imageUri
참고

이름 필드는 컨테이너 이미지 이름, 즉 Docker 이미지의 이름으로 사용됩니다.

컨테이너 이름, 이미지sample-app, 태그의 JSON 구조는 URI latest 다음과 ecs-repo 같습니다.

[ { "name": "sample-app", "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest" } ]

컨테이너-이미지 페어를 여러 개 나열하도록 파일을 생성할 수도 있습니다.

JSON구조:

[ { "name": "simple-app", "imageUri": "httpd:2.4" }, { "name": "simple-app-1", "imageUri": "mysql" }, { "name": "simple-app-2", "imageUri": "java1.8" } ]

파이프라인을 만들기 전에 다음 단계를 사용하여 imagedefinitions.json 파일을 설정합니다.

  1. 파이프라인에 대한 컨테이너 기반 애플리케이션 배포를 계획하는 과정에서 해당되는 경우 소스 단계와 빌드 단계를 계획합니다.

  2. 다음 중 하나를 선택합니다.

    1. 파이프라인이 빌드 단계를 건너뛰도록 생성된 경우 소스 액션이 아티팩트를 제공할 수 있도록 수동으로 JSON 파일을 만들고 소스 리포지토리에 업로드해야 합니다. 텍스트 편집기를 사용하여 파일을 만든 후, 파일 이름을 지정하거나 기본 imagedefinitions.json 파일 이름을 사용합니다. 이미지 정의 파일을 소스 리포지토리에 푸시합니다.

      참고

      원본 리포지토리가 Amazon S3 버킷인 경우 JSON 파일을 반드시 압축해야 합니다.

    2. 파이프라인에 빌드 단계가 있는 경우 빌드 단계 중에 소스 리포지토리의 이미지 정의 파일을 출력하는 명령을 빌드 사양 파일에 추가합니다. 다음 예제에서는 printf 명령을 사용하여 imagedefinitions.json 파일을 생성합니다. buildspec.yml 파일의 post_build 섹션에 이 명령을 나열합니다.

      printf '[{"name":"container_name","imageUri":"image_URI"}]' > imagedefinitions.json

      이미지 정의 파일을 buildspec.yml 파일에 출력 아티팩트로 포함시켜야 합니다.

  3. 콘솔에서 파이프라인을 생성할 때 파이프라인 생성 마법사의 배포 페이지에 있는 이미지 파일 이름에 이미지 정의 파일 이름을 입력합니다.

Amazon을 배포 ECS 공급자로 사용하는 파이프라인을 생성하는 방법에 대한 step-by-step 자습서는 자습서: 지속적인 배포를 참조하십시오 CodePipeline.

imageDetailAmazon ECS 블루/그린 배포 작업용.json 파일

imageDetail.json문서는 Amazon ECS 이미지를 설명하는 JSON 파일입니다URI. 블루/그린 배포를 위해 컨테이너 기반 애플리케이션을 배포하는 경우 Amazon ECS 및 CodeDeploy 작업 imageDetail.json 작업자에게 Amazon 등의 이미지 리포지토리에서 검색할 이미지 ID를 제공하는 파일을 생성해야 합니다. ECR

참고

파일의 이름은 imageDetail.json이어야 합니다.

작업 및 해당 파라미터의 설명은 Amazon Elastic 컨테이너 서비스 및 CodeDeploy 블루-그린 배포 작업 참조을 참조하세요.

배포 작업에 대한 입력 아티팩트가 되도록 imageDetail.json 파일을 소스 또는 빌드 아티팩트로 생성해야 합니다. 다음과 같은 방법 중 하나를 통해 파이프라인에 imageDetail.json 파일을 제공할 수 있습니다.

  • Amazon ECS 블루/그린 배포 작업에 대한 입력으로 파이프라인에 제공되도록 소스 위치에 imageDetail.json 파일을 포함시키십시오.

    참고

    원본 리포지토리가 Amazon S3 버킷인 경우 JSON 파일을 반드시 압축해야 합니다.

  • Amazon ECR 소스 액션은 다음 작업에 대한 입력 아티팩트로 imageDetail.json 파일을 자동으로 생성합니다.

    참고

    Amazon ECR 소스 작업에서 이 파일을 생성하므로 Amazon ECR 소스 작업을 사용하는 파이프라인은 imageDetail.json 파일을 수동으로 제공할 필요가 없습니다.

    Amazon ECR 소스 스테이지가 포함된 파이프라인을 생성하는 방법에 대한 자습서는 을 참조하십시오자습서: Amazon ECR 소스 및 ECS 배포를 통한 파이프라인 생성 CodeDeploy .

아티팩트 버킷에 imageDetail 포함된.json 파일을 보여주는 다이어그램

imageDetail.json파일은 이미지를 제공합니다. URI 이 파일은 다음 키-값 페어로 생성해야 합니다.

이미지 URI image_URI
imageDetail.json

이미지의 JSON URI 구조는 ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3 다음과 같습니다.

{ "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3" }
imageDetail.json (generated by ECR)

변경 사항이 이미지 리포지토리에 푸시될 때마다 Amazon ECR 소스 작업에 의해 imageDetail.json 파일이 자동으로 생성됩니다. Amazon에서 imageDetail.json 생성한 ECR 소스 작업은 소스 작업에서 파이프라인의 다음 작업까지 출력 아티팩트로 제공됩니다.

리포지토리 이름, 이미지dk-image-repo, 이미지 URI 태그의 JSON 구조는 다음과 같습니다latest. ecs-repo

{ "ImageSizeInBytes": "44728918", "ImageDigest": "sha256:EXAMPLE11223344556677889900bfea42ea2d3b8a1ee8329ba7e68694950afd3", "Version": "1.0", "ImagePushedAt": "Mon Jan 21 20:04:00 UTC 2019", "RegistryId": "EXAMPLE12233", "RepositoryName": "dk-image-repo", "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3", "ImageTags": [ "latest" ] }

imageDetail.json파일은 다음과 같이 URI 이미지와 컨테이너 이름을 Amazon ECS 작업 정의에 매핑합니다.

  • ImageSizeInBytes: 리포지토리의 이미지 크기(바이트)

  • ImageDigest: 이미지 매니페스트의 sha256 다이제스트

  • Version: 이미지 버전

  • ImagePushedAt: 최신 이미지가 리포지토리로 푸시된 날짜와 시간

  • RegistryId: 리포지토리가 포함된 레지스트리와 관련된 AWS 계정 ID.

  • RepositoryName: 이미지가 푸시된 Amazon ECR 리포지토리의 이름입니다.

  • ImageURI: 이미지의 URI 경우.

  • ImageTags: 이미지에 사용된 태그

파이프라인을 만들기 전에 다음 단계를 사용하여 imageDetail.json 파일을 설정합니다.

  1. 파이프라인에 대한 컨테이너 기반 애플리케이션 블루/그린 배포를 계획하는 과정에서 해당하는 경우 소스 단계와 빌드 단계를 계획합니다.

  2. 다음 중 하나를 선택합니다.

    1. 파이프라인이 빌드 단계를 건너뛰었다면 소스 액션이 아티팩트를 제공할 수 있도록 수동으로 JSON 파일을 만들어 소스 리포지토리 (예:) 에 업로드해야 합니다. CodeCommit 텍스트 편집기를 사용하여 파일을 만든 후, 파일 이름을 지정하거나 기본 imageDetail.json 파일 이름을 사용합니다. imageDetail.json 파일을 해당 소스 리포지토리에 푸시합니다.

    2. 파이프라인에 빌드 단계가 있는 경우 다음을 수행하십시오.

      1. 빌드 단계 중에 소스 리포지토리의 이미지 정의 파일을 출력하는 명령을 빌드 사양 파일에 추가합니다. 다음 예제에서는 printf 명령을 사용하여 imageDetail.json 파일을 생성합니다. buildspec.yml 파일의 post_build 섹션에 이 명령을 나열합니다.

        printf '{"ImageURI":"image_URI"}' > imageDetail.json

        imageDetail.json 파일을 buildspec.yml 파일에 출력 아티팩트로 포함시켜야 합니다.

      2. imageDetail.jsonbuildspec.yml 파일에 아티팩트 파일로 추가합니다.

        artifacts: files: - imageDetail.json