Pub/Sub 알림 구성

Pub/Sub를 사용하면 Google Cloud 저장소에 대한 변경사항 알림을 수신할 수 있습니다. 이러한 알림은 사용자가 새 저장소를 만들거나, 저장소를 삭제하거나, 기존 저장소에 변경사항을 푸시할 때 이를 알립니다. 특정 저장소 또는 전체 Google Cloud 프로젝트에 대한 알림을 구성할 수 있습니다.

Pub/Sub에 대한 자세한 내용은 Pub/Sub란 무엇인가요?를 참조하세요.

시작하기 전에

  • 아직 완료하지 않았다면 빠른 시작의 단계를 따라 프로젝트를 만들고 Git을 설치하고 Cloud SDK를 초기화합니다.
  • 주제와 구독을 만들 수 있는 적절한 권한이 있는지 확인합니다. 자세한 내용은 액세스 제어를 참조하세요.
  • 주제에 게시할 수 있는 서비스 계정이 있는지 확인합니다. 기본적으로 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]은 주제 이름입니다.

주제를 만들려면 다음 단계를 따르세요.

Console

  1. Cloud Console에서 Pub/Sub 주제 페이지로 이동합니다.

    주제 페이지로 이동

  2. 주제 만들기를 클릭합니다.

  3. URI와 함께 주제 이름을 입력합니다.

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    각 항목의 의미는 다음과 같습니다.

    • [PROJECT_ID]는 Google Cloud 프로젝트 ID입니다.
    • [TOPIC_NAME]은 주제 이름입니다.
  4. 만들기를 클릭합니다.

    주제 세부정보 페이지가 열립니다.

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 구독을 만들어야 합니다.

구독자 앱은 저장소 주제에서 메시지를 수신합니다. 구독자는 알림을 보내거나 빌드를 트리거하여 저장소 이벤트에 응답할 수 있습니다.

구독을 만들려면 다음 단계를 따르세요.

Console

  1. Cloud Console에서 Pub/Sub 주제 페이지로 이동합니다.

    주제 페이지로 이동

  2. 프로젝트 주제의 이름을 클릭합니다.

  3. 구독 만들기를 클릭합니다.

    주제에 구독 추가 페이지가 열립니다.

  4. 구독 이름을 입력합니다.

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    각 항목의 의미는 다음과 같습니다.

    • [PROJECT_ID]는 Google Cloud 프로젝트 ID입니다.
    • [SUBSCRIPTION_NAME]은 Pub/Sub 구독의 이름입니다.
  5. 전송 유형가져오기로 설정합니다.

  6. 만들기를 클릭합니다.

gcloud

터미널 창에서 다음 명령어를 실행합니다.

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

각 항목의 의미는 다음과 같습니다.

  • [SUBSCRIPTION_NAME]은 Pub/Sub 구독의 이름입니다.
  • [TOPIC_NAME]은 주제 이름입니다.

gcloud pubsub subscriptions 명령어에 대한 자세한 내용은 subscriptions 문서를 참조하세요.

주제 추가

gcloud 명령줄 도구를 사용하여 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 기본 서비스 계정이 사용됩니다.

주제 삭제

gcloud 명령줄 도구를 사용하여 프로젝트 또는 저장소와 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]

다음 단계