이 문서에서는 pull 구독을 만드는 방법을 설명합니다. Google Cloud 콘솔, Google Cloud CLI, 클라이언트 라이브러리, Pub/Sub API를 사용하여 pull 구독을 만들 수 있습니다.
시작하기 전에
필수 역할 및 권한
구독을 만들려면 프로젝트 수준에서 액세스 제어를 구성해야 합니다. 또한 이 섹션의 뒷부분에서 설명하는 것처럼 구독과 주제가 다른 프로젝트에 있는 경우 리소스 수준 권한도 필요합니다.
    
      pull 구독을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Pub/Sub 편집자  (roles/pubsub.editor) IAM 역할을 부여해 달라고 요청하세요.
  
  
  
  
  역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
  
  
이 사전 정의된 역할에는 pull 구독을 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
pull 구독을 만들려면 다음 권한이 필요합니다.
- 
                구독에서 가져오기: 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
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
한 프로젝트에서 다른 프로젝트의 주제와 연결된 pull 구독을 만들어야 하는 경우 주제 관리자에게 주제에 대한 Pub/Sub 편집자 (roles/pubsub.editor) IAM 역할도 부여해 달라고 요청하세요.
pull 구독 속성
pull 구독을 구성할 때 다음 속성을 지정할 수 있습니다.
일반 속성
모든 구독에 설정할 수 있는 일반적인 구독 속성에 대해 알아봅니다.
1회만 전송
1회만 전송. 설정되면 Pub/Sub는 1회만 전송 보장을 이행합니다. 지정하지 않으면 구독은 각 메시지에 최소 1회 전송을 지원합니다.
pull 구독 만들기
다음 샘플은 제공된 기본 설정을 사용하여 pull 전송으로 구독을 만드는 방법을 보여줍니다.
콘솔
pull 구독을 만들려면 다음 단계를 완료하세요.
- Google Cloud 콘솔에서 구독 페이지로 이동합니다. 
- 구독 만들기를 클릭합니다.
- 구독 ID 필드에 이름을 입력합니다. - 구독 이름 지정 방법은 주제 또는 구독 이름 지정 안내를 참고하세요. 
- 드롭다운 메뉴에서 하나의 주제를 선택하거나 만듭니다. 구독은 주제에서 메시지를 수신합니다.
- 전송 유형을 pull로 유지합니다.
- 다른 모든 기본값을 유지합니다.
- 만들기를 클릭합니다.
주제 섹션에서도 구독을 만들 수 있습니다. 이 단축키는 주제를 구독과 연결하는 데 유용합니다.
- Google Cloud 콘솔에서 주제 페이지로 이동합니다. 
- 구독을 만들 주제 옆에 있는 more_vert를 클릭합니다.
- 컨텍스트 메뉴에서 구독 만들기를 선택합니다.
- 구독 ID를 입력합니다. - 구독 이름 지정 방법은 주제 또는 구독 이름 지정 안내를 참고하세요. 
- 전송 유형을 pull로 유지합니다.
- 다른 모든 기본값을 유지합니다.
- 만들기를 클릭합니다.
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 subscriptions create명령어를 실행합니다.gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID 다음을 바꿉니다. - SUBSCRIPTION_ID: 새 풀 구독의 이름 또는 ID입니다.
- TOPIC_ID: 주제의 이름 또는 ID
 
- PROJECT_ID: 프로젝트 ID
- SUBSCRIPTION_ID: 구독 ID
- TOPIC_ID: 주제 ID
REST
풀 구독을 만들려면 
projects.subscriptions.create 메서드를 사용합니다.
요청:
요청은 Authorization 헤더의 액세스 토큰으로 인증해야 합니다. 현재 애플리케이션 기본 사용자 인증 정보의 액세스 토큰을 얻으려면 
gcloud auth application-default print-access-token을 실행합니다.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
요청 본문:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID" }
각 항목의 의미는 다음과 같습니다.
응답:
{
"name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID",
"topic": "projects/PROJECT_ID/topics/TOPIC_ID",
"pushConfig": {},
"ackDeadlineSeconds": 10,
"messageRetentionDuration": "604800s",
"expirationPolicy": {
"ttl": "2678400s"
}
}C++
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 C++ 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C++ API 참고 문서를 확인하세요.
C#
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C# API 참조 문서를 확인하세요.
Go
다음 샘플에서는 Go Pub/Sub 클라이언트 라이브러리의 주요 버전 (v2)을 사용합니다. 아직 v1 라이브러리를 사용하고 있다면 v2로의 마이그레이션 가이드를 참고하세요. v1 코드 샘플 목록을 보려면 지원 중단된 코드 샘플을 참고하세요.
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Go API 참고 문서를 참조하세요.
자바
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Pub/Sub 자바 API 참조 문서를 참조하세요.
Node.js
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Node.js API 참조 문서를 참조하세요.
Node.ts
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Node.js API 참조 문서를 참조하세요.
PHP
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 PHP 설정 안내를 따르세요. 자세한 내용은 Pub/Sub PHP API 참조 문서를 참조하세요.
Python
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Python API 참조 문서를 참조하세요.
Ruby
다음 샘플에서는 Ruby Pub/Sub 클라이언트 라이브러리 v3을 사용합니다. 아직 v2 라이브러리를 사용하고 있다면 v3로의 마이그레이션 가이드를 참고하세요. Ruby v2 코드 샘플 목록을 보려면 지원 중단된 코드 샘플을 참고하세요.
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Ruby API 참고 문서를 참조하세요.
pull 구독 모니터링
Cloud Monitoring은 구독을 모니터링하기 위한 여러 측정항목을 제공합니다.
Pub/Sub와 관련하여 사용 가능한 모든 측정항목 및 설명 목록은 Pub/Sub 모니터링 문서를 참조하세요.
Pub/Sub 내에서도 구독을 모니터링할 수 있습니다.
다음 단계
- 가져오기 구독에서 메시지를 수신합니다.
- gcloud명령어로 구독을 만들거나 수정합니다.
- REST API로 구독을 만들거나 수정하기