CodeBuild를 사용하는 파이프라인 생성(AWS CLI) - AWS CodeBuild

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

CodeBuild를 사용하는 파이프라인 생성(AWS CLI)

다음 절차를 사용하여 소스 코드를 빌드하는 CodeBuild 데 사용할 파이프라인을 만드십시오.

를 사용하여 빌드한 소스 코드를 배포하거나 소스 코드만 테스트하는 파이프라인을 AWS CLI 만들려면 Edit a pipeline (AWS CLI) 의 지침과 사용 AWS CodePipeline 설명서의 CodePipeline 파이프라인 구조 참조를 조정할 수 있습니다.

  1. 에서 CodeBuild 빌드 프로젝트를 만들거나 식별하세요. 자세한 내용은 빌드 프로젝트 생성 단원을 참조하십시오.

    중요

    빌드 프로젝트는 빌드 출력 아티팩트 설정을 정의해야 합니다 ( CodePipeline 재정의하더라도). 자세한 내용은 빌드 프로젝트 생성(AWS CLI)artifacts 설명을 참조하십시오.

  2. 이 AWS CLI 항목에 설명된 IAM 엔티티 중 하나에 해당하는 AWS 액세스 AWS 키와 보안 액세스 키로 를 구성했는지 확인하세요. 자세한 내용은AWS Command Line Interface 사용 설명서의 AWS Command Line Interface설정을 참조하세요.

  3. JSON파이프라인 구조를 나타내는 형식 파일을 생성하십시오. 파일 이름을 create-pipeline.json 또는 비슷한 이름으로 지정합니다. 예를 들어, 이 JSON -format 구조는 S3 입력 버킷을 참조하는 소스 작업과 다음을 사용하는 빌드 작업으로 구성된 파이프라인을 생성합니다. CodeBuild

    { "pipeline": { "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "<bucket-name>", "S3ObjectKey": "<source-code-file-name.zip>" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "<build-project-name>" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<CodePipeline-internal-bucket-name>" }, "name": "<my-pipeline-name>", "version": 1 } }

    다음과 같은 JSON 형식의 데이터에서:

    • 의 값은 사전 roleArn 요구 ARN 사항의 일부로 생성하거나 식별한 CodePipeline 서비스 역할의 값과 일치해야 합니다.

    • configurationS3BucketS3ObjectKey 값은 소스 코드가 S3 버킷에 저장되어 있다고 가정합니다. 다른 소스 코드 리포지토리 유형에 대한 설정은 AWS CodePipeline 사용 설명서의 CodePipeline 파이프라인 구조 참조를 참조하십시오.

    • ProjectName 값은 이 절차의 앞부분에서 만든 CodeBuild 빌드 프로젝트의 이름입니다.

    • location의 값은 이 파이프라인에서 사용하는 S3 버킷의 이름입니다. 자세한 내용은 사용 설명서의 아티팩트 스토어로 사용할 S3 버킷에 대한 CodePipeline 정책 생성을 참조하십시오.AWS CodePipeline

    • name의 값은 이 파이프라인의 이름입니다. 모든 파이프라인 이름은 계정에서 고유해야 합니다.

    이 데이터는 소스 작업과 빌드 작업만 설명하지만 테스트, 빌드 출력 아티팩트 배포, AWS Lambda 함수 호출 등과 관련된 활동에 대한 작업을 추가할 수 있습니다. 자세한 내용은AWS CodePipeline 사용 설명서의 AWS CodePipeline 파이프라인 구조 참조를 참조하세요.

  4. 파일이 들어 있는 폴더로 전환한 다음 JSON 파일 이름을 지정하여 CodePipeline create-pipeline 명령을 실행합니다.

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
    참고

    지원되는 AWS 지역에서 CodeBuild 파이프라인을 생성해야 합니다. 자세한 내용은 AWS CodeBuildAmazon Web Services 일반 참조 섹션을 참조하십시오.

    JSON-formatted 데이터가 출력에 나타나고 파이프라인을 CodePipeline 생성합니다.

  5. 파이프라인 상태에 대한 정보를 가져오려면 파이프라인 이름을 지정하여 CodePipeline get-pipeline-state 명령을 실행합니다.

    aws codepipeline get-pipeline-state --name <my-pipeline-name>

    출력에서 빌드가 성공했음을 확인하는 정보를 찾습니다. 간결하게 나타내기 위해 생략된 데이터를 표시하는 데 줄임표(...)가 사용됩니다.

    { ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }

    이 명령을 너무 일찍 실행하면 빌드 작업에 대해 어떤 정보도 표시되지 않을 수 있습니다. 파이프라인에서 빌드 작업 실행이 완료될 때까지 이 명령을 여러 번 실행해야 할 수도 있습니다.

  6. 빌드에 성공하면 다음 지침에 따라 빌드 출력 아티팩트를 가져오세요. 에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

    참고

    콘솔의 관련 빌드 세부 정보 페이지에서 빌드 아티팩트 링크를 선택하여 빌드 출력 아티팩트를 가져올 수도 있습니다. CodeBuild 이 페이지로 이동하려면 이 절차의 나머지 단계를 건너뛰고 빌드 세부 정보 보기(콘솔) 섹션을 참조하세요.

  7. 버킷 목록에서 파이프라인에서 사용하는 버킷을 엽니다. 버킷의 이름은 codepipeline-<region-ID>-<random-number> 형식을 따릅니다. create-pipeline.json파일에서 버킷 이름을 가져오거나 CodePipeline get-pipeline 명령을 실행하여 버킷 이름을 가져올 수 있습니다.

    aws codepipeline get-pipeline --name <pipeline-name>

    출력에서 pipeline 객체는 artifactStore 객체를 포함하며, 이 객체에는 버킷 이름의 location 값이 들어 있습니다.

  8. 파이프라인 이름(예: <pipeline-name>)과 일치하는 폴더를 엽니다.

  9. 해당 폴더에서 이름이 default인 폴더를 엽니다.

  10. 파일 내용의 압축을 풉니다. 해당 폴더에 파일이 여러 개 있는 경우 가장 최근의 마지막 수정 시간 타임스탬프를 사용하여 파일의 내용을 추출합니다. (시스템 ZIP 유틸리티에서 작업할 수 있도록 파일에 .zip 확장자를 지정해야 할 수도 있습니다.) 빌드 출력 아티팩트는 파일의 추출된 내용에 있습니다.