구독자는 라이트 구독을 사용하여 라이트 주제에서 메시지를 읽습니다. 라이트 구독을 생성하면 라이트 주제에 연결할 수 있습니다. 여러 라이트 구독을 단일 라이트 주제에 연결할 수 있습니다.
구독에는 두 가지 유형이 있습니다.
- 스탠더드 구독. 라이트 주제의 메시지를 읽어야 하는 클라이언트가 있는 경우 스탠더드 구독을 만듭니다.
- 내보내기 구독. Lite 메시지를 Pub/Sub로 내보내야 할 때 내보내기 구독을 만듭니다. 자세한 내용은 Pub/Sub로 Pub/Sub 라이트 메시지 내보내기를 참조하세요.
라이트 구독의 속성
영역별 라이트 주제의 구독은 다음을 제외하고 리전별 라이트 주제의 구독과 동일한 속성을 갖습니다.
리소스 이름에 사용되는 위치 유형, 영역, 리전입니다. 리전 위치 예시는
us-central1
이고, 영역 위치 예시는us-central1-a
입니다.신뢰성. 리전별 및 영역별 주제 간의 신뢰성 차이에 대한 자세한 내용은 라이트 주제의 데이터 복제를 참조하세요.
메시지 전송 요구사항
메시지를 스토리지에 쓰는 데 일시적인 오류가 발생하면 게시자가 메시지 전송을 다시 시도합니다. 이러한 재시도는 최종 사용자가 파악할 수 있습니다. 라이트 구독에는 구독이 이러한 메시지 재전송에 반응하는 방식을 변경하는 전송 요구사항 속성이 있습니다. 이 속성은 다음 두 옵션 중 하나로 설정할 수 있습니다.
메시지 즉시 전송. 이 옵션을 사용 설정하면 구독자 클라이언트는 메시지가 서버에 도착한 후에 모든 메시지를 수신합니다. 이 프로세스는 디스크에 쓰여지는 메시지의 상태에 종속되지 않습니다. 오프셋은 재사용되지 않지만 스토리지에 기록되지 않은 오프셋이 있는 메시지는 탐색 작업 후 다시 읽을 수 없을 수 있습니다.
저장 후 메시지 전송. 이 옵션을 사용 설정하면 메시지가 디스크에 기록될 때까지 구독자에게 수신되지 않습니다. 메시지는 탐색 작업 후 다시 읽을 수 있습니다. 이 옵션을 사용 설정하면 게시자에서 구독자로 메시지를 수신하는 데 걸리는 엔드 투 엔드 지연 시간이 늘어납니다.
구독 이름 지정 가이드라인
Pub/Sub 라이트 리소스 이름은 주제, 구독, 예약과 같은 Pub/Sub 라이트 리소스를 고유하게 식별합니다. 리소스 이름은 다음 형식이어야 합니다.
projects/project-identifier/collection/ID
project-identifier
: Google Cloud 콘솔에서 사용 가능한 프로젝트 ID 또는 프로젝트 번호여야 합니다. 예를 들어my-cool-project
는 프로젝트 ID입니다.123456789123
은 프로젝트 번호입니다.collection
:topics
,subscriptions
,reservations
중 하나여야 합니다.ID
: 다음 가이드라인을 준수하세요.goog
문자열로 시작하지 않도록 합니다.- 문자로 시작합니다.
- 3~255자여야 합니다.
- 다음 문자(글자
[A-Za-z]
, 숫자[0-9]
, 대시-
, 밑줄_
, 마침표.
, 물결표~
, 더하기 기호+
, 퍼센트 기호%
)만 포함해야 합니다.
URL로 인코딩하지 않고 리소스 이름에 이전 목록의 특수문자를 사용할 수 있습니다. 하지만 다른 특수문자를 URL에 사용하는 경우 올바르게 암호화되거나 디코딩되었는지 확인해야 합니다. 예를 들어
mi-tópico
는 잘못된 ID입니다. 그러나mi-t%C3%B3pico
는 유효합니다. 이 형식은 REST를 호출할 때 중요합니다.
라이트 구독 만들기
라이트 구독은 라이트 구독이 연결된 라이트 주제와 동일한 프로젝트 및 위치에 있어야 합니다.
라이트 주제를 만들려면 라이트 주제 만들기 및 관리를 참조하세요.
사용 가능한 위치 목록은 Pub/Sub 라이트 위치를 참조하세요.
Google Cloud 콘솔, Google Cloud CLI, Pub/Sub Lite API를 사용하여 라이트 구독을 만들 수 있습니다.
내보내기 구독 생성에 대한 자세한 내용은 Pub/Sub로 Pub/Sub 라이트 메시지 내보내기를 참조하세요.
콘솔
라이트 구독 페이지로 이동
라이트 구독 만들기를 클릭합니다.
라이트 구독 ID를 입력합니다.
메시지를 수신할 라이트 주제를 선택합니다.
메시지 즉시 전송 또는 저장 후 메시지 전송을 선택합니다.
시작 오프셋 유형을 선택합니다.
전송 유형을 선택합니다.
만들기를 클릭합니다.
gcloud
라이트 구독을 만들려면 gcloud pubsub lite-subscriptions create
명령어를 사용합니다.
gcloud pubsub lite-subscriptions create SUBSCRIPTION_ID \ --location=LOCATION \ --topic=TOPIC_ID \ --delivery-requirement=DELIVERY_REQUIREMENT
다음을 바꿉니다.
SUBSCRIPTION_ID: 라이트 구독의 ID
LOCATION: Pub/Sub 라이트가 지원하는 위치의 이름
TOPIC_ID: 라이트 구독에 연결할 라이트 주제의 ID
DELIVERY_REQUIREMENT:
deliver-after-stored
또는deliver-immediately
요청이 성공하면 명령줄에 확인 메시지가 표시됩니다.
Created [SUBSCRIPTION_ID].
프로토콜
라이트 구독을 만들려면 다음과 같이 POST
요청을 보냅니다.
POST https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
다음을 바꿉니다.
REGION: 라이트 구독을 저장할 리전
PROJECT_NUMBER: 라이트 구독을 만들 프로젝트의 프로젝트 번호
LOCATION: Pub/Sub 라이트가 지원하는 위치의 이름
SUBSCRIPTION_ID: 라이트 구독의 ID
요청 본문에 다음 필드를 지정합니다.
{ "topic": projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID, "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } }
DELIVERY_REQUIREMENT를 deliver-after-stored
또는 deliver-immediately
로 바꿉니다.
요청이 성공하는 경우 응답은 JSON 형식의 라이트 구독입니다.
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Go 설정 안내를 따르세요.
자바
이 샘플을 실행하기 전에 Pub/Sub 라이트 클라이언트 라이브러리의 자바 설정 안내를 따르세요.
Python
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Python 설정 안내를 따르세요.
라이트 주제에 대한 라이트 구독을 만든 후 라이트 구독에서 메시지를 수신할 수 있습니다.
라이트 구독 업데이트
Google Cloud 콘솔, Google Cloud CLI, Pub/Sub Lite API를 사용하여 라이트 구독을 업데이트할 수 있습니다.
콘솔
라이트 구독 페이지로 이동
라이트 구독 ID를 클릭합니다.
라이트 구독 세부정보 페이지에서 수정을 클릭합니다.
gcloud
라이트 구독을 업데이트하려면 gcloud pubsub lite-subscriptions update
명령어를 사용합니다.
gcloud pubsub lite-subscriptions update SUBSCRIPTION_ID \ --location=LOCATION \ --delivery-requirement=DELIVERY_REQUIREMENT
다음을 바꿉니다.
SUBSCRIPTION_ID: 라이트 구독의 ID
LOCATION: 라이트 구독이 있는 위치의 이름
DELIVERY_REQUIREMENT:
deliver-after-stored
또는deliver-immediately
요청이 성공하면 명령줄에 라이트 구독이 표시됩니다.
deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
프로토콜
라이트 구독을 업데이트하려면 다음과 같이 PATCH
요청을 보냅니다.
PATCH https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID?updateMask=deliveryConfig.deliveryRequirement Authorization: Bearer $(gcloud auth print-access-token)
다음을 바꿉니다.
REGION: 라이트 구독을 저장할 리전
PROJECT_NUMBER: 라이트 구독이 있는 프로젝트의 프로젝트 번호
LOCATION: 라이트 구독이 있는 위치의 이름
SUBSCRIPTION_ID: 라이트 구독의 ID
요청 본문에 다음 필드를 지정합니다.
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } }
DELIVERY_REQUIREMENT를 deliver-after-stored
또는 deliver-immediately
로 바꿉니다.
요청이 성공하는 경우 응답은 JSON 형식의 라이트 구독입니다.
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Go 설정 안내를 따르세요.
자바
이 샘플을 실행하기 전에 Pub/Sub 라이트 클라이언트 라이브러리의 자바 설정 안내를 따르세요.
Python
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Python 설정 안내를 따르세요.
라이트 구독 세부정보 보기
Google Cloud 콘솔, Google Cloud CLI, Pub/Sub Lite API를 사용하여 라이트 구독에 대한 세부정보를 가져올 수 있습니다.
콘솔
라이트 구독 페이지로 이동
라이트 구독 ID를 클릭합니다.
Lite 구독 세부정보 페이지에서 세부정보 탭을 클릭합니다.
gcloud
라이트 구독에 대한 세부정보를 가져 오려면 gcloud pubsub lite-subscriptions describe
명령어를 사용합니다.
gcloud pubsub lite-subscriptions describe SUBSCRIPTION_ID \ --location=LOCATION
다음을 바꿉니다.
SUBSCRIPTION_ID: 라이트 구독의 ID
LOCATION: 라이트 구독이 있는 위치의 이름
요청이 성공하면 명령줄에 라이트 주제가 표시됩니다.
deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
프로토콜
라이트 구독에 대한 세부정보를 가져오려면 다음과 같이 GET
요청을 보냅니다.
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
다음을 바꿉니다.
REGION: 라이트 구독을 저장할 리전
PROJECT_NUMBER: 라이트 구독이 있는 프로젝트의 프로젝트 번호
LOCATION: 라이트 구독이 있는 위치의 이름
SUBSCRIPTION_ID: 라이트 구독의 ID
요청이 성공하는 경우 응답은 JSON 형식의 라이트 주제입니다.
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Go 설정 안내를 따르세요.
자바
이 샘플을 실행하기 전에 Pub/Sub 라이트 클라이언트 라이브러리의 자바 설정 안내를 따르세요.
Python
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Python 설정 안내를 따르세요.
라이트 구독 나열
프로젝트의 라이트 구독 또는 라이트 주제에 대한 라이트 구독을 나열할 수 있습니다.
프로젝트의 라이트 구독 나열
Google Cloud 콘솔, Google Cloud CLI, Pub/Sub Lite API를 사용하여 프로젝트의 라이트 구독을 나열할 수 있습니다.
콘솔
라이트 구독 페이지로 이동
gcloud
- 프로젝트의 라이트 구독을 나열하려면
gcloud pubsub lite-subscriptions list
명령어를 사용합니다.
gcloud pubsub lite-subscriptions list \ --location=LOCATION
LOCATION을 라이트 구독이 있는 위치의 이름으로 바꿉니다.
요청이 성공하면 명령줄에 라이트 구독이 표시됩니다.
--- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID --- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
프로토콜
- 프로젝트의 라이트 구독을 나열하려면 다음과 같이
GET
요청을 보냅니다.
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/subscriptions Authorization: Bearer $(gcloud auth print-access-token)
다음을 바꿉니다.
REGION: 라이트 구독을 저장할 리전
PROJECT_NUMBER: 라이트 구독이 있는 프로젝트의 프로젝트 번호
요청이 성공하는 경우 응답은 JSON 형식의 라이트 주제입니다.
{ "subscriptions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" } ] }
Go
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Go 설정 안내를 따르세요.
자바
이 샘플을 실행하기 전에 Pub/Sub 라이트 클라이언트 라이브러리의 자바 설정 안내를 따르세요.
Python
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Python 설정 안내를 따르세요.
라이트 주제에 대한 라이트 구독 나열
Google Cloud 콘솔, Google Cloud CLI, Pub/Sub Lite API를 사용하여 라이트 주제에 라이트 구독을 나열할 수 있습니다.
콘솔
라이트 주제 페이지로 이동합니다.
라이트 주제 ID를 선택합니다.
라이트 주제 세부정보 페이지의 라이트 구독 섹션에는 라이트 주제에 대한 라이트 구독 목록이 포함되어 있습니다.
gcloud
- 주제에 라이트 구독을 나열하려면
gcloud pubsub lite-topics list-subscriptions
명령어를 사용합니다.
gcloud pubsub lite-topics list-subscriptions TOPIC_ID \ --location=LOCATION
다음을 바꿉니다.
TOPIC_ID: 라이트 구독이 연결된 라이트 주제의 ID
LOCATION: 라이트 구독이 있는 위치의 이름
요청이 성공하면 명령줄에 라이트 구독이 표시됩니다.
--- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID --- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
프로토콜
- 라이트 주제에 라이트 구독을 나열하려면 다음과 같이
GET
요청을 보냅니다.
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/lite-topics/TOPIC_ID/subscriptions Authorization: Bearer $(gcloud auth print-access-token)
다음을 바꿉니다.
REGION: 라이트 구독을 저장할 리전
PROJECT_NUMBER: 라이트 구독이 있는 프로젝트의 프로젝트 번호
LOCATION: 라이트 구독이 있는 위치의 이름
TOPIC_ID: 라이트 구독이 연결된 라이트 주제의 ID
요청이 성공하면 응답은 JSON 형식의 라이트 구독 목록입니다.
{ "subscriptions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" } ] }
Go
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Go 설정 안내를 따르세요.
자바
이 샘플을 실행하기 전에 Pub/Sub 라이트 클라이언트 라이브러리의 자바 설정 안내를 따르세요.
Python
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Python 설정 안내를 따르세요.
라이트 구독 삭제
Google Cloud 콘솔, Google Cloud CLI, Pub/Sub Lite API를 사용하여 라이트 구독을 삭제할 수 있습니다.
콘솔
라이트 구독 페이지로 이동
라이트 구독 ID를 클릭합니다.
라이트 구독 세부정보 페이지에서 삭제를 클릭합니다.
대화상자가 표시되면 삭제를 클릭하여 라이트 구독을 삭제할 것을 확인합니다.
gcloud
라이트 구독을 삭제하려면 gcloud pubsub lite-subscriptions delete
명령어를 사용합니다.
delete
명령어를 실행합니다.gcloud pubsub lite-subscriptions delete SUBSCRIPTION_ID \ --location=LOCATION
다음을 바꿉니다.
SUBSCRIPTION_ID: 라이트 구독의 ID
LOCATION: 라이트 구독이 있는 위치의 이름
확인하려면
Y
를 입력합니다.
요청이 성공하면 명령줄에 확인 메시지가 표시됩니다.
Deleted subscription [SUBSCRIPTION_ID].
프로토콜
- 라이트 주제를 삭제하려면 다음과 같이
DELETE
요청을 보냅니다.
DELETE https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
다음을 바꿉니다.
REGION: 라이트 구독을 저장할 리전
PROJECT_NUMBER: 라이트 구독이 있는 프로젝트의 프로젝트 번호
LOCATION: 라이트 구독이 있는 위치의 이름
SUBSCRIPTION_ID: 라이트 구독의 ID
요청이 성공하면 응답은 빈 JSON 객체입니다.
Go
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Go 설정 안내를 따르세요.
자바
이 샘플을 실행하기 전에 Pub/Sub 라이트 클라이언트 라이브러리의 자바 설정 안내를 따르세요.
Python
이 샘플을 실행하기 전에 Pub/Sub Lite 클라이언트 라이브러리의 Python 설정 안내를 따르세요.
다음 단계
- Lite 주제 만들기 및 관리
- 라이트 주제에 메시지를 게시합니다.
- 라이트 구독에서 메시지를 수신합니다.