구독을 만들 때 주제에 구독을 연결하면 구독자가 구독에서 메시지를 수신할 수 있습니다. 구독자가 메시지를 받지 못하도록 하려면 주제에서 구독을 분리하면 됩니다.
구독을 분리하려면 주제에 대한 pubsub.topics.detachSubscription
권한이 필요합니다. 구독에 대한 권한 없이 구독을 분리할 수 있으며 이는 구독과 다른 프로젝트에 있는 주제를 관리하는 데 유용합니다. 자세한 내용은 Pub/Sub 액세스 제어를 참조하세요.
시작하기 전에
필수 역할 및 권한
구독을 분리하고 관리하는 데 필요한 권한을 얻으려면 관리자에게 주제 또는 프로젝트에 대한 Pub/Sub 편집자(roles/pubsub.editor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 구독을 분리하고 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
구독을 분리하고 관리하려면 다음 권한이 필요합니다.
-
구독에서 가져오기:
pubsub.subscriptions.consume
-
구독 만들기:
pubsub.subscriptions.create
-
구독 삭제:
pubsub.subscriptions.delete
-
구독 가져오기:
pubsub.subscriptions.get
-
구독 나열:
pubsub.subscriptions.list
-
구독 업데이트:
pubsub.subscriptions.update
-
주제에 구독 연결하기:
pubsub.topics.attachSubscription
-
구독의 IAM 정책 가져오기:
pubsub.subscriptions.getIamPolicy
-
구독의 IAM 정책 구성:
pubsub.subscriptions.setIamPolicy
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
프로젝트 수준 및 개별 리소스 수준에서 액세스 제어를 구성할 수 있습니다. 한 프로젝트에서 구독을 만들고 이를 다른 프로젝트에 있는 주제에 연결할 수 있습니다. 각 프로젝트에 필요한 권한이 있는지 확인합니다.
주제에서 구독 분리
Google Cloud 콘솔, Google Cloud CLI, 클라이언트 라이브러리, Pub/Sub API를 사용하여 주제에서 구독을 분리할 수 있습니다.
콘솔
구독을 분리하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
구독을 분리하려는 주제를 선택합니다.
구독 탭에서 분리할 구독을 선택합니다.
구독 세부정보 페이지에서 분리를 클릭합니다.
표시되는 대화상자에서 분리를 다시 클릭합니다.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
구독을 분리하려면
gcloud pubsub topics detach-subscription
명령어를 사용합니다.gcloud pubsub topics detach-subscription SUBSCRIPTION_ID
요청이 성공하면 명령줄에 확인 메시지가 표시됩니다.
Detached subscription [SUBSCRIPTION_ID].
REST
구독을 분리하려면 projects.subscriptions.detach
메서드를 사용합니다.
요청:
요청은 Authorization
헤더의 액세스 토큰으로 인증해야 합니다. 현재 애플리케이션 기본 사용자 인증 정보에 대해 액세스 토큰을 가져오려면 gcloud auth application-default print-access-token
명령어를 사용합니다.
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:detach Authorization: Bearer ACCESS_TOKEN
각 항목의 의미는 다음과 같습니다.
응답:
요청이 성공하면 응답은 빈 JSON 객체입니다.
C++
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 C++ 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C++ API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
C#
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C# API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Go API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Java API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Node.js
PHP
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 Pub/Sub PHP API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Python API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
이 샘플을 사용해 보기 전에 Pub/Sub 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Ruby API 참고 문서를 확인하세요.
Pub/Sub에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Pub/Sub 서비스가 주제에서 구독 분리를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
Pub/Sub 서비스가 주제에서 구독을 분리하면 Pub/Sub 서비스가 구독에 대해 유지하는 모든 메시지를 삭제합니다. 구독에서 이러한 메시지를 검색하거나 주제에 구독을 다시 연결할 수 없습니다. Google Cloud 프로젝트 할당량을 확보하려면 구독을 삭제하세요.
구독과 주제가 다른 Google Cloud 프로젝트에 있는 경우 Pub/Sub 서비스는 두 프로젝트의 감사 로그에 항목을 추가합니다.
다음 단계
gcloud
명령어로 구독을 만들거나 수정합니다.- REST API로 구독을 만들거나 수정하기