빌드 프로젝트 생성(AWS CLI) - AWS CodeBuild

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

빌드 프로젝트 생성(AWS CLI)

사용에 대한 자세한 내용은AWS CLICodeBuild 방법에 대한 자세한 내용은명령줄 참조.

사용하여 CodeBuild 빌드 프로젝트를 만들려면AWS CLI에서 JSON 형식의프로젝트구조체를 채우고, 구조를 채우고,create-project명령을 사용하여 프로젝트를 생성합니다.

JSON 파일을 생성합니다.

와 스켈레톤 JSON 파일 생성create-project명령을 사용하여--generate-cli-skeleton옵션을 선택합니다.

aws codebuild create-project --generate-cli-skeleton > <json-file>

이것은 지정된 경로와 파일 이름을 가진 JSON 파일을 생성<json-file>.

JSON 파일을 입력합니다.

다음과 같이 JSON 데이터를 수정하고 결과를 저장합니다.

{ "name": "<project-name>", "description": "<description>", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "buildStatusConfig": { "context": "<context>", "targetUrl": "<target-url>" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>" }, "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>", "gitCloneDepth": "<git-clone-depth>", "buildspec": "<buildspec>", "InsecureSsl": "<insecure-ssl>", "reportBuildStatus": "<report-build-status>", "auth": { "type": "<auth-type>", "resource": "<auth-resource>" }, "sourceIdentifier": "<source-identifier>" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>", "sourceVersion": "<secondary-source-version>" } ], "sourceVersion": "<source-version>", "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>", "path": "<artifacts-path>", "namespaceType": "<artifacts-namespacetype>", "name": "<artifacts-name>", "overrideArtifactName": "<override-artifact-name>", "packaging": "<artifacts-packaging>" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>", "path": "<secondary-artifact-path>", "namespaceType": "<secondary-artifact-namespaceType>", "name": "<secondary-artifact-name>", "packaging": "<secondary-artifact-packaging>", "artifactIdentifier": "<secondary-artifact-identifier>" } ], "cache": { "type": "<cache-type>", "location": "<cache-location>", "mode": [ "<cache-mode>" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER", "image": "<image>", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>", "environmentVariables": [ { "name": "<environmentVariable-name>", "value": "<environmentVariable-value>", "type": "<environmentVariable-type>" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>", "credentialProvider": "<credential-provider>" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>" }, "serviceRole": "<service-role>", "timeoutInMinutes": <timeout>, "queuedTimeoutInMinutes": <queued-timeout>, "encryptionKey": "<encryption-key>", "tags": [ { "key": "<tag-key>", "value": "<tag-value>" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>" ], "subnets": [ "<subnet-id>" ], "vpcId": "<vpc-id>" }, "badgeEnabled": "<badge-enabled>", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>", "groupName": "<group-name>", "streamName": "<stream-name>" }, "s3Logs": { "status": "<s3-logs-status>", "location": "<s3-logs-location>", "encryptionDisabled": "<s3-logs-encryption-disabled>" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>:/<directory-path>", "mountPoint": "<mount-point>", "identifier": "<efs-identifier>", "mountOptions": "<efs-mount-options>" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>", "combineArtifacts": <combine-artifacts>, "restrictions": { "maximumBuildsAllowed": <max-builds>, "computeTypesAllowed": [ "<compute-type>" ] }, "timeoutInMins": <batch-timeout>, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit": <concurrent-build-limit> }

다음을 바꿉니다.

name

필수. 이 빌드 프로젝트의 이름입니다. 이 이름은 AWS 계정에 있는 모든 빌드 프로젝트에서 고유해야 합니다.

description

선택. 이 빌드 프로젝트의 설명입니다.

source

필수. A프로젝트소스객체의 경우, 이 빌드 프로젝트의 소스 코드 설정에 대한 정보입니다. source 객체를 추가한 후에는 secondarySources를 사용해 소스를 최대 12개까지 더 추가할 수 있습니다. 이러한 설정에는 다음이 포함됩니다.

소스/유형

필수. 빌드할 소스 코드가 포함된 리포지토리의 유형입니다. 유효한 값으로는 다음이 포함됩니다.

  • CODECOMMIT

  • CODEPIPELINE

  • GITHUB

  • GITHUB_ENTERPRISE

  • BITBUCKET

  • S3

  • NO_SOURCE

NO_SOURCE를 사용할 경우 프로젝트에 소스가 없으므로 buildspec은 파일이 될 수 없습니다. 대신에 buildspec 속성을 사용하여 buildspec에 대해 YAML 형식이 지정된 문자열을 지정해야 합니다. 자세한 정보는 소스 샘플이 없는 프로젝트을 참조하십시오.

소스/location

설정하지 않는 한 필수<source-type>toCODEPIPELINE. 지정한 리포지토리 유형의 소스 코드 위치입니다.

  • CodeCommit 의 경우 HTTPS가 소스 코드 및 buildspec 파일을 포함하는 리포지토리에 URL을 복제합니다 (예:https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name>).

  • Amazon S3 경우, 빌드 입력 버킷 이름 다음에 소스 코드 및 빌드 사양을 포함하는 ZIP 파일의 경로와 이름이 나옵니다. 예:

    • 입력 버킷의 루트에 있는 ZIP 파일의 경우:<bucket-name>/<object-name>.zip.

    • 입력 버킷의 하위 폴더에 있는 ZIP 파일의 경우:<bucket-name>/<subfoler-path>/<object-name>.zip.

  • GitHub의 경우 HTTPS가 소스 코드 및 buildspec 파일을 포함하는 리포지토리에 URL을 복제합니다. URL에 github.com이 포함되어야 합니다. AWS 계정을 GitHub 계정에 연결해야 합니다. 이렇게 하려면 CodeBuild 콘솔을 사용하여 빌드 프로젝트를 생성합니다.

    1. GitHub 에서응용 프로그램 권한 부여[] 페이지의조직 액세스섹션에서액세스 요청CodeBuild 가 에서 액세스 할 수있게하려는 각 저장소 옆에.

    2. [Authorize application]을 선택합니다. (GitHub 계정에 연결했으면 빌드 프로젝트 만들기를 완료하지 않아도 됩니다. CodeBuild 콘솔을 닫을 수 있습니다.)

  • GitHub Enterprise Server의 경우 HTTP 또는 HTTPS가 소스 코드 및 buildspec 파일을 포함하는 리포지토리에 URL을 복제합니다. 또한 AWS 계정을 GitHub Enterprise Server 계정에도 연결해야 합니다. 이렇게 하려면 CodeBuild 콘솔을 사용하여 빌드 프로젝트를 생성합니다.

    1. GitHub Enterprise Server에서 개인용 액세스 토큰을 생성합니다.

    2. CodeBuild 프로젝트를 만들 때 사용할 수 있도록 이 토큰을 클립보드에 복사합니다. 자세한 내용은 GitHub Help 웹 사이트의 Creating a personal access token for the command line을 참조하십시오.

    3. 콘솔을 사용하여 CodeBuild 프로젝트를 생성할 때소스에 대한소스 공급자를 선택하고GitHub Enterprise.

    4. [Personal Access Token]에서 클리보드에 복사한 토큰을 붙여 넣습니다. 토큰 저장을 선택합니다. 이제 CodeBuild 계정이 GitHub Enterprise Server 계정에 연결되었습니다.

  • Bitbucket의 경우 HTTPS가 소스 코드 및 buildspec 파일을 포함하는 리포지토리에 URL을 복제합니다. URL에 bitbucket.org가 포함되어야 합니다. 또한 AWS 계정을 Bitbucket 계정에도 연결해야 합니다. 이렇게 하려면 CodeBuild 콘솔을 사용하여 빌드 프로젝트를 생성합니다.

    1. 콘솔을 사용하여 Bitbucket에 연결(또는 재연결)하면 Bitbucket [Confirm access to your account] 페이지에서 [Grant access]를 선택합니다. (Bitbucket 계정에 연결했으면 빌드 프로젝트 만들기를 완료하지 않아도 됩니다. CodeBuild 콘솔을 닫을 수 있습니다.)

  • AWS CodePipeline의 경우 sourcelocation 값을 지정하지 마십시오. CodePipeline 에서 파이프라인을 생성하면 파이프라인의 소스 단계에서 소스 코드 위치를 지정하게 되므로 CodePipeline Pipeline은 이 값을 무시합니다.

소스/GitCloneDepth

선택. 다운로드할 이력의 수준입니다. 최소값은 0입니다. 이 값이 0이거나, 25를 초과하거나, 지정되지 않은 경우 각 빌드 프로젝트에서 전체 이력이 다운로드됩니다. 소스 유형이 Amazon S3일 경우 이 값이 지원되지 않습니다.

소스/BudSpec

선택. 사용할 빌드 사양 정의 또는 파일입니다. 이 값을 제공하지 않거나 빈 문자열로 설정하는 경우 소스 코드에 루트 디렉터리의 buildspec.yml 파일이 포함되어 있어야 합니다. 이 값을 설정하면 인라인 buildspec 정의, 기본 소스의 루트 디렉터리에 상대적인 대체 buildspec 파일 또는 S3 버킷의 경로가 될 수 있습니다. 버킷은 빌드 프로젝트와 동일한 AWS 리전에 있어야 합니다. ARN을 사용하여 buildspec 파일을 지정합니다(예: arn:aws:s3:::my-codebuild-sample2/buildspec.yml). 자세한 정보는 buildspec 파일 이름 및 스토리지 위치을 참조하십시오.

소스/auth

사용하지 않습니다. 이 객체는 CodeBuild 콘솔에서만 사용할 수 있습니다.

소스/reportBuildStatus

빌드의 시작 및 완료 상태를 소스 공급자에게 보낼지 여부를 지정합니다. GitHub, GitHub Enterprise Server 또는 Bitbucket이 아닌 소스 공급자로 설정하는 경우, invalidInputException이 발생합니다.

소스 공급자에게 빌드 상태를 보고하려면 소스 공급자와 연결된 사용자에게 저장소에 대한 쓰기 권한이 있어야 합니다. 사용자에게 쓰기 권한이 없으면 빌드 상태를 업데이트할 수 없습니다. 자세한 정보는 소스 공급자 액세스을 참조하십시오.

소스/BuildStatusConfig

CodeBuild 빌드 프로젝트가 빌드 상태를 소스 공급자에게 보고하는 방법을 정의하는 정보를 포함합니다. 이 옵션은 소스 유형이GITHUB,GITHUB_ENTERPRISE또는BITBUCKET.

소스/빌드 상태구성/context

Bitbucket 소스의 경우 이 파라미터는name파라미터는 커밋 상태의 파라미터에 있습니다. GitHub 소스의 경우 이 파라미터는context파라미터는 GitHub 커밋 상태의 파라미터에 있습니다.

예를 들어, 다음을 수행할 수 있습니다.context에는 CodeBuild 환경 변수를 사용하여 빌드 번호와 webhook 트리거가 포함되어 있습니다.

AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER

이로 인해 webhook pull 요청 이벤트에서 트리거하는 빌드 #24 에 대해 다음과 같이 컨텍스트가 나타납니다.

AWS CodeBuild sample-project Build #24 - pr/8
소스/빌드 상태구성/TargetUr

Bitbucket 소스의 경우 이 파라미터는url파라미터는 커밋 상태의 파라미터에 있습니다. GitHub 소스의 경우 이 파라미터는target_url파라미터는 GitHub 커밋 상태의 파라미터에 있습니다.

예를 들어, 설정할 수 있습니다.targetUrltohttps://aws.amazon.com/codebuild/<path to build>커밋 상태가이 URL에 링크됩니다.

또한 CodeBuild 환경 변수를targetUrl를 클릭하여 URL에 추가 정보를 추가합니다. 예를 들어 URL에 빌드 영역을 추가하려면targetUrlCNAME:

"targetUrl": "https://aws.amazon.com/codebuild/<path to build>?region=$AWS_REGION"

빌드 영역이us-east-2, 이것은 확장됩니다:

https://aws.amazon.com/codebuild/<path to build>?region=us-east-2
소스/GitSubmodulesConfig

선택. Git 하위 모듈 구성에 대한 정보입니다. CodeCommit, GitHub, GitHub Enterprise Server 및 Bitbucket에서만 사용됩니다.

소스/하위 모듈구성/FetchSubmodules

리포지토리에 Git 하위 모듈을 포함하려면 fetchSubmodulestrue로 설정합니다. 포함된 Git 하위 모듈은 HTTPS로 구성해야 합니다.

소스/InsecureSsl

선택. GitHub Enterprise Server에서만 사용됩니다. GitHub Enterprise Server 프로젝트 리포지토리에 연결되어 있는 동안 TLS 경고를 무시하려면 이 값을 true로 설정합니다. 기본값은 false입니다. InsecureSsl은 테스트 용도로만 사용해야 합니다. 프로덕션 환경에 사용하면 안 됩니다.

소스/SourceIdentifier

프로젝트 출처에 대한 사용자 정의 식별자입니다. 기본 소스의 경우 선택 사항입니다. 보조 소스에 필요합니다.

secondarySources

선택. 의 어레이프로젝트소스빌드 프로젝트의 보조 소스에 대한 정보가 포함된 객체입니다. 보조 소스는 최대 12개까지 추가할 수 있습니다. 이secondarySources개체에서 사용 하는 동일한 속성을 사용 하 여source객체를 반환합니다. 보조 소스 객체에서sourceIdentifier은 필수입니다.

secondarySourceVersions

선택. 의 어레이ProjectSourceVersion객체를 반환합니다. 빌드 레벨에서 secondarySourceVersions이 지정되어 있으면 그 버전이 이 버전보다 우선합니다.

sourceVersion

선택. 이 프로젝트에 대해 빌드할 빌드 버전 입력. 지정하지 않으면 최신 버전이 사용됩니다. 지정하면 다음 중 하나여야 합니다.

  • CodeCommit it의 경우, 커밋 ID, 분기 또는 Git 태그를 사용할 수 있습니다.

  • GitHub의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID, 풀 요청 ID, 분기 이름 또는 태그 이름입니다. 풀 요청 ID가 지정된 경우 pr/pull-request-ID 형식을 사용해야 합니다(예: pr/25). 분기 이름이 지정되어 있으면 분기의 HEAD 커밋 ID가 사용됩니다. 지정되지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다.

  • Bitbucket의 경우, 빌드하려는 소스 코드의 버전에 해당하는 커밋 ID, 분기 이름 또는 태그 이름입니다. 분기 이름이 지정되어 있으면 분기의 HEAD 커밋 ID가 사용됩니다. 지정되지 않은 경우 기본 분기의 HEAD 커밋 ID가 사용됩니다.

  • Amazon S3의 경우 사용할 빌드 입력 ZIP 파일을 나타내는 객체의 버전 ID입니다.

빌드 수준에서 sourceVersion이 지정되어 있으면 (프로젝트 수준에서) 그 버전이 이 sourceVersion보다 우선합니다. 자세한 정보는 AWS CodeBuild를 사용한 소스 버전 샘플을 참조하십시오.

artifacts

필수. A프로젝트팩트객체의 경우 는 빌드 프로젝트의 출력 아티팩트 설정에 대한 정보가 들어 있습니다. artifacts 객체를 추가한 후에는 secondaryArtifacts를 사용해 아티팩트를 최대 12개까지 더 추가할 수 있습니다. 이러한 설정에는 다음이 포함됩니다.

/아티팩트유형

필수. 빌드 출력 결과물의 유형입니다. 유효한 값은 다음과 같습니다.

  • CODEPIPELINE

  • NO_ARTIFACTS

  • S3

/아티팩트location

와 함께 사용되는S3객체 유형입니다. 다른 아티팩트 유형에는 사용되지 않습니다.

필수 구성 요소에서 생성하거나 식별한 출력 버킷의 이름입니다.

/아티팩트path

와 함께 사용되는S3객체 유형입니다. 다른 아티팩트 유형에는 사용되지 않습니다.

ZIP 파일 또는 폴더를 배치할 출력 버킷의 의 경로입니다. 에 값을 지정하지 않으면pathCodeBuild.namespaceType(지정된 경우) 및name빌드 출력 ZIP 파일 또는 폴더의 경로 및 이름을 결정합니다. 예를 들어, 을 지정할 경우MyPathpathMyArtifact.zipname인 경우 경로와 이름은MyPath/MyArtifact.zip.

/아티팩트namespaceType

와 함께 사용되는S3객체 유형입니다. 다른 아티팩트 유형에는 사용되지 않습니다.

빌드 출력 ZIP 파일 또는 폴더의 네임스페이스입니다. 유효한 값에는 BUILD_IDNONE이 있습니다. 빌드 출력 ZIP 파일 또는 폴더의 경로에 빌드 ID를 삽입하려면 BUILD_ID를 사용하고 그렇지 않은 경우 NONE을 사용합니다. 에 값을 지정하지 않으면namespaceTypeCodeBuild.path(지정된 경우) 및name빌드 출력 ZIP 파일 또는 폴더의 경로 및 이름을 결정합니다. 예를 들어, 을 지정할 경우MyPathpath,BUILD_IDnamespaceType, 및MyArtifact.zipname인 경우 경로와 이름은MyPath/build-ID/MyArtifact.zip.

artifacts/name

와 함께 사용되는S3객체 유형입니다. 다른 아티팩트 유형에는 사용되지 않습니다.

빌드 출력 ZIP 파일 또는 폴더의 이름입니다.location. 예를 들어, 을 지정할 경우MyPathpathMyArtifact.zipname인 경우 경로와 이름은MyPath/MyArtifact.zip.

/아티팩트OverrideArtifactName

S3 아티팩트 유형에만 사용됩니다. 다른 아티팩트 유형에는 사용되지 않습니다.

선택. 로 설정된 경우true에 지정된 이름artifacts빌드 사양 파일 재정의name. 자세한 정보는 CodeBuild의 빌드 사양 참조을 참조하십시오.

/아티팩트패키징

와 함께 사용되는S3객체 유형입니다. 다른 아티팩트 유형에는 사용되지 않습니다.

선택. 아티팩트를 패키지하는 방법을 지정합니다. 허용되는 값은 입니다.

NONE

빌드 결과물을 포함하는 폴더를 생성합니다. 이것이 기본값입니다.

ZIP

빌드 결과물을 포함하는 ZIP 파일을 생성합니다.

secondaryArtifacts

선택. 의 어레이프로젝트팩트빌드 프로젝트의 보조 아티팩트 설정에 대한 정보가 들어 있는 개체입니다. 보조 아티팩트는 최대 12개까지 추가할 수 있습니다. secondaryArtifactsartifacts 객체에서 사용하는 것과 동일한 수의 설정을 사용합니다.

cache

필수. AProjectCache객체의 경우, 이 빌드 프로젝트의 캐시 설정에 대한 정보입니다. 자세한 정보는 빌드 캐싱을 참조하십시오.

environment

필수. A프로젝트바이언먼트객체의 경우, 이 프로젝트의 빌드 환경 설정에 대한 정보입니다. 이러한 설정은 다음과 같습니다.

환경/유형

필수. 빌드 환경의 유형입니다. 자세한 내용은 단원을 참조하십시오.유형CodeBuild API.

환경/이미지

필수. 이 빌드 환경에서 사용하는 Docker 이미지 식별자입니다. 일반적으로 이 식별자는 image-name:tag로 표현됩니다. 예를 들어 CodeBuild 가 도커 이미지를 관리하는 데 사용하는 Docker 리포지토리에서 이 값은 이 될 수 있습니다.aws/codebuild/standard:4.0. Docker Hub에서는 maven:3.3.9-jdk-8입니다. Amazon ECR에서account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag. 자세한 정보는 CodeBuild 에서 제공하는 도커 이미지을 참조하십시오.

환경/computeType

필수. 이 빌드 환경에서 사용하는 계산 리소스를 지정합니다. 자세한 내용은 단원을 참조하십시오.computeTypeCodeBuild API.

환경/인증서

선택. PEM으로 인코딩된 인증서를 포함하는 Amazon S3 버킷, 경로 접두사 및 객체 키의 ARN 입니다. 객체 키는 단지 .pem 파일일 수도 있고 PEM 인코딩된 인증서를 포함하는 .zip 파일일 수도 있습니다. 예를 들어 Amazon S3 버킷 이름이my-bucket인 경우 경로 접두사는cert이고 객체 키 이름은certificate.pem에 대한 허용 가능한 형식certificatemy-bucket/cert/certificate.pem또는arn:aws:s3:::my-bucket/cert/certificate.pem.

환경/환경 변수

선택. 의 어레이EnvironmentVariable개체의 경우 는 빌드 환경에 지정하려는 환경 변수가 들어 있습니다. 각 환경 변수는 포함된 객체로 표현됩니다.name,value, 및typename,value, 및type.

콘솔 및AWS CLI사용자는 모든 환경 변수를 볼 수 있습니다. 환경 변수의 가시성에 대한 문제가 없다면namevalue을 설정하고typetoPLAINTEXT.

환경 변수를 민감한 값으로 저장하는 것이 좋습니다 (예:AWS액세스 키 IDAWS보안 액세스 키 또는 암호를 Amazon EC2 Systems Manager 파라미터 스토어의 파라미터로 사용하거나AWS Secrets Manager. 용name에서 저장된 파라미터에 대해 CodeBuild 의 식별자를 참조로 설정합니다.

Amazon EC2 Systems Manager 파라미터 스토어를 사용하는 경우value에서 파라미터 스토어에 저장되는 파라미터의 이름을 설정합니다. typePARAMETER_STORE로 설정합니다. 라는 매개 변수 사용/CodeBuild/dockerLoginPassword를 예로 들면nametoLOGIN_PASSWORD. value/CodeBuild/dockerLoginPassword로 설정합니다. typePARAMETER_STORE로 설정합니다.

중요

Amazon EC2 Systems Manager 파라미터 스토어를 사용하는 경우 로 시작되는 파라미터 이름으로 파라미터를 저장하는 것이 좋습니다./CodeBuild/(예:/CodeBuild/dockerLoginPassword). Amazon EC2 Systems Manager 에서 파라미터를 생성할 때 CodeBuild 콘솔을 사용할 수 있습니다. 파라미터 생성을 선택하고 대화 상자에 표시되는 지시에 따릅니다. (이 대화 상자에서KMS 키에서 ARN 지정할 수 있습니다.AWS KMS키를 누릅니다. Amazon EC2 Systems Manager 는 이 키를 사용하여 저장 시 파라미터의 값을 암호화하고 검색 시 암호를 해독합니다. CodeBuild 콘솔을 사용하여 파라미터를 만드는 경우 콘솔은 라는 이름의 파라미터가 포함된 이름을 시작합니다./CodeBuild/가 저장되고 있기 때문입니다. 자세한 내용은 단원을 참조하십시오.Systems Manager Parameter StoreSystems Manager Parameter Store 콘솔 연습Amazon EC2 Systems Manager 사용 설명서.

빌드 프로젝트가 Amazon EC2 Systems Manager 파라미터 스토어에 저장된 파라미터를 참조하는 경우 해당 빌드 프로젝트의 서비스 역할은ssm:GetParametersaction. 당신이 선택한 경우새 서비스 역할앞에서 CodeBuild는 빌드 프로젝트의 기본 서비스 역할에 이 작업을 포함합니다. Existing service role(기존 서비스 역할)을 선택한 경우에는 이 작업을 서비스 역할에 별도로 포함해야 합니다.

빌드 프로젝트가 로 시작되지 않는 파라미터 이름으로 Amazon EC2 Systems Manager 파라미터 스토어에 저장된 파라미터를 참조하는 경우/CodeBuild/를 선택하고새 서비스 역할로 시작하지 않는 매개 변수 이름에 대한 액세스를 허용하도록 서비스 역할을 업데이트해야 합니다./CodeBuild/. 이는 서비스 역할이 /CodeBuild/로 시작하는 파라미터 이름에만 액세스할 수 있기 때문입니다.

를 선택한 경우새 서비스 역할에서 모든 파라미터를 해독할 권한이 서비스 역할에 포함됩니다./CodeBuild/네임스페이스를 Amazon EC2 Systems Manager 파라미터 스토어에 추가합니다.

사용자가 설정한 환경 변수는 기존 환경 변수를 대체합니다. 예를 들어 Docker 이미지에 값이 my_valueMY_VAR이라는 환경 변수가 이미 포함되어 있는데, 사용자가 MY_VAR 환경 변수의 값을 other_value로 설정하면, my_valueother_value로 바뀝니다. 마찬가지로, Docker 이미지에 값이 /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 선언의 값이 가장 낮은 우선 순위를 갖습니다.

Secrets Manager 를 사용하는 경우value에서 Secrets Manager 저장되는 파라미터의 이름을 설정합니다. typeSECRETS_MANAGER로 설정합니다. 라는 이름의 비밀 사용/CodeBuild/dockerLoginPassword를 예로 들면nametoLOGIN_PASSWORD. value/CodeBuild/dockerLoginPassword로 설정합니다. typeSECRETS_MANAGER로 설정합니다.

중요

Secrets Manager 사용하는 경우 이름이 로 시작하는 암호를 저장하는 것이 좋습니다./CodeBuild/(예:/CodeBuild/dockerLoginPassword). 자세한 내용은 단원을 참조하십시오.란 무엇입니까?AWS Secrets Manager?AWS Secrets Manager사용 설명서.

빌드 프로젝트가 Secms Manager 에 저장된 암호를 참조하는 경우 해당 빌드 프로젝트의 서비스 역할은secretsmanager:GetSecretValueaction. 당신이 선택한 경우새 서비스 역할앞에서 CodeBuild는 빌드 프로젝트의 기본 서비스 역할에 이 작업을 포함합니다. Existing service role(기존 서비스 역할)을 선택한 경우에는 이 작업을 서비스 역할에 별도로 포함해야 합니다.

빌드 프로젝트가 로 시작하지 않는 비밀 이름을 사용하여 비밀 Secrets Manager 저장된 암호를 참조하는 경우/CodeBuild/를 선택하고새 서비스 역할로 시작하지 않는 암호 이름에 대한 액세스를 허용하려면 서비스 역할을 업데이트해야 합니다./CodeBuild/. 이는 서비스 역할이 /CodeBuild/로 시작하는 암호 이름에만 액세스할 수 있기 때문입니다.

를 선택한 경우새 서비스 역할에서 모든 암호를 해독할 권한이 서비스 역할에 포함됩니다./CodeBuild/네임 스페이스를 Secrets Manager.

환경/Registrdential

선택. ARegistryCredential개체를 사용하여 프라이빗 Docker 레지스트리에 대한 액세스를 제공하는 자격 증명을 지정합니다.

환경/레지스트리자격 증명/Credential

를 사용하여 생성한 자격 증명의 ARN 또는 이름을 지정합니다.AWS Managed Services. 현재 리전에 있는 자격 증명의 이름만 사용할 수 있습니다.

환경/레지스트리자격 증명/Provider

유일한 유효 값은 SECRETS_MANAGER입니다.

이를 설정할 경우 다음과 같이 해야 합니다.

  • imagePullCredentialsSERVICE_ROLE로 설정해야 합니다.

  • 이미지는 큐레이트된 이미지나 Amazon ECR 이미지일 수 없습니다.

환경/imagePullCredentialsType

선택. CodeBuild 이미지를 가져오는 데 사용하는 자격 증명 유형입니다. 두 가지 값을 사용할 수 있습니다.

CODEBUILD

CODEBUILD는 CodeBuild 가 자체 자격 증명을 사용하도록 지정합니다. Amazon ECR 리포지토리 정책을 편집하여 CodeBuild 서비스 보안 주체를 신뢰해야 합니다.

서비스_역할

CodeBuild 가 빌드 프로젝트의 서비스 역할을 사용하도록 지정합니다.

교차 계정 또는 프라이빗 레지스트리 이미지를 사용할 경우 SERVICE_ROLE 자격 증명을 사용해야 합니다. CodeBuild 큐레이트 이미지를 사용할 경우CODEBUILD자격 증명.

환경/privilegedMode

설정true이 빌드 프로젝트를 사용하여 도커 이미지를 빌드하려고 계획하지만, 지정한 빌드 환경 이미지를 CodeBuild Build에서 Docker 지원으로 제공하지 않는 경우에만 가능합니다. 그렇지 않으면 Docker 데몬과 상호 작용을 시도하는 모든 연결된 빌드가 실패합니다. 또한 빌드가 상호 작용할 수 있도록 Docker 데몬을 시작해야 합니다. 이를 수행하는 한 가지 방법은 다음 빌드 명령을 실행하여 buildspec 파일의 install 단계에서 Docker 데몬을 초기화하는 것입니다. 지정한 빌드 환경 이미지가 Docker 지원을 통해 에서 제공되지 않는 경우 이 명령을 실행하지 마십시오.

참고

기본적으로 Docker 컨테이너는 모든 디바이스에 대한 액세스를 허용하지 않습니다. 권한 모드는 빌드 프로젝트의 Docker 컨테이너에 모든 디바이스에 대한 액세스 권한을 부여합니다. 자세한 내용은 Docker 문서 웹 사이트의 런타임 권한 및 Linux 기능을 참조하십시오.

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"

serviceRole

필수. IAM 사용자를 대신하여 서비스와 상호 작용하기 위해 CodeBuild 가 사용하는 서비스 역할 (예:arn:aws:iam::account-id:role/role-name).

timeoutInMinutes

선택. 빌드가 완료되지 않는 경우 가 해당 CodeBuild 중지하는 시간 (분 단위, 5분에서 480분 (8시간) 입니다. 지정하지 않을 경우 기본값인 60을 사용합니다. CodeBuild 가 시간 제한으로 인해 빌드를 중지했는지 및 중지한 시간을 확인하려면batch-get-builds명령을 사용합니다. 빌드가 중지되었는지 확인하려면 출력에서 FAILEDbuildStatus 값을 살펴봅니다. 빌드가 시간 초과된 시간을 확인하려면 출력에서 TIMED_OUTphaseStatus와 연결된 endTime 값을 살펴봅니다.

queuedTimeoutInMinutes

선택. 빌드가 아직 대기 중인 경우 가 해당 CodeBuild 중지하는 시간 (분 단위, 5분에서 480분 (8시간) 입니다. 지정하지 않을 경우 기본값인 60을 사용합니다.

encryptionKey

선택. 의 별칭 또는 ARNAWS KMS key빌드 출력을 암호화하기 위해 CodeBuild에서 사용됩니다. 별칭을 지정하는 경우 arn:aws:kms:region-ID:account-ID:key/key-ID 형식을 사용하고, 별칭이 있는 경우 alias/key-alias 형식을 사용합니다. 지정하지 않으면AWSAmazon S3 용 관리형 KMS 키가 사용됩니다.

tags

선택. 의 어레이Tag객체의 경우 이 빌드 프로젝트에 연결하려는 태그를 제공합니다. 최대 50개의 태그를 지정할 수 있습니다. 이 태그는 어떤에서 사용할 수 있습니다.AWS서비스를 제공합니다. 이 서비스는 프로젝트 태그를 빌드합니다. 각 태그는 객체로 표현된다keyvalue.

vpcConfig

선택. AVpcConfig객체를 통해 rproject에 대한 VPC 구성에 대한 정보가 들어 있습니다. 이러한 속성에는 다음이 포함됩니다.

vpcId

필수. CodeBuild d가 사용하는 VPC ID입니다. 리전의 모든 VPC ID 목록을 가져오려면 다음 명령을 실행합니다.

aws ec2 describe-vpcs --region <region-ID>
서브넷

필수. CodeBuild d에서 사용하는 리소스가 포함된 서브넷 ID의 배열입니다. 이 ID를 얻으려면 다음 명령을 실행합니다.

aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region <region-ID>
securityGroupIds

필수. CodeBuild d가 VPC 리소스에 대한 액세스를 허용하기 위해 사용하는 보안 그룹 ID의 배열입니다. 이 ID를 얻으려면 다음 명령을 실행합니다.

aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>

badgeEnabled

선택. CodeBuild 프로젝트에 빌드 배지를 포함할지 여부를 지정합니다. 설정true를 사용하여 빌드 배지를 활성화하거나false그렇지 않은 경우. 자세한 정보는 CodeBuild로 빌드 배지 샘플을 참조하십시오.

logsConfig

ALogsConfig이 빌드의 로그가 있는 위치에 대한 정보가 포함된 객체입니다.

LogsConfig/CloudwatchLogs

ACloudWatchLogsConfigCloudWatch Logs Logs에 로그를 푸시하는 방법에 대한 정보가 포함된 객체입니다.

LogsConfig/S3Logs

원래 요청 ping에 대한S3LogsConfig객체를 사용하여 Amazon S3 로 로그를 푸시하는 방법에 대한 정보가 포함된 객체입니다

fileSystemLocations

선택. 의 어레이프로젝트파일시스템위치Amazon EFS 구성에 대한 정보가 들어 있는 객체입니다.

buildBatchConfig

선택. 이buildBatchConfig객체는ProjectBuildBatchConfig프로젝트의 배치 빌드 구성 정보가 포함된 구조입니다.

BuildBatchConfigserviceRole

배치 빌드 프로젝트의 서비스 역할 ARN 입니다.

BuildBatchConfig콤비팩트

배치 빌드의 빌드 아티팩트를 단일 아티팩트 위치로 결합할지 여부를 지정하는 부울 값입니다.

빌드배치 구성/제한 사항/MaximumBuildAllowed

허용되는 최대 빌드 수입니다.

빌드배치 구성/제한 사항/허용된 컴퓨터 유형

배치 빌드에 허용되는 컴퓨팅 유형을 지정하는 문자열 배열입니다. 단원을 참조하십시오.빌드 환경 컴퓨팅 유형이 값에 대 한.

BuildBatchConfigtimeoutInMinutes

배치 빌드를 완료해야 하는 최대 시간 (분) 입니다.

BuildBatchConfig배치 보고서 모드

배치 빌드의 소스 공급자에게 빌드 상태 보고서를 보내는 방법을 지정합니다. 유효한 값으로는 다음이 포함됩니다.

REPORT_AGGREGATED_BATCH

(기본값) 모든 빌드 상태를 단일 상태 보고서로 집계합니다.

REPORT_INDIVIDUAL_BUILDS

각 개별 빌드에 대해 별도의 상태 보고서를 보냅니다.

concurrentBuildLimit

이 프로젝트에 허용된 최대 동시 실행 빌드 수입니다.

현재 빌드 수가 이 한도 이하인 경우에만 새 빌드가 시작됩니다. 현재 빌드 수가 이 한도에 도달하면 새 빌드가 제한되고 실행되지 않습니다.

프로젝트 생성

프로젝트를 만들려면create-project명령을 다시 실행하여 JSON 파일을 전달하십시오.

aws codebuild create-project --cli-input-json file://<json-file>

성공하면, JSON 표현의프로젝트개체가 콘솔 출력에 나타납니다. 단원을 참조하십시오.CreateProject 응답 구문이 데이터의 예를 참조하십시오.

빌드 프로젝트 이름을 제외한 모든 빌드 프로젝트 설정은 나중에 변경할 수 있습니다. 자세한 정보는 빌드 프로젝트 설정 변경(AWS CLI)을 참조하십시오.

빌드 실행을 시작하려면 빌드 실행(AWS CLI) 단원을 참조하십시오.

소스 코드가 GitHub 리포지토리에 저장되고 코드 변경이 리포지토리로 푸시될 때마다 CodeBuild에서 소스 코드를 다시 빌드하게 하려면빌드 실행 자동 시작(AWS CLI).