5단계: 빌드 프로젝트 생성 - AWS CodeBuild

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

5단계: 빌드 프로젝트 생성

(이전 단계: 4단계: 소스 코드 및 buildspec 파일 업로드)

이 단계에서는 AWS CodeBuild가 빌드를 실행하는 데 사용할 빌드 프로젝트를 생성합니다. 이 빌드 프로젝트에는 소스 코드를 가져올 위치, 사용할 빌드 환경, 실행할 빌드 명령 및 빌드 출력을 저장할 위치를 비롯하여 빌드 실행 방법에 대한 정보가 포함되어 있습니다. 빌드 환경은 운영 체제, 프로그래밍 언어 런타임 및 빌드를 실행하는 데 CodeBuild 사용되는 도구의 조합을 나타냅니다. 빌드 환경은 도커 이미지로 표현됩니다. 자세한 정보는 Docker Docs 웹 사이트에서 Docker 개요 주제를 참조하십시오.

이 빌드 환경에서는 JDK (자바 개발 키트) 버전과 Apache Maven이 포함된 Docker 이미지를 사용하도록 CodeBuild 지시합니다.

빌드 프로젝트를 생성하려면
  1. AWS CLI를 사용하여 다음 create-project 명령을 실행합니다.

    aws codebuild create-project --generate-cli-skeleton

    JSON 형식 데이터가 출력에 표시됩니다. AWS CLI가 설치된 로컬 컴퓨터 또는 인스턴스의 위치에 있는 create-project.json이라는 파일에 데이터를 복사합니다. 다른 파일 이름을 사용하기로 선택하는 경우 이 자습서 전체에서 해당 이름을 사용해야 합니다.

    복사된 데이터를 다음 형식으로 수정한 다음 결과를 저장합니다.

    { "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole" }

    ServiceIamrole을 서비스 역할 (예:) CodeBuild 의 Amazon 리소스 이름 (ARN) 으로 대체합니다. arn:aws:iam::account-ID:role/role-name 파일을 만들려면 CodeBuild 서비스 역할 생성 섹션을 참조하세요.

    이 데이터에서:

    • name은 이 빌드 프로젝트에 대한 필수 식별자를 나타냅니다(이 예에서는 codebuild-demo-project). 빌드 프로젝트 이름은 계정에 있는 모든 빌드 프로젝트에서 고유해야 합니다.

    • sourcetype은 소스 코드의 리포지토리 유형을 나타내는 필수 값입니다(이 예에서는 Amazon S3 버킷의 경우 S3).

    • sourcelocation은 소스 코드의 경로를 나타냅니다(이 예에서는 입력 버킷 이름과 그 뒤의 ZIP 파일 이름).

    • artifactstype은 빌드 출력 아티팩트의 리포지토리 유형을 나타내는 필수 값입니다(이 예에서는 Amazon S3 버킷의 경우 S3).

    • artifactslocation은 앞에서 생성하거나 지정한 출력 버킷의 이름을 나타냅니다(이 예에서는 codebuild-region-ID-account-ID-output-bucket).

    • environmenttype은 빌드 환경의 유형을 나타내는 필수 값입니다(이 예에서는 LINUX_CONTAINER).

    • For image 는 Docker 이미지 리포지토리 유형별로 지정된 대로 이 빌드 프로젝트에서 사용하는 Docker 이미지 이름 및 태그 조합을 나타내는 필수 값입니다 (이 예에서는 Docker 이미지 리포지토리의 Docker aws/codebuild/standard:5.0 이미지용). environment CodeBuild aws/codebuild/standardDocker 이미지의 이름입니다. 5.0도커 이미지의 태그입니다.

      자신의 시나리오에서 사용할 수 있는 더 많은 도커 이미지를 찾으려면 빌드 환경 참조 단원을 참조하십시오.

    • environmentFor computeType 는 CodeBuild 사용하는 컴퓨팅 리소스를 나타내는 필수 값입니다 (이 예에서는BUILD_GENERAL1_SMALL).

    참고

    원래의 JSON 형식 데이터에서 사용 가능한 다른 값으로, description, buildspec, auth (typeresource 포함), path, namespaceType, name(artifacts의 경우), packaging, environmentVariables(namevalue 포함), timeoutInMinutes, encryptionKeytags(keyvalue 포함) 등이 있으며 선택 사항입니다. 이러한 값은 이 자습서에서 사용되지 않으므로 여기서는 다루지 않습니다. 자세한 설명은 빌드 프로젝트 생성(AWS CLI) 섹션을 참조하세요.

  2. 방금 저장한 파일이 들어 있는 디렉터리로 전환한 다음, create-project 명령을 다시 실행합니다.

    aws codebuild create-project --cli-input-json file://create-project.json

    이 명령이 제대로 실행되면 다음과 비슷한 데이터가 출력에 표시됩니다.

    { "project": { "name": "codebuild-demo-project", "serviceRole": "serviceIAMRole", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" } }
    • project는 이 빌드 프로젝트에 대한 정보를 나타냅니다.

      • tags는 선언된 태그를 나타냅니다.

      • packaging은 빌드 출력 결과물이 출력 버킷에 저장되는 방식을 나타냅니다. NONE은 폴더가 출력 버킷 내부에 생성됨을 의미합니다. 빌드 출력 결과물이 해당 폴더에 저장됩니다.

      • lastModified는 빌드 프로젝트에 대한 정보가 마지막으로 변경된 시간을 Unix 시간 형식으로 나타냅니다.

      • timeoutInMinutes빌드가 완료되지 않은 경우 빌드가 CodeBuild 중지되기까지 걸리는 시간 (분) 을 나타냅니다. (기본값은 60분입니다.)

      • created는 빌드 프로젝트가 생성된 시간을 Unix 시간 형식으로 나타냅니다.

      • environmentVariables선언되어 빌드 중에 사용할 CodeBuild 수 있는 모든 환경 변수를 나타냅니다.

      • encryptionKey빌드 출력 아티팩트를 암호화하는 CodeBuild 데 사용된 고객 관리 키의 ARN을 나타냅니다.

      • arn은 빌드 프로젝트의 ARN을 나타냅니다.

참고

create-project명령을 실행한 후 다음과 유사한 오류 메시지가 출력될 수 있습니다. 사용자: User-ARN이 수행할 권한이 없음: codebuild:. CreateProject 이는 빌드 프로젝트를 만드는 데 사용할 CodeBuild 수 있는 충분한 권한이 없는 사용자의 자격 AWS CLI 증명으로 를 구성했기 때문일 가능성이 큽니다. 이 문제를 해결하려면 IAM 엔터티 중 하나에 속한 보안 인증을 사용하여 AWS CLI를 구성하세요.

  • AWS 계정의 관리자 사용자. 자세한 내용은 사용 설명서에서 첫 번째 AWS 계정 루트 사용자 및 그룹 생성을 참조하세요.

  • 해당 사용자 또는 사용자가 속한 IAM 그룹에 연결된 AWSCodeBuildAdminAccess, AmazonS3ReadOnlyAccessIAMFullAccess 관리형 정책을 사용하는 AWS 계정의 사용자. AWS 계정에 이러한 권한이 있는 사용자 또는 그룹이 없으며, 이러한 권한을 사용자나 그룹에 추가할 수 없는 경우, AWS 계정 관리자에게 지원을 요청하세요. 자세한 설명은 AWS 에 대한 관리형 (사전 정의된) 정책 AWS CodeBuild 섹션을 참조하세요.

다음 단계

6단계: 빌드 실행