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

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

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

다음 절차에 따라 가 소스 코드를 빌드 CodeBuild 하는 데 사용하는 파이프라인을 생성합니다.

AWS CLI 를 사용하여 빌드된 소스 코드를 배포하거나 소스 코드만 테스트하는 파이프라인을 생성하려면 파이프라인 편집(AWS CLI)의 지침과 AWS CodePipeline 사용 설명서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지정된 이 구조는 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형식의 데이터에서:

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

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

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

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

    • 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. 빌드에 성공하면 다음 지침에 따라 빌드 출력 아티팩트를 가져오세요. 에서 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 확장자를 부여해야 할 수 있습니다.) 빌드 출력 아티팩트는 파일의 추출된 내용에 있습니다.