Build Event-Driven Applications with Eventarc

목록
- Pub/Sub: Qwik Start - Command Line ⬅️ 오늘의 Lab!
- Cloud Run Functions: Qwik Start
- Eventarc for Cloud Run
- Build Event-Driven Applications with Eventarc: Challenge Lab
Pub/Sub 이란?
Pub/Sub는 비동기 전역 메시지 서비스로, Pub/Sub에서 자주 등장하는 세 가지 용어는 주제, 게시, 구독이다.
- 주제(topic): 애플리케이션이 공통 스레드를 통해 서로 연결할 수 있도록 하는 공유 문자열
- 게시(publish): 게시자가 Cloud Pub/Sub 주제로 메시지를 푸시(게시)
- 구독(subscription): 구독자는 구독에서 메시지를 가져오거나 푸시 구독을 위한 웹훅을 구성한다. 구성 가능한 기간 안에 모든 구독자가 각 메시지를 확인해야 한다.

# myTopic 이라는 주제 생성
gcloud pubsub topics create myTopic

# 삭제 테스트 할 테스트용 주제 생성
gcloud pubsub topics create Test1
gcloud pubsub topics create Test2
# 생성된 주제 목록 확인
gcloud pubsub topics list

# 주제 삭제
gcloud pubsub topics delete Test1
gcloud pubsub topics delete Test2
# 주제 목록 확인
gcloud pubsub topics list

# myTopic 에 대해 mySubscription 구독 생성
gcloud pubsub subscriptions create --topic myTopic mySubscription

# 삭제 테스트용 구독 생성
gcloud pubsub subscriptions create --topic myTopic Test1
gcloud pubsub subscriptions create --topic myTopic Test2
# myTopic에 대한 구독 목록 확인
gcloud pubsub topics list-subscriptions myTopic

# 구독 삭제
gcloud pubsub subscriptions delete Test1
gcloud pubsub subscriptions delete Test2
# 구독 목록 확인
gcloud pubsub topics list-subscriptions myTopic


gcloud pubsub topics publish myTopic --message "Hello"
gcloud pubsub topics publish myTopic --message "Publisher's name is <YOUR NAME>"
gcloud pubsub topics publish myTopic --message "Publisher likes to eat <FOOD>"
gcloud pubsub topics publish myTopic --message "Publisher thinks Pub/Sub is awesome"

gcloud pubsub subscriptions pull mySubscription --auto-ack
참고✨
pull명령어를 사용하여 주제에서 메시지를 가져온다.
pull명령어는 구독 기반이기 때문에 앞에서myTopic주제에 대해mySubscription구독을 설정했으므로 이 명령어는 정상적으로 작동한다.
주의🤖
- 플래그 없이
pull명령어를 사용하면 둘 이상의 메시지가 있는 주제를 구독하더라도 메시지가 하나만 출력된다.- 특정 구독 기반
pull명령어에서 개별 메시지가 출력되었으면pull명령어로 해당 메시지에 다시 액세스할 수 없다.

gcloud pubsub topics publish myTopic --message "Publisher is starting to get the hang of Pub/Sub"
gcloud pubsub topics publish myTopic --message "Publisher wonders if all messages will be pulled"
gcloud pubsub topics publish myTopic --message "Publisher will have to test to find out"

gcloud pubsub subscriptions pull mySubscription --limit=3
참고✨
현재까지 사용한 플래그 종류
--auto-ack: 가져온 메시지를 깔끔한 상자에서 볼 수 있도록 형식을 지정--limit: 가져올 메시지 수의 상한을 설정