기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
5단계: 빌드 프로젝트 생성
(이전 단계: 4단계: 소스 코드 및 buildspec 파일 업로드)
이 단계에서는 AWS CodeBuild가 빌드를 실행하는 데 사용할 빌드 프로젝트를 생성합니다. 이 빌드 프로젝트에는 소스 코드를 가져올 위치, 사용할 빌드 환경, 실행할 빌드 명령 및 빌드 출력을 저장할 위치를 비롯하여 빌드 실행 방법에 대한 정보가 포함되어 있습니다. 빌드 환경은 운영 체제, 프로그래밍 언어 런타임 및 빌드를 실행하는 데 CodeBuild 사용되는 도구의 조합을 나타냅니다. 빌드 환경은 도커 이미지로 표현됩니다. 자세한 정보는 Docker Docs 웹 사이트에서 Docker 개요
이 빌드 환경에서는 JDK (자바 개발 키트) 버전과 Apache Maven이 포함된 Docker 이미지를 사용하도록 CodeBuild 지시합니다.
빌드 프로젝트를 생성하려면
-
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::
파일을 만들려면 CodeBuild 서비스 역할 생성 섹션을 참조하세요.account-ID
:role/role-name
이 데이터에서:
-
name
은 이 빌드 프로젝트에 대한 필수 식별자를 나타냅니다(이 예에서는codebuild-demo-project
). 빌드 프로젝트 이름은 계정에 있는 모든 빌드 프로젝트에서 고유해야 합니다. -
source
의type
은 소스 코드의 리포지토리 유형을 나타내는 필수 값입니다(이 예에서는 Amazon S3 버킷의 경우S3
). -
source
의location
은 소스 코드의 경로를 나타냅니다(이 예에서는 입력 버킷 이름과 그 뒤의 ZIP 파일 이름). -
artifacts
의type
은 빌드 출력 아티팩트의 리포지토리 유형을 나타내는 필수 값입니다(이 예에서는 Amazon S3 버킷의 경우S3
). -
artifacts
의location
은 앞에서 생성하거나 지정한 출력 버킷의 이름을 나타냅니다(이 예에서는codebuild-
).region-ID
-account-ID
-output-bucket -
environment
의type
은 빌드 환경의 유형을 나타내는 필수 값입니다(이 예에서는LINUX_CONTAINER
). -
For
image
는 Docker 이미지 리포지토리 유형별로 지정된 대로 이 빌드 프로젝트에서 사용하는 Docker 이미지 이름 및 태그 조합을 나타내는 필수 값입니다 (이 예에서는 Docker 이미지 리포지토리의 Dockeraws/codebuild/standard:5.0
이미지용).environment
CodeBuildaws/codebuild/standard
Docker 이미지의 이름입니다.5.0
도커 이미지의 태그입니다.자신의 시나리오에서 사용할 수 있는 더 많은 도커 이미지를 찾으려면 빌드 환경 참조 단원을 참조하십시오.
-
environment
ForcomputeType
는 CodeBuild 사용하는 컴퓨팅 리소스를 나타내는 필수 값입니다 (이 예에서는BUILD_GENERAL1_SMALL
).
참고
원래의 JSON 형식 데이터에서 사용 가능한 다른 값으로,
description
,buildspec
,auth
(type
및resource
포함),path
,namespaceType
,name
(artifacts
의 경우),packaging
,environmentVariables
(name
및value
포함),timeoutInMinutes
,encryptionKey
및tags
(key
및value
포함) 등이 있으며 선택 사항입니다. 이러한 값은 이 자습서에서 사용되지 않으므로 여기서는 다루지 않습니다. 자세한 설명은 빌드 프로젝트 생성(AWS CLI) 섹션을 참조하세요. -
-
방금 저장한 파일이 들어 있는 디렉터리로 전환한 다음, 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
,AmazonS3ReadOnlyAccess
및IAMFullAccess
관리형 정책을 사용하는 AWS 계정의 사용자. AWS 계정에 이러한 권한이 있는 사용자 또는 그룹이 없으며, 이러한 권한을 사용자나 그룹에 추가할 수 없는 경우, AWS 계정 관리자에게 지원을 요청하세요. 자세한 설명은 AWS 에 대한 관리형 (사전 정의된) 정책 AWS CodeBuild 섹션을 참조하세요.