

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

# CodeBuild용 'Bitbucket pull 요청 및 웹후크 필터' 샘플 실행
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild 는 소스 리포지토리가 Bitbucket일 때 웹후크를 지원합니다. 즉, 소스 코드가 Bitbucket 리포지토리에 저장된 CodeBuild 빌드 프로젝트의 경우, Webhook는 코드 변경이 리포지토리에 푸시될 때마다 소스 코드를 다시 빌드하는 데 사용할 수 있습니다. 자세한 내용은 [Bitbucket Webhook 이벤트](bitbucket-webhook.md) 단원을 참조하십시오.

이 샘플에서는 Bitbucket 리포지토리를 사용하여 풀 요청을 생성하는 방법을 보여줍니다. 또한 Bitbucket webhook를 통해 CodeBuild를 트리거하여 프로젝트 빌드를 생성하는 방법을 보여줍니다.

**참고**  
Webhook를 사용할 때 사용자가 예상치 못한 빌드를 트리거할 수 있습니다. 이 위험을 줄이려면 [webhook 사용 모범 사례](webhooks.md#webhook-best-practices) 섹션을 참조하세요.

**Topics**
+ [사전 조건](#sample-bitbucket-pull-request-prerequisites)
+ [1단계: Bitbucket을 사용하여 빌드 프로젝트 생성 및 웹후크 활성화](#sample-bitbucket-pull-request-create)
+ [2단계: Bitbucket 웹후크를 사용하여 빌드 트리거](#sample-bitbucket-pull-request-trigger)

## 사전 조건
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 이 샘플을 실행하려면 AWS CodeBuild 프로젝트를 Bitbucket 계정에 연결해야 합니다.

**참고**  
 CodeBuild에서 Bitbucket으로 권한을 업데이트했습니다. 이전에 프로젝트를 Bitbucket에 연결했지만 지금 Bitbucket 연결 오류를 수신한 경우 다시 연결하여 CodeBuild에 webhook 관리 권한을 부여해야 합니다.

## 1단계: Bitbucket을 사용하여 빌드 프로젝트 생성 및 웹후크 활성화
<a name="sample-bitbucket-pull-request-create"></a>

 다음 단계에서는 Bitbucket을 소스 리포지토리로 사용하여 AWS CodeBuild 프로젝트를 생성하고 웹후크를 활성화하는 방법을 설명합니다.

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1.  CodeBuild 정보 페이지가 나타나면 **빌드 프로젝트 생성**을 선택합니다. 그렇지 않을 경우, 탐색 창에서 **빌드**를 확장한 후 **빌드 프로젝트**를 선택하고 **빌드 프로젝트 생성**을 선택합니다.

1. **빌드 프로젝트 생성**을 선택합니다.

1. **프로젝트 구성**에서 다음과 같이 합니다.  
**프로젝트 이름**  
이 빌드 프로젝트의 이름을 입력합니다. 빌드 프로젝트 이름은 각 AWS 계정에서 고유해야 합니다. 또한 선택에 따라 빌드 프로젝트에 대한 설명을 포함하여 다른 사용자가 이 프로젝트의 용도를 이해하도록 도울 수 있습니다.

1. **소스**에서 다음과 같이 합니다.  
**소스 공급자**  
**Bitbucket**을 선택합니다. Bitbucket과 연결(다시 연결)하는 지침을 따르고 **승인**을 선택합니다.  
**리포지토리**  
**내 Bitbucket 계정의 리포지토리**를 선택합니다.  
이전에 Bitbucket 계정에 연결한 적이 없으면 Bitbucket 사용자 이름과 앱 암호를 입력하고 **Bitbucket 보안 인증 저장**을 선택합니다.  
**Bitbucket 리포지토리**  
Bitbucket 리포지토리의 URL을 입력합니다.

1. **기본 소스 webhook 이벤트**에서 다음을 선택합니다.
**참고**  
**기본 소스 webhook 이벤트** 섹션은 이전 단계에서 **Bitbucket 계정의 리포지토리**를 선택한 경우에만 표시됩니다.

   1. 프로젝트를 생성할 때 **코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드**를 선택합니다.

   1. **이벤트 유형**에서 하나 이상의 이벤트를 선택합니다.

   1. 이벤트가 빌드를 트리거할 때를 필터링하려면 **Start a build under these conditions(다음 조건에서 빌드를 시작)**에서 하나 이상의 선택적 필터를 추가합니다.

   1. 이벤트가 트리거되지 않을 때를 필터링하려면 **Don't start a build under these conditions(다음 조건에서 빌드를 시작하지 않음)**에서 하나 이상의 선택적 필터를 추가합니다.

   1. 필요한 경우 **필터 그룹 추가**를 선택하여 다른 필터 그룹을 추가합니다.

   Bitbucket webhook 이벤트 유형 및 필터에 대한 자세한 내용은 [Bitbucket Webhook 이벤트](bitbucket-webhook.md) 섹션을 참조하세요.

1. **환경**에서 다음과 같이 합니다.  
**환경 이미지**  
다음 중 하나를 선택합니다.    
다음에서 관리하는 Docker 이미지를 사용하려면 AWS CodeBuild:  
**관리형 이미지**를 선택한 후 **운영 체제**, **런타임**, **이미지** 및 **이미지 버전**에서 옵션을 선택합니다. 사용 가능한 경우 **환경 유형**에서 항목을 선택합니다.  
다른 도커 이미지를 사용하려면:  
**사용자 지정 이미지**를 선택합니다. **환경 유형**에서 **ARM**, **Linux**, **Linux GPU** 또는 **Windows**를 선택합니다. **Other registry(다른 레지스트리)**를 선택한 경우 **External registry URL(외부 레지스트리 URL)**에 Docker Hub의 도커 이미지 이름 및 태그를 `docker repository/docker image name` 형식으로 입력합니다. **Amazon ECR**을 선택하는 경우 **Amazon ECR 리포지토리**와 **Amazon ECR 이미지를** 사용하여 AWS 계정에서 도커 이미지를 선택합니다.  
프라이빗 도커 이미지를 사용하려면:  
**사용자 지정 이미지**를 선택합니다. **환경 유형**에서 **ARM**, **Linux**, **Linux GPU** 또는 **Windows**를 선택합니다. **Image registry(이미지 레지스트리)**에서 **Other registry(다른 레지스트리)**를 선택한 다음 프라이빗 도커 이미지에 대한 보안 인증 정보의 ARN을 입력합니다. 보안 인증은 Secrets Manager에서 생성됩니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [What Is AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)를 참조하세요.  
**서비스 역할**  
다음 중 하나를 선택합니다.  
   + CodeBuild 서비스 역할이 없는 경우 **새 서비스 역할**을 선택합니다. **역할 이름**에 새 역할의 이름을 입력합니다.
   + CodeBuild 서비스 역할이 있는 경우 **기존 서비스 역할**을 선택합니다. **역할 ARN**에서 서비스 역할을 선택합니다.
콘솔을 사용하여 빌드 프로젝트를 생성하거나 업데이트하는 경우, 이와 동시에 CodeBuild 서비스 역할을 만들 수 있습니다. 기본적으로 역할은 해당 빌드 프로젝트에서만 작동합니다. 콘솔을 사용하여 이 서비스 역할을 다른 빌드 프로젝트와 연결하는 경우 다른 빌드 프로젝트에서 작동하도록 역할이 업데이트됩니다. 하나의 서비스 역할은 최대 10개의 빌드 프로젝트에서 작동할 수 있습니다.

1. **Buildspec**에서 다음 중 하나를 수행합니다.
   + **buildspec 파일 사용**을 선택하여 소스 코드 루트 디렉터리에 있는 buildspec.yml 파일을 사용합니다.
   + **빌드 명령 삽입**을 선택하여 콘솔에서 빌드 명령을 삽입합니다.

   자세한 내용은 [buildspec 참조](build-spec-ref.md) 단원을 참조하십시오.

1. **결과물**에서 다음과 같이 합니다.  
**유형**  
다음 중 하나를 선택합니다.  
   + 빌드 출력 아티팩트를 생성하지 않으려면 **No artifacts(아티팩트 없음)**를 선택합니다.
   + S3 버킷에 빌드 출력을 저장하려면 **Amazon S3**를 선택하고 다음 작업을 수행합니다.
     + 빌드 출력 ZIP 파일이나 폴더에 프로젝트 이름을 사용하려는 경우 **이름**을 비워 둡니다. 그렇지 않으면 이름을 입력합니다. 기본적으로 결과물 이름은 프로젝트의 이름입니다. 다른 이름을 사용하려면 결과물 이름 상자에 해당 이름을 입력합니다. ZIP 파일을 출력하려면 zip 확장명을 포함시킵니다.
     + [**Bucket name**]에서 출력 버킷의 이름을 선택합니다.
     + 이 절차의 앞부분에서 **빌드 명령 삽입**을 선택한 경우 **출력 파일**에 빌드 출력 ZIP 파일 또는 폴더에 넣으려는 빌드의 파일 위치를 입력합니다. 위치가 여러 개인 경우 각 위치를 쉼표로 구분합니다(예: `appspec.yml, target/my-app.jar`). 자세한 내용은 [buildspec 구문](build-spec-ref.md#build-spec-ref-syntax)의 `files` 설명을 참조하십시오.  
**추가 구성**  
**Additional configuration(추가 구성)**을 확장하고 옵션을 적절하게 설정합니다.

1. **빌드 프로젝트 생성**을 선택합니다. **검토** 페이지에서 **빌드 시작**을 선택하여 빌드를 실행합니다.

## 2단계: Bitbucket 웹후크를 사용하여 빌드 트리거
<a name="sample-bitbucket-pull-request-trigger"></a>

Bitbucket 웹후크를 사용하는 프로젝트의 경우 Bitbucket 리포지토리가 소스 코드의 변경을 감지하면 빌드를 AWS CodeBuild 생성합니다.

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1. 탐색 창에서 **빌드 프로젝트**를 선택한 다음 webhook에서 Bitbucket 리포지토리와 연결된 프로젝트를 선택합니다. Bitbucket webhook 프로젝트 생성에 대한 자세한 내용은 [1단계: Bitbucket을 사용하여 빌드 프로젝트 생성 및 웹후크 활성화](#sample-bitbucket-pull-request-create) 섹션을 참조하세요.

1. 프로젝트의 Bitbucket 리포지토리에서 코드를 변경합니다.

1. Bitbucket 리포지토리에서 풀 요청을 생성합니다. 자세한 내용은 [API 요청 생성](https://www.atlassian.com/git/tutorials/making-a-pull-request)을 참조하십시오.

1. Bitbucket Webhook 페이지에서 **View request(요청 보기)**를 선택하여 최신 이벤트 목록을 봅니다.

1. **세부 정보 보기**를 선택하여 CodeBuild에서 반환되는 응답에 대한 세부 정보를 확인합니다. 값이 다음과 같을 것입니다.

   ```
   "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..."
   "statusCode":200
   ```

1. Bitbucket 풀 요청 페이지로 이동하여 빌드 상태를 확인합니다.