참고
CodePipeline을 사용하여 AWS CodeBuild에서 빌드를 실행하려면 다음 단계를 건너뛰고 CodeBuild를 사용하는 파이프라인 생성(AWS CLI) 섹션의 지침을 따르세요.
AWS CLI와 CodeBuild를 함께 사용하는 방법에 대한 자세한 내용은 명령줄 참조 섹션을 참조하세요.
-
다음 중 한 방법으로
start-build
명령을 실행합니다.aws codebuild start-build --project-name
<project-name>
빌드 입력 결과물의 최신 버전과 빌드 프로젝트의 기존 설정을 사용하는 빌드를 실행하려면 이 방법을 사용합니다.
aws codebuild start-build --generate-cli-skeleton
이전 버전의 빌드 입력 결과물을 사용하여 빌드를 실행하려는 경우 또는 빌드 출력 결과물, 환경 변수, buildspec 또는 기본 빌드 제한 시간의 설정을 재정의하려는 경우 이 방법을 사용합니다.
-
start-build 명령을
--project-name
옵션과 함께 실행하는 경우<project-name>
을 빌드 프로젝트의 이름으로 바꾼 다음 이 절차의 6단계로 이동합니다. 빌드 프로젝트 목록을 가져오려면 빌드 프로젝트 이름 보기 단원을 참조하십시오. -
start-build 명령을
--idempotency-token
옵션과 함께 실행하면 고유의 대소문자 구분 식별자인 토큰이start-build
요청에 포함됩니다. 토큰은 요청 후 5분 동안 유효합니다. 동일한 토큰을 사용하여start-build
요청을 반복하고 파라미터를 변경하면 CodeBuild는 파라미터 불일치 오류를 반환합니다. -
start-build 명령을
--generate-cli-skeleton
옵션과 함께 실행하는 경우 JSON 형식 데이터가 출력에 표시됩니다. AWS CLI가 설치된 로컬 컴퓨터 또는 인스턴스의 위치에 있는 파일(예:
)에 데이터를 복사합니다. 복사된 데이터를 다음 형식으로 수정한 다음 결과를 저장합니다.start-build.json
{ "projectName": "
projectName
", "sourceVersion": "sourceVersion
", "artifactsOverride": { "type": "type
", "location": "location
", "path": "path
", "namespaceType": "namespaceType
", "name": "artifactsOverride-name
", "packaging": "packaging
" }, "buildspecOverride": "buildspecOverride
", "cacheOverride": { "location": "cacheOverride-location
", "type": "cacheOverride-type
" }, "certificateOverride": "certificateOverride
", "computeTypeOverride": "computeTypeOverride
", "environmentTypeOverride": "environmentTypeOverride
", "environmentVariablesOverride": { "name": "environmentVariablesOverride-name
", "value": "environmentVariablesValue
", "type": "environmentVariablesOverride-type
" }, "gitCloneDepthOverride": "gitCloneDepthOverride
", "imageOverride": "imageOverride
", "idempotencyToken": "idempotencyToken
", "insecureSslOverride": "insecureSslOverride
", "privilegedModeOverride": "privilegedModeOverride
", "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride
", "reportBuildStatusOverride": "reportBuildStatusOverride
", "timeoutInMinutesOverride": "timeoutInMinutesOverride
", "sourceAuthOverride": "sourceAuthOverride
", "sourceLocationOverride": "sourceLocationOverride
", "serviceRoleOverride": "serviceRoleOverride
", "sourceTypeOverride": "sourceTypeOverride
" }다음과 같이 자리 표시자를 바꿉니다.
-
projectName
: 필수 문자열입니다. 이 빌드에 사용할 빌드 프로젝트의 이름입니다. -
sourceVersion
: 선택적 문자열입니다. 빌드할 소스 코드의 버전으로, 다음과 같습니다.-
Amazon S3의 경우, 빌드하려는 입력 ZIP 파일의 버전에 해당하는 버전 ID입니다.
sourceVersion
을 지정하지 않은 경우 최신 버전이 사용됩니다. -
CodeCommit의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID입니다.
sourceVersion
을 지정하지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다. (sourceVersion
의 태그 이름은 지정할 수 없지만, 태그의 커밋 ID는 지정할 수 있습니다.) -
GitHub의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID, 풀 요청 ID, 분기 이름 또는 태그 이름입니다. 풀 요청 ID가 지정된 경우
pr/
형식을 사용해야 합니다(예:pull-request-ID
pr/25
). 분기 이름이 지정되어 있으면 분기의 HEAD 커밋 ID가 사용됩니다.sourceVersion
을 지정하지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다. -
Bitbucket의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID, 분기 이름 또는 태그 이름입니다. 분기 이름이 지정되어 있으면 분기의 HEAD 커밋 ID가 사용됩니다.
sourceVersion
을 지정하지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다.
-
-
다음 자리 표시자는
artifactsOverride
용입니다.-
type
: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 유형이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 유형입니다. -
location
: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 위치가 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 위치입니다. -
path
: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 경로가 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 경로입니다. -
namespaceType
: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 유형이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 유형입니다. -
name
: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 이름이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 이름입니다. -
packaging
: 선택 사항입니다. 빌드 프로젝트에서 정의된 빌드 출력 결과물 패키징이 아닌 이 빌드에서만 사용되는 빌드 출력 결과물 패키징입니다.
-
-
buildspecOverride
: 선택 사항입니다. 빌드 프로젝트에서 정의된 buildspec 선언이 아닌 이 빌드에서만 사용되는 buildspec 선언입니다. 이 값이 설정된 경우 인라인 buildspec 정의, 내장된CODEBUILD_SRC_DIR
환경 변수의 값에 상대적인 대체 buildspec 파일 또는 S3 버킷의 경로가 될 수 있습니다. S3 버킷은 빌드 프로젝트와 동일한 AWS 리전에 있어야 합니다. ARN을 사용하여 buildspec 파일을 지정합니다(예:arn:aws:s3:::
). 이 값을 제공하지 않거나 빈 문자열로 설정하는 경우 소스 코드에 루트 디렉터리의<my-codebuild-sample2>
/buildspec.ymlbuildspec.yml
파일이 포함되어 있어야 합니다. 자세한 내용은 buildspec 파일 이름 및 스토리지 위치 단원을 참조하십시오. -
다음 자리 표시자는
cacheOverride
용입니다.-
cacheOverride-location
: 선택 사항입니다. 빌드 프로젝트에서 지정된ProjectCache
객체를 재정의하는 이 빌드에 대한ProjectCache
객체의 위치입니다.cacheOverride
는 선택 사항이며ProjectCache
객체를 가져옵니다.location
는ProjectCache
객체에서 필수입니다. -
cacheOverride-type
: 선택 사항입니다. 이 빌드에 대한ProjectCache
객체의 유형으로, 빌드 프로젝트에서 지정된ProjectCache
객체를 재정의합니다.cacheOverride
는 선택 사항이며ProjectCache
객체를 가져옵니다.type
는ProjectCache
객체에서 필수입니다.
-
-
certificateOverride
: 선택 사항입니다. 빌드 프로젝트에서 지정된 인증서를 재정의하는 이 빌드에 대한 인증서의 이름입니다. -
environmentTypeOverride
: 선택 사항입니다. 빌드 프로젝트에서 지정된 컨테이너를 재정의하는 이 빌드의 컨테이너 유형입니다. 현재 유효한 문자열은LINUX_CONTAINER
입니다. -
다음 자리 표시자는
environmentVariablesOverride
용입니다.-
environmentVariablesOverride-name
: 선택 사항입니다. 이 빌드에서 값을 재정의하려는 빌드 프로젝트의 환경 변수 이름입니다. -
environmentVariablesOverride-type
: 선택 사항입니다. 이 빌드에서 값을 재정의하려는 빌드 프로젝트의 환경 변수 유형입니다. -
environmentVariablesValue
: 선택 사항입니다. 이 빌드에서 재정의하려는 빌드 프로젝트에 정의된 환경 변수 값입니다.
-
-
gitCloneDepthOverride
: 선택 사항입니다. 이 빌드에서 값을 재정의하려는 빌드 프로젝트의 Git clone depth 값입니다. 소스 유형이 Amazon S3일 경우 이 값이 지원되지 않습니다. -
imageOverride
: 선택 사항입니다. 빌드 프로젝트에서 지정된 이미지를 재정의하는 이 빌드에 대한 이미지의 이름입니다. -
idempotencyToken
: 선택 사항입니다. 빌드 요청이 idempotent임을 지정하기 위해 토큰으로 제공되는 문자열입니다. 64자 이하의 모든 문자열을 선택할 수 있습니다. 토큰은 start-build 요청 후 5분 동안 유효합니다. 동일한 토큰을 사용하여 start-build 요청을 반복하고 파라미터를 변경하면 CodeBuild는 파라미터 불일치 오류를 반환합니다. -
insecureSslOverride
: 빌드 프로젝트에서 지정된 안전하지 않은 TLS 설정을 재정의할지 여부를 지정하는 선택적 부울입니다. 안전하지 않은 TLS 설정은 프로젝트 소스 코드에 연결하는 동안 TLS 경고를 무시할지 여부를 결정합니다. 이 설정은 빌드의 소스가 GitHub Enterprise Server인 경우에만 적용됩니다. -
privilegedModeOverride
: 선택적 부울입니다. true로 설정하면 빌드는 빌드 프로젝트에서 권한이 있는 모드를 재정의합니다. -
queuedTimeoutInMinutesOverride
: 빌드 대기 시간이 얼마나 지나야 시간 초과로 처리되는지를 지정하는 정수(분)입니다(선택 사항). 최솟값은 5분이며, 최댓값은 480분(8시간)입니다. -
reportBuildStatusOverride
: 빌드의 시작 및 완료 상태를 소스 공급자에게 보낼지 여부를 지정하는 선택적 부울입니다. GitHub, GitHub Enterprise Server 또는 Bitbucket이 아닌 소스 공급자로 설정하는 경우, invalidInputException이 발생합니다. -
sourceAuthOverride
: 선택적 문자열입니다. 빌드 프로젝트에서 정의된 권한 부여를 재정의하는 이 빌드에 대한 권한 부여 유형입니다. 이 재정의는 빌드 프로젝트의 소스가 Bitbucket 또는 GitHub인 경우에만 적용됩니다. -
sourceLocationOverride
: 선택적 문자열입니다. 빌드 프로젝트에서 정의된 위치의 소스 위치를 이 빌드에 대해 재정의하는 위치입니다. -
serviceRoleOverride
: 선택 사항 문자열. 빌드 프로젝트에서 지정된 서비스 역할을 재정의하는 이 빌드에 대한 서비스 역할의 이름입니다. -
sourceTypeOverride
: 선택적 문자열입니다. 빌드 프로젝트에서 정의된 소스 입력을 재정의하는 이 빌드에 대한 소스 입력 유형입니다. 유효한 문자열은NO_SOURCE
,CODECOMMIT
,CODEPIPELINE
,GITHUB
,S3
,BITBUCKET
및GITHUB_ENTERPRISE
입니다. -
timeoutInMinutesOverride
: 선택적 숫자입니다. 빌드 프로젝트에서 정의된 빌드 제한 시간(분)이 아닌 이 빌드에서만 사용되는 빌드 제한 시간(분)입니다.
AWS 액세스 키 ID, AWS 비밀 액세스 키 또는 암호와 같은 중요한 값을 가진 환경 변수는 Amazon EC2 Systems Manager Parameter Store 또는 에 파라미터로 저장하는 것이 좋습니다. CodeBuild는 Amazon EC2 Systems Manager Parameter Store에 저장된 파라미터 이름이
/CodeBuild/
(예:/CodeBuild/dockerLoginPassword
)로 시작하는 경우에만 해당 파라미터를 사용할 수 있습니다. CodeBuild 콘솔을 사용하여 Amazon EC2 Systems Manager에서 파라미터를 생성할 수 있습니다. 파라미터 생성을 선택한 후 지침에 따릅니다. 경우에 따라 대화 상자의 KMS 키에 해당 계정의 AWS KMS 키에 대한 ARN을 지정할 수 있습니다. Amazon EC2 Systems Manager는 이 키를 사용하여 저장 시 파라미터의 값을 암호화하고 검색 시 암호를 해독합니다. CodeBuild 콘솔을 사용하여 파라미터를 생성하는 경우 콘솔은/CodeBuild/
로 파라미터를 시작합니다. 하지만 Amazon EC2 Systems Manager Parameter Store 콘솔을 사용하여 파라미터를 생성하는 경우,/CodeBuild/
로 파라미터 이름을 시작해야 하고 유형을 보안 문자열로 설정해야 합니다. 자세한 내용은 Amazon EC2 Systems Manager 사용 설명서의 AWS Systems Manager 파라미터 스토어 및 연습: 문자열 파라미터 생성 및 테스트(콘솔)을 참조하세요.빌드 프로젝트가 Amazon EC2 Systems Manager Parameter Store에 저장된 파라미터를 참조하는 경우 해당 빌드 프로젝트의 서비스 역할은
ssm:GetParameters
작업을 허용해야 합니다. 앞에서 해당 계정에 새로운 서비스 역할 생성을 선택한 경우 CodeBuild는 빌드 프로젝트의 기본 서비스 역할에 이 작업을 자동으로 포함합니다. 하지만 [Choose an existing service role from your account]를 선택한 경우 이 작업을 서비스 역할에 별도로 포함해야 합니다.사용자가 설정한 환경 변수는 기존 환경 변수를 대체합니다. 예를 들어 도커 이미지에 값이
my_value
인MY_VAR
이라는 환경 변수가 이미 포함되어 있는데, 사용자가MY_VAR
환경 변수의 값을other_value
로 설정하면,my_value
가other_value
로 바뀝니다. 마찬가지로, 도커 이미지에 값이/usr/local/sbin:/usr/local/bin
인PATH
라는 환경 변수가 이미 포함되어 있는데, 사용자가PATH
환경 변수의 값을$PATH:/usr/share/ant/bin
으로 설정하면,/usr/local/sbin:/usr/local/bin
이$PATH:/usr/share/ant/bin
리터럴 값으로 바뀝니다.CODEBUILD_
로 시작하는 이름으로 환경 변수를 설정하지 마십시오. 이 접두사는 내부 전용으로 예약되어 있습니다.여러 위치에서 동일한 이름의 환경 변수가 정의되는 경우, 다음과 같이 환경 변수 값이 결정됩니다.
-
시작 빌드 작업 호출의 값이 가장 높은 우선 순위를 갖습니다.
-
빌드 프로젝트 정의의 값이 다음 우선 순위를 갖습니다.
-
buildspec 파일 선언의 값이 가장 낮은 우선 순위를 갖습니다.
이 자리 표시자의 유효한 값에 대한 자세한 정보는 빌드 프로젝트 생성(AWS CLI) 단원을 참조하십시오. 빌드 프로젝트의 최신 설정 목록은 빌드 프로젝트 세부 정보 보기 단원을 참조하십시오.
-
-
방금 저장한 파일이 들어 있는 디렉터리로 전환한 다음,
start-build
명령을 다시 실행합니다.aws codebuild start-build --cli-input-json file://start-build.json
-
이 명령이 제대로 실행되면 빌드를 실행하려면 절차에 설명된 것과 유사한 데이터가 출력에 표시됩니다.
이 빌드에 대한 자세한 정보를 보려면 출력에서 id
값을 적어 둔 다음 빌드 세부 정보 보기(AWS CLI) 단원을 참조하십시오.