Cloud Deploy 알림 사용

이 페이지에서는 알림 구독 방법을 포함해 Cloud Deploy 서비스 알림을 사용하는 방법을 설명합니다.

Cloud Deploy에서는 Pub/Sub를 사용하여 두 가지 목적으로 알림을 게시합니다.

  • Cloud Deploy를 타사 도구 및 워크플로 티켓팅 또는 테스트 인프라용 도구와 같은 기타 Google 도구와 통합할 수 있습니다.

  • 추가 비즈니스 로직으로 Google Cloud Deploy를 확장할 수 있습니다.

사용 가능한 주제

Cloud Deploy는 다음 Google Pub/Sub 주제 집합에 메시지를 게시합니다.

  • clouddeploy-resources

    Cloud Deploy 코어 리소스(자동화, 커스텀 대상 유형, 배포 파이프라인, 작업 실행, 출시 버전, 출시, 대상)에 대한 작업(만들기, 업데이트, 삭제)이 있는 경우

  • clouddeploy-operations

    • Cloud Deploy에서 Skaffold 구성을 렌더링하는 경우
    • Cloud Deploy가 대상(Start, Succeed, Failure, Terminated(작업 실행), Cancelled(출시))에 배포되는 경우
  • clouddeploy-approvals

    • Cloud Deploy에 출시에 대한 승인(또는 거부)이 필요한 경우
    • 출시가 승인 또는 거부된 경우
  • clouddeploy-advances

    • Cloud Deploy 출시가 한 단계에서 다음 단계로 진행되는 경우
    • 출시를 진행할 준비가 되면

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

Cloud Deploy 서비스 알림 수신

Cloud Deploy 서비스 알림을 수신하려면 다음 안내를 따르세요.

  1. 프로젝트에 Cloud Deploy API를 사용 설정합니다.

    Cloud Deploy API 사용 설정

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

    Pub/Sub API 사용 설정

  3. 수신하려는 알림 유형을 기준으로 Pub/Sub 주제를 만듭니다.

    gcloud pubsub topics create clouddeploy-resources
    gcloud pubsub topics create clouddeploy-operations
    gcloud pubsub topics create clouddeploy-approvals
    gcloud pubsub topics create clouddeploy-advances
    

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

Cloud Deploy 서비스 알림 구독

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

Cloud Deploy 서비스 알림을 위한 Pub/Sub 구독 설정 방법을 보려면 Pub/Sub 구독자 가이드를 참조하세요. 또한 구독자 애플리케이션을 더 쉽게 개발할 수 있게 해주는 Pub/Sub 클라이언트 라이브러리에 대해 알아볼 수도 있습니다.

필드 값

이 섹션에서는 Cloud Deploy Pub/Sub 메시지에서 필드에 사용 가능한 값을 보여줍니다.

Action의 경우

이러한 알림에서 Action에 가능한 값은 다음과 같습니다.

  • 리소스의 경우

    • Create
    • Update
    • Delete
  • 작업의 경우:

    • Start
    • Succeed
    • Failure
    • Terminated
    • Cancelled
  • 승인의 경우:

    • Required
    • Approved
    • Rejected
  • 고급의 경우:

    • Required
    • Advanced

ResourceType의 경우

ResourceType에 사용 가능한 값은 다음과 같습니다.

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

샘플 메시지

다음 예시는 Cloud Deploy 주제에서 Pub/Sub 메시지의 몇 가지 유형을 보여줍니다.

전달 파이프라인 만들기

다음은 새로운 deliveryPipeline 만들기에 대한 응답으로 clouddeploy-resources에 게시된 Pub/Sub 메시지 예시입니다.

{
  "ackId":   "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQBQgUBXx9cEFMdVhddmhRDRlyfWByY11AAgVMVnldURsHaE5tdR_Wg6LHS0NVaF4TBgpGVX5fXx0IYVtedi_m7r_2wPXOXkAvOYXL6Mtpe735h9xvZiM9XxJLLD5-IzRFQV5AEkwoAURJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Create",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest",
      "ResourceType": "DeliveryPipeline",
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",

    },
    "messageId": "2407836004659723",
    "publishTime": "2021-05-17T21:24:48.204Z"
  }
}

렌더링 시작

다음은 출시 버전이 렌더링되었음을 알리는 clouddeploy-operations에 게시된 Pub/Sub 메시지의 예시입니다.

{
  "ackId": "U0RQBhYsXUZIUTcZCGhRDk9eIz81IChFFwYIFAV8fXBBTHVeXHRoUQ0Zcn1gcmNfR1MLFlN5WFEaB2hObXUfioKix0tDVWheEwYKRVZ3W1kdBGFVXH0v_qD5rMP1zl5AKDnZyujLaXudkqxfZiM9XxJLLD5-PTNFQV5AEkw2BkRJUytDCypYEU4EISE-MD5F",
  "message": {
    "attributes": {
      "Action": "Start",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2",
      "ResourceType": "Release"
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",
      "ReleaseId": "f2",
    },
    "messageId": "2407805942699908",
    "publishTime": "2021-05-17T21:28:04.201Z"
  }
}

승인 필요

다음은 출시에 승인이 필요함을 알리는 clouddeploy-approvals에 게시된 Pub/Sub 메시지의 예시입니다.

{
   "ackId": "RVNEUAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRILUxNRXHQBWhBpWF8aB1ENGXJ8ZnxtCRBVU0FWf1VbEQ16bVxti6C2rERfQXduWhQJBkBXd11aHQhoXF9dotnkpeTv2kFwYSuN8_7mSH_Mo6AYZiA9XBJLLD5-IzZFQV5AEkwoA0RJUytDCypYEU4EISE-MD4",
   "message": {
     "attributes": {
       "Action": "Required",
       "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123"
       "ReleaseId": "f2",
       "RolloutId": "rollout-123",
       "TargetId": "prod",
       "Location": "us-central1",
       "ProjectNumber": "120123456789",
     },
     "messageId": "2407845492165003",
     "publishTime": "2021-05-17T21:31:25.143Z"
   }
 }

출시 진행

다음은 출시가 한 단계에서 다음 단계로 진행되었음을 알리는 clouddeploy-advances에 게시되는 Pub/Sub 메시지의 예시입니다.

{
  "ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUSAwVPAihdeTFXKkFZdWhRDRlyfWB9bV4UUFZMV38OURoHaE5tdR_z4ILjS0NVbVkQBApEUHldXhkEa1RcfC-a0fmv1OzMV0AvOaCoyO9pe77r3NluZiM9XhJLLD5-Jz1FQV5AEkwsCERJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Advanced",
      "Location": "us-central1",
      "PhaseId": "stable",
      "ProjectNumber": "120123456789",
      "ReleaseId": "rollout-123",
      "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123",
      "RolloutId": "rollout-123",
      "TargetId": "prod"
    },
    "messageId": "7335813725293809",
    "publishTime": "2023-04-03T15:16:30.425Z"
  }
}

이 메시지에서 PhaseId은 출시가 진행된 단계를 나타냅니다.

다음 단계