빌드 실행(AWS CLI) - AWS CodeBuild

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

빌드 실행(AWS CLI)

참고

CodePipeline을 사용하여 AWS CodeBuild에서 빌드를 실행하려면 다음 단계를 건너뛰고 CodeBuild를 사용하는 파이프라인 생성(AWS CLI) 섹션의 지침을 따르세요.

AWS CLI와 CodeBuild를 함께 사용하는 방법에 대한 자세한 내용은 명령줄 참조 섹션을 참조하세요.

  1. 다음 중 한 방법으로 start-build 명령을 실행합니다.

    aws codebuild start-build --project-name <project-name>

    빌드 입력 결과물의 최신 버전과 빌드 프로젝트의 기존 설정을 사용하는 빌드를 실행하려면 이 방법을 사용합니다.

    aws codebuild start-build --generate-cli-skeleton

    이전 버전의 빌드 입력 결과물을 사용하여 빌드를 실행하려는 경우 또는 빌드 출력 결과물, 환경 변수, buildspec 또는 기본 빌드 제한 시간의 설정을 재정의하려는 경우 이 방법을 사용합니다.

  2. start-build 명령을 --project-name 옵션과 함께 실행하는 경우 <project-name>을 빌드 프로젝트의 이름으로 바꾼 다음 이 절차의 6단계로 이동합니다. 빌드 프로젝트 목록을 가져오려면 빌드 프로젝트 이름 목록 보기 단원을 참조하십시오.

  3. start-build 명령을 --idempotency-token 옵션과 함께 실행하면 고유의 대소문자 구분 식별자인 토큰이 start-build 요청에 포함됩니다. 토큰은 요청 후 5분 동안 유효합니다. 동일한 토큰을 사용하여 start-build 요청을 반복하고 파라미터를 변경하면 CodeBuild는 파라미터 불일치 오류를 반환합니다.

  4. 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.yml). 이 값을 제공하지 않거나 빈 문자열로 설정하는 경우 소스 코드에 루트 디렉터리의 buildspec.yml 파일이 포함되어 있어야 합니다. 자세한 내용은 buildspec 파일 이름 및 스토리지 위치 섹션을 참조하세요.

    • 다음 자리 표시자는 cacheOverride용입니다.

      • cacheOverride-location: 선택 사항입니다. 빌드 프로젝트에서 지정된 ProjectCache 객체를 재정의하는 이 빌드에 대한 ProjectCache 객체의 위치입니다. cacheOverride는 선택 사항이며 ProjectCache 객체를 가져옵니다. locationProjectCache 객체에서 필수입니다.

      • cacheOverride-type: 선택 사항입니다. 이 빌드에 대한 ProjectCache 객체의 유형으로, 빌드 프로젝트에서 지정된 ProjectCache 객체를 재정의합니다. cacheOverride는 선택 사항이며 ProjectCache 객체를 가져옵니다. typeProjectCache 객체에서 필수입니다.

    • 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, BITBUCKETGITHUB_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_valueMY_VAR이라는 환경 변수가 이미 포함되어 있는데, 사용자가 MY_VAR 환경 변수의 값을 other_value로 설정하면, my_valueother_value로 바뀝니다. 마찬가지로, 도커 이미지에 값이 /usr/local/sbin:/usr/local/binPATH라는 환경 변수가 이미 포함되어 있는데, 사용자가 PATH 환경 변수의 값을 $PATH:/usr/share/ant/bin으로 설정하면, /usr/local/sbin:/usr/local/bin$PATH:/usr/share/ant/bin 리터럴 값으로 바뀝니다.

    CODEBUILD_로 시작하는 이름으로 환경 변수를 설정하지 마십시오. 이 접두사는 내부 전용으로 예약되어 있습니다.

    여러 위치에서 동일한 이름의 환경 변수가 정의되는 경우, 다음과 같이 환경 변수 값이 결정됩니다.

    • 시작 빌드 작업 호출의 값이 가장 높은 우선 순위를 갖습니다.

    • 빌드 프로젝트 정의의 값이 다음 우선 순위를 갖습니다.

    • buildspec 파일 선언의 값이 가장 낮은 우선 순위를 갖습니다.

    이 자리 표시자의 유효한 값에 대한 자세한 정보는 빌드 프로젝트 생성(AWS CLI) 단원을 참조하십시오. 빌드 프로젝트의 최신 설정 목록은 빌드 프로젝트 세부 정보 보기 단원을 참조하십시오.

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

    aws codebuild start-build --cli-input-json file://start-build.json
  6. 이 명령이 제대로 실행되면 빌드를 실행하려면 절차에 설명된 것과 유사한 데이터가 출력에 표시됩니다.

이 빌드에 대한 자세한 정보를 보려면 출력에서 id 값을 적어 둔 다음 빌드 세부 정보 보기(AWS CLI) 단원을 참조하십시오.