빌드 알림 구독

Cloud Build는 빌드가 생성될 때, 빌드가 작동 상태로 전환될 때, 빌드가 완료될 때 같이 빌드 상태가 변경되면 Google Pub/Sub 주제에 메시지를 게시합니다.

Cloud Build가 이러한 빌드 업데이트 메시지를 게시하는 Pub/Sub 주제는 cloud-builds라고 칭합니다. 각 메시지에는 message.data 속성에 Build 리소스를 나타내는 base64 JSON 문자열이 포함되어 있습니다. 빌드 고유 ID와 빌드 상태message.attributes 필드에 나와 있습니다.

Pub/Sub 구독에 푸시 또는 풀 모델을 사용할 수 있습니다.

빌드 알림 수신

빌드 알림을 받으려면 다음 안내를 따르세요.

  1. Cloud Build API를 사용 설정합니다.

    Cloud Build API 사용 설정

    Cloud Build API를 사용 설정하면 Cloud Build 서비스 에이전트 서비스 계정이 프로젝트에 자동으로 추가됩니다. 서비스 계정을 사용하면 Pub/Sub을 통해 빌드 알림을 수신할 수 있습니다.

    서비스 계정의 형식은 다음과 같습니다. 여기서 project-number는 프로젝트 번호입니다.

     service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
    

    IAM 페이지에 Cloud Build 서비스 에이전트 서비스 계정이 보이지 않거나 Pub/Sub를 통해 알림을 받을 수 없는 경우 다음 단계에 따라 Cloud Build 서비스 에이전트 서비스 계정을 프로젝트에 추가합니다.

    1. Google Cloud 콘솔에서 IAM 페이지를 엽니다.

      IAM 페이지 열기

    2. 액세스 권한 부여를 클릭합니다.

    3. 다음 주 구성원을 추가합니다. 여기서 project-number는 프로젝트 번호입니다.

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. 역할로 서비스 에이전트 > Cloud Build 서비스 에이전트를 선택합니다.

    5. 저장을 클릭합니다.

  2. Pub/Sub API를 사용 설정합니다.

    Pub/Sub API 사용 설정

  3. cloud-builds 주제를 만듭니다.

    gcloud pubsub topics create cloud-builds
    

    Pub/Sub 주제 관리에 대해 자세히 알아보려면 주제 및 구독 관리를 참조하세요.

푸시

내보내기 구독은 사용자가 정의한 HTTP 엔드포인트에 메시지를 전송합니다. 메시지는 주제에 게시되는 즉시 전송됩니다.

내보내기 구독에서 전송되는 메시지는 다음과 유사합니다.

{
  "message": {
    "attributes": {
      "buildId": "abcd-efgh...",
      "status": "SUCCESS"
    },
    "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
    "message_id": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

가져오기

가져오기 구독은 구독한 애플리케이션에서 폴링할 경우 메시지를 전송합니다. 구독이 폴링되면 메시지가 전송됩니다.

가져오기 구독에서 전송되는 메시지는 다음과 유사합니다.

{
  "receivedMessages": [
    {
      "ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
      "message": {
        "attributes": {
          "buildId": "abcd-efgh-...",
          "status": "SUCCESS"
        },
        "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
        "messageId": "19917247034"
      }
    }
  ]
}

빌드 업데이트 알림을 구독하려면 어떻게 하나요?

빌드 업데이트 알림을 구독하는 옵션은 다양합니다. 예를 들어 엔드포인트로 메시지를 푸시하거나 구독을 폴링하는 Python 앱을 작성할 수 있습니다.

빌드 업데이트에 대해 Pub/Sub 구독을 설정하는 방법은 Pub/Sub 구독자 가이드를 참조하세요. Pub/Sub 클라이언트 라이브러리에 대해서도 배울 수 있으며 구독자 애플리케이션을 더 쉽게 개발할 수 있습니다.

Pub/Sub를 사용하여 Slack과 같은 서비스에 또는 이메일을 통해 빌드 업데이트를 전송하는 방법은 Cloud Build 알리미를 참조하세요.