Pub/Sub를 사용하면 Google Cloud 저장소에 대한 변경사항 알림을 수신할 수 있습니다. 이러한 알림은 사용자가 새 저장소를 만들거나, 저장소를 삭제하거나, 기존 저장소에 변경사항을 푸시할 때 이를 알립니다. 특정 저장소 또는 전체 Google Cloud 프로젝트에 대한 알림을 구성할 수 있습니다.
Pub/Sub에 대한 자세한 내용은 Pub/Sub란 무엇인가요?를 참조하세요.
시작하기 전에
- 아직 저장소를 만들지 않았다면 저장소를 만듭니다.
- 주제와 구독을 만들 수 있는 적절한 권한이 있는지 확인합니다. 자세한 내용은 액세스 제어를 참조하세요.
- 주제에 게시할 수 있는 서비스 계정이 있는지 확인합니다. 기본적으로 Cloud Source Repositories는 Compute Engine 기본 서비스 계정을 사용하여 메시지를 게시합니다. 자세한 내용은 Cloud Source Repositories용 Pub/Sub 알림을 참조하세요.
Pub/Sub 주제 만들기
알림을 받으려는 각 Cloud Source Repositories 프로젝트 또는 저장소에 대해 Pub/Sub 주제를 만들어야 합니다. Google Cloud Console 또는 gcloud
명령줄 도구를 사용하여 주제를 만들 수 있습니다.
주제를 만들 때 저장소의 정규화된 URI를 사용해야 합니다. 정규화된 URI는 다음과 같습니다.
projects/[PROJECT_ID]/topics/[TOPIC_NAME]
각 항목의 의미는 다음과 같습니다.
[PROJECT_ID]
는 Google Cloud 프로젝트 ID입니다.[TOPIC_NAME]
은 주제 이름입니다.
주제를 만들려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 Pub/Sub 주제 페이지로 이동합니다.
주제 만들기를 클릭합니다.
URI와 함께 주제 이름을 입력합니다.
projects/[PROJECT_ID]/topics/[TOPIC_NAME]
각 항목의 의미는 다음과 같습니다.
[PROJECT_ID]
는 Google Cloud 프로젝트 ID입니다.[TOPIC_NAME]
은 주제 이름입니다.
만들기를 클릭합니다.
주제 세부정보 페이지가 열립니다.
gcloud
터미널 창에서 다음 명령어를 실행합니다.
gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]
각 항목의 의미는 다음과 같습니다.
[PROJECT_ID]
는 Google Cloud 프로젝트 ID입니다.[TOPIC_NAME]
은 주제 이름입니다.
gcloud pubsub topics
명령어에 대한 자세한 내용은 topics
문서를 참조하세요.
Pub/Sub 구독 만들기
주제에 게시된 이벤트를 수신하려면 Pub/Sub 구독을 만들어야 합니다.
구독자 앱은 저장소 주제에서 메시지를 수신합니다. 구독자는 알림을 보내거나 빌드를 트리거하여 저장소 이벤트에 응답할 수 있습니다.
구독을 만들려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 Pub/Sub 주제 페이지로 이동합니다.
프로젝트 주제의 이름을 클릭합니다.
구독 만들기를 클릭합니다.
주제에 구독 추가 페이지가 열립니다.
구독 이름을 입력합니다.
projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
각 항목의 의미는 다음과 같습니다.
[PROJECT_ID]
는 Google Cloud 프로젝트 ID입니다.[SUBSCRIPTION_NAME]
은 Pub/Sub 구독의 이름입니다.
전송 유형을 가져오기로 설정합니다.
만들기를 클릭합니다.
gcloud
터미널 창에서 다음 명령어를 실행합니다.
gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]
각 항목의 의미는 다음과 같습니다.
[SUBSCRIPTION_NAME]
은 Pub/Sub 구독의 이름입니다.[TOPIC_NAME]
은 주제 이름입니다.
gcloud pubsub subscriptions
명령어에 대한 자세한 내용은 subscriptions
문서를 참조하세요.
주제 추가
Google Cloud CLI를 사용하여 Pub/Sub 주제와 Google Cloud 프로젝트 또는 저장소를 연결할 수 있습니다.
특정 주제와 전체 프로젝트와 연결하려면 다음 명령어를 입력합니다.
gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
각 항목의 의미는 다음과 같습니다.
[TOPIC_NAME]
은 Pub/Sub 주제의 이름입니다.[SERVICE_ACCOUNT_NAME]
은 Cloud Build 서비스 계정의 이름입니다.
주제와 특정 저장소를 연결하려면 다음 명령어를 입력합니다.
gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]
각 항목의 의미는 다음과 같습니다.
[REPOSITORY_NAME]
은 Google Cloud 저장소의 이름입니다.[TOPIC_NAME]
은 Pub/Sub 주제의 이름입니다.[SERVICE_ACCOUNT_NAME]
은 Cloud Build 서비스 계정의 이름입니다.
서비스 계정은 저장소와 동일한 프로젝트에 있어야 하며 pubsub.topics.publish
권한이 있어야 지정된 주제에 대한 메시지를 게시할 수 있습니다. 서비스 계정에는 iam.serviceAccounts.actAs
권한이 있어야 합니다. 서비스 계정을 지정하지 않으면 기본적으로 Compute Engine 기본 서비스 계정이 사용됩니다.
주제 삭제
Google Cloud CLI를 사용하여 프로젝트 또는 저장소와 Pub/Sub 주제 간 연결을 삭제할 수 있습니다.
전체 프로젝트에서 주제를 삭제하려면 다음 명령어를 입력합니다.
gcloud source project-configs update --remove-topic=[TOPIC_NAME]
특정 저장소에서 주제를 삭제하려면 다음 명령어를 입력합니다.
gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]
주제 형식 설정
Cloud Source Repositories에 대한 알림은 JSON 또는 프로토콜 버퍼 형식을 사용할 수 있습니다. 주제 형식을 설정하려면 다음과 같이 주제를 추가할 때 --message-format
매개변수를 사용하면 됩니다.
gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]
set-format
명령어를 사용해도 됩니다.
gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]
다음 단계
- Cloud Source Repositories용 Pub/Sub 알림에 대해 자세히 알아보기
- Pub/Sub 문서 읽어보기
- Pub/Sub란 무엇인가요?를 참조하여 Pub/Sub에 대해 자세히 알아보기
- Pub/Sub 액세스 제어 역할에 대해 자세히 알아보기