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

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

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

다음 절차에 따라 CodeBuild를 사용하여 소스 코드를 빌드하는 파이프라인을 생성하세요.

AWS CLI를 사용하여 빌드된 소스 코드를 배포하거나 소스 코드만 테스트하는 파이프라인을 생성하려면 AWS CodePipeline 사용 설명서파이프라인 편집(AWS CLI)CodePipeline 파이프라인 구조 참조의 지침에 따라 작업할 수 있습니다.

  1. CodeBuild에서 빌드 프로젝트를 생성하거나 식별합니다. 자세한 내용은 빌드 프로젝트 생성 섹션을 참조하세요.

    중요

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

  2. 이 주제에서 설명한 대로 IAM 엔터티 중 하나에 해당하는 AWS 액세스 키 및 AWS 비밀 액세스 키를 사용하여 AWS CLI를 구성했는지 확인합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서AWS Command Line Interface 설정을 참조하세요.

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

    { "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의 값은 사용자가 생성했거나 사전 요구 사항의 일부로 식별한 CodePipeline 서비스 역할의 ARN과 일치해야 합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  6. 빌드에 성공하면 다음 지침에 따라 빌드 출력 아티팩트를 가져오세요. https://console.aws.amazon.com/s3/에서 Amazon 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 확장자를 지정해야 할 수도 있습니다.) 빌드 출력 아티팩트는 파일의 추출된 내용에 있습니다.