빌드 알림 구독

Cloud Build는 빌드가 생성될 때, 빌드가 작동 상태로 전환될 때, 빌드가 완료될 때 같이 빌드 상태가 변경되면 Google Pub/Sub 주제에 메시지를 게시합니다. 각 메시지에는 message.data 속성에 Build 리소스를 나타내는 base64 JSON 문자열이 포함되어 있습니다. 빌드 고유 ID와 빌드 상태message.attributes 필드에 나와 있습니다.

기본적으로 메시지는 cloud-builds 주제에 게시됩니다. 빌드 구성 파일의 options.pubsubTopic 필드에서 맞춤 주제 이름을 지정할 수도 있습니다. 빌드 구성 파일에서 주제 이름을 구성하는 방법에 관한 자세한 내용은 빌드 알림을 위한 Pub/Sub 주제를 참고하세요.

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
    

    메시지가 맞춤 주제로 전송되도록 빌드 구성 파일에서 맞춤 주제 이름을 정의할 수도 있습니다. 이 경우 동일한 맞춤 주제 이름으로 주제를 만듭니다.

    gcloud pubsub topics create topic-name
    

    자세한 내용은 빌드 알림을 위한 Pub/Sub 주제를 참고하세요.

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

구독정보 푸시

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

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

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

pull 구독

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

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

{
  "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 알리미를 참고하세요.