이 페이지에서는 알림 구독 방법을 포함해 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 서비스 알림을 수신하려면 다음 안내를 따르세요.
Cloud Deploy API를 사용 설정합니다.
Cloud Deploy 서비스 에이전트 서비스 계정은 Cloud Deploy API를 처음 호출할 때 프로젝트에 자동으로 추가됩니다. 이 서비스 계정을 사용하면 Pub/Sub를 사용해서 Cloud Deploy 서비스 알림을 수신할 수 있습니다.
서비스 계정 이름의 형식은 다음과 같습니다. 여기서 project-number는 프로젝트 번호입니다.
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
IAM 페이지에 여전히 Cloud Deploy 서비스 에이전트 서비스 계정이 표시되지 않거나 Pub/Sub 알림을 수신할 수 없으면 이 서비스 계정을 프로젝트에 추가합니다.
Google Cloud 콘솔에서 IAM 페이지를 엽니다.
추가를 클릭합니다.
다음 주 구성원을 추가합니다. 여기서 project-number는 프로젝트 번호입니다.
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
역할로 Service Management > Cloud Deploy 서비스 에이전트를 선택합니다.
저장을 클릭합니다.
Pub/Sub API를 사용 설정합니다.
수신하려는 알림 유형을 기준으로 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
는 출시가 진행된 단계를 식별합니다.