Pub/Sub 메시지를 사용하여 이벤트 수신(gcloud CLI)
이 빠른 시작에서는 Pub/Sub를 사용하여 이벤트를 수신하는 인증되지 않은 Cloud Run 서비스를 배포하는 방법을 보여줍니다.
이 빠른 시작에서는 다음을 수행합니다.
Cloud Run에 이벤트 수신자 서비스를 배포합니다.
Eventarc 트리거를 만듭니다.
Pub/Sub 주제에 메시지를 게시하여 이벤트를 생성하고 Cloud Run 로그에서 확인합니다.
시작하기 전에
조직에서 Google Cloud 환경에 제약조건을 적용하면 이 문서의 일부 단계가 올바르게 작동하지 않을 수 있습니다. 이 경우 공개 IP 주소 또는 서비스 계정 키 만들기와 같은 작업을 완료하지 못할 수 있습니다. 제약조건에 대한 오류를 반환하는 요청을 수행하는 경우 제한된 Google Cloud 환경에서 애플리케이션 개발 방법을 참조하세요.
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
-
API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc 사용 설정
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
-
API Cloud Run, Cloud Logging, Cloud Build, Pub/Sub, Eventarc 사용 설정
- Google Cloud CLI를 설치하고 초기화합니다.
- gcloud 구성요소를 업데이트합니다.
gcloud components update
- 계정을 사용하여 로그인합니다.
gcloud auth login
- 이 빠른 시작에서 사용되는 구성 변수를 설정합니다.
gcloud config set project PROJECT_ID gcloud config set run/region us-central1 gcloud config set run/platform managed gcloud config set eventarc/location us-central1
여기서 PROJECT_ID는 Google Cloud 프로젝트 ID입니다.
Cloud Run에 이벤트 수신자 배포
이벤트를 수신하고 로깅하는 Cloud Run 서비스를 배포합니다.
저장소를 복제합니다.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
자바
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
또는 zip 파일로 샘플을 다운로드하고 압축을 풀 수 있습니다.
Cloud Run 샘플 코드가 포함된 디렉터리로 변경합니다.
Node.js
cd nodejs-docs-samples/eventarc/pubsub/
Python
cd python-docs-samples/eventarc/pubsub/
Go
cd golang-samples/eventarc/pubsub/
자바
cd java-docs-samples/eventarc/pubsub/
Ruby
cd ruby-docs-samples/eventarc/pubsub/
C#
cd dotnet-docs-samples/eventarc/pubsub/
컨테이너를 빌드하고 Cloud Build에 업로드합니다.
gcloud builds submit --tag gcr.io/$(gcloud config get-value project)/events-pubsub
컨테이너 이미지를 Cloud Run에 배포합니다.
gcloud run deploy helloworld-events-pubsub-quickstart \ --image gcr.io/$(gcloud config get-value project)/events-pubsub \ --allow-unauthenticated
서비스 URL이 표시되면 배포가 완료된 것입니다.
Eventarc 트리거 만들기
이벤트 트리거는 메시지가 Pub/Sub 주제에 게시될 때 Cloud Run에 배포된 이벤트 수신자 서비스로 메시지를 전송합니다.
Pub/Sub 메시지를 리슨하는 트리거를 만듭니다.
새 Pub/Sub 주제
gcloud eventarc triggers create events-pubsub-trigger \ --destination-run-service=helloworld-events-pubsub-quickstart \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
이렇게 하면 새 Pub/Sub 주제와
events-pubsub-trigger
라는 트리거가 생성됩니다.기존 Pub/Sub 주제
gcloud eventarc triggers create events-pubsub-trigger \ --destination-run-service=helloworld-events-pubsub-quickstart \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID
다음을 바꿉니다.
PROJECT_ID
는 Google Cloud 프로젝트 ID입니다.TOPIC_ID
는 기존 Pub/Sub 주제의 ID입니다.
기존 Pub/Sub 주제에 대한
events-pubsub-trigger
라는 이름의 트리거를 만듭니다.트리거가 성공적으로 생성되었는지 확인하세요.
gcloud eventarc triggers list --location=us-central1
Pub/Sub 주제의 이벤트 전송 및 확인
Eventarc 이벤트는 Pub/Sub 주제에 게시된 메시지입니다. Pub/Sub 주제를 사용하여 이벤트를 전송하려면 다음 안내를 따르세요.
Pub/Sub 주제를 환경 변수로 찾아서 설정합니다.
export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \ --format='value(transport.pubsub.topic)')
Pub/Sub 주제에 메시지를 보내 이벤트를 생성합니다.
gcloud pubsub topics publish $RUN_TOPIC --message "Runner"
이벤트는 Cloud Run 서비스로 전송되어 이벤트 메시지를 로깅합니다.
이벤트 메시지를 보려면 Cloud Run 서비스 로그로 이동합니다.
- Google Cloud Console로 이동합니다.
helloworld-events-pubsub-quickstart
서비스를 클릭합니다.로그 탭을 선택합니다.
로그가 나타나려면 시간이 약간 걸릴 수 있습니다. 즉시 표시되지 않으면 잠시 후 다시 확인하세요.
'Hello Runner!' 메시지를 찾습니다.
수고하셨습니다. Cloud Run에 이벤트 수신자 서비스를 성공적으로 배포하고, Eventarc 트리거를 만들고, Pub/Sub에서 이벤트를 생성하고, 이를 Cloud Run 로그에서 확인했습니다.
정리
Cloud Run에서는 서비스를 사용하지 않을 때 비용이 청구되지 않지만 Container Registry, Eventarc 리소스에 컨테이너 이미지를 저장하는 요금과 Pub/Sub 메시지의 요금이 부과될 수 있습니다.
비용이 청구되지 않도록 이미지를 삭제하거나 Pub/Sub 주제를 삭제하거나 Pub/Sub 구독을 삭제할 수 있습니다. Eventarc 트리거를 삭제하려면 다음 안내를 따르세요.
gcloud eventarc triggers delete events-pubsub-trigger
또는 Google Cloud 프로젝트를 삭제하여 비용 청구를 방지할 수 있습니다. 클라우드 프로젝트를 삭제하면 해당 프로젝트 내에서 사용되는 모든 리소스에 대한 청구가 중단됩니다.
- Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.