클라이언트 라이브러리를 사용하여 Pub/Sub에서 메시지 게시 및 수신
- 데이터 제작자는 Pub/Sub 주제에 메시지를 게시합니다.
- 구독자 클라이언트가 해당 주제에 대한 구독을 생성하고 구독이 전달하는 메시지를 소비하게 됩니다.
Google Cloud 콘솔, Cloud Shell, 클라이언트 라이브러리 또는 REST API 방법 중에서 하나를 사용하여 Pub/Sub 환경을 설정할 수 있습니다. 이 페이지에서는 클라이언트 라이브러리를 사용하여 Pub/Sub로 메시지 게시를 시작하는 방법을 보여줍니다.
Pub/Sub는 높은 수준 및 낮은 수준의 자동 생성 클라이언트 라이브러리를 제공합니다. 기본적으로 이 빠른 시작에서와 같이 높은 수준의 클라이언트 라이브러리를 사용하는 것이 좋습니다.
Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
Google Cloud 프로젝트를 만들거나 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
-
Google Cloud 프로젝트를 만듭니다.
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
만든 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.
Pub/Sub API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기gcloud services enable pubsub.googleapis.com
-
사용자 계정에 대한 로컬 인증 사용자 인증 정보를 만듭니다.
gcloud auth application-default login
인증 오류가 반환되고 외부 ID 공급업체(IdP)를 사용하는 경우 제휴 ID로 gcloud CLI에 로그인했는지 확인합니다.
-
사용자 계정에 역할을 부여합니다. 다음 IAM 역할마다 다음 명령어를 1회 실행합니다.
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID입니다.USER_IDENTIFIER: 사용자 계정의 식별자입니다. 예를 들면myemail@example.com입니다.ROLE: 사용자 계정에 부여할 IAM 역할입니다.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
Google Cloud 프로젝트를 만들거나 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
-
Google Cloud 프로젝트를 만듭니다.
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
만든 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.
Pub/Sub API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기gcloud services enable pubsub.googleapis.com
-
사용자 계정에 대한 로컬 인증 사용자 인증 정보를 만듭니다.
gcloud auth application-default login
인증 오류가 반환되고 외부 ID 공급업체(IdP)를 사용하는 경우 제휴 ID로 gcloud CLI에 로그인했는지 확인합니다.
-
사용자 계정에 역할을 부여합니다. 다음 IAM 역할마다 다음 명령어를 1회 실행합니다.
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID입니다.USER_IDENTIFIER: 사용자 계정의 식별자입니다. 예를 들면myemail@example.com입니다.ROLE: 사용자 계정에 부여할 IAM 역할입니다.
클라이언트 라이브러리 설치
다음 샘플은 클라이언트 라이브러리 설치 방법을 보여줍니다.
Python
Python 개발 환경 설정에 관한 자세한 내용은 Python 개발 환경 설정 가이드를 참조하세요.
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
C++ 라이브러리 설치에 대한 자세한 내용은 GitHub README를 참고하세요.
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
지원되는 런타임 목록은 지원되는 Go 버전을 참고하세요.
go get cloud.google.com/go/pubsub/v2
자바
Maven을 사용하는 경우 pom.xml 파일에 다음을 추가합니다. BOM에 대한 자세한 내용은 Google Cloud Platform 라이브러리 BOM을 참조하세요.
Gradle을 사용하는 경우 종속 항목에 다음을 추가합니다.
SBT를 사용하는 경우 종속 항목에 다음을 추가합니다.
Visual Studio Code 또는 IntelliJ를 사용하는 경우 다음 IDE 플러그인을 사용하여 클라이언트 라이브러리를 프로젝트에 추가할 수 있습니다.
이 플러그인은 서비스 계정의 키 관리와 같은 추가 기능을 제공합니다. 자세한 내용은 각 플러그인의 문서를 참조하세요.
Node.js
npm install @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
주제 및 구독 만들기
주제를 만들면 주제를 구독하거나 주제에 게시할 수 있습니다.
다음 gcloud pubsub topics create 명령어를 사용하여 my-topic이라는 주제를 만듭니다. 남은 튜토리얼 부분에서 참조되므로 주제 이름을 변경하지 마세요.
gcloud pubsub topics create my-topic
gcloud pubsub subscriptions
create 명령어를 사용하여 구독을 만듭니다. 구독자 애플리케이션은 구독이 생성된 이후에 주제에 게시된 메시지만 사용할 수 있습니다.
gcloud pubsub subscriptions create my-sub --topic my-topic
메시지 게시
다음 샘플을 실행하기 전에 주석 처리를 삭제하고 코드에 표시된 필수 값을 채워야 합니다. 이는 이전에 만든 프로젝트 및 Pub/Sub 리소스에 샘플을 연결하는 데 필요합니다.
주제 ID에 my-topic을 사용합니다.
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
메시지 수신
방금 게시한 메시지를 구독자가 가져오도록 설정합니다. 모든 구독자는 구성 가능한 기간 안에 각 메시지를 확인해야 합니다. 확인하지 않은 메시지는 다시 전송됩니다. Pub/Sub는 종종 모든 메시지가 최소 한 번은 구독자에게 전송되도록 메시지를 두 번 이상 전달합니다.
다음 샘플을 실행하기 전에 주석 처리를 삭제하고 코드에 표시된 필수 값을 채워야 합니다. 이는 이전에 만든 프로젝트 및 Pub/Sub 리소스에 샘플을 연결하는 데 필요합니다.
구독 ID에 my-sub를 사용합니다.
메시지를 가져오는 방법을 보여주는 더 많은 예시는 클라이언트 라이브러리 코드 샘플을 참조하세요.
Python
C++
C#
Go