이 페이지에서는 Cloud Run for Anthos용 이벤트를 설정하고 Cloud Storage에서 이벤트를 수신하는 방법을 보여줍니다.
이 빠른 시작에서는 다음을 수행합니다.
- GKE 클러스터를 만들고 Cloud Run for Anthos on Google Cloud를 사용 설정합니다.
- Cloud Run for Anthos 이벤트를 초기화합니다.
- 소스에서 수신자로 이벤트를 라우팅할 이벤트 브로커를 만듭니다.
- 이벤트를 수신하는 Cloud Run for Anthos 서비스를 배포합니다.
- Cloud Storage를 설정하여 이벤트를 생성합니다.
- 이벤트를 생성하고 확인합니다.
시작하기 전에
-
Google 계정으로
로그인합니다.
아직 계정이 없으면 새 계정을 등록하세요.
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
- Cloud SDK 설치 및 초기화
gcloud
명령줄 도구의 최신 버전을 사용 중인지 확인합니다.- GCP 프로젝트를 사용하도록
gcloud
명령줄 도구를 설정합니다.gcloud config set project PROJECT-ID
gcloud
명령줄 도구 베타 구성요소를 설치합니다.gcloud components install beta
- 이 빠른 시작에서 사용되는 서비스를 사용 설정합니다.
gcloud services enable cloudapis.googleapis.com gcloud services enable container.googleapis.com gcloud services enable containerregistry.googleapis.com gcloud services enable cloudbuild.googleapis.com
gcloud
명령줄 도구 구성 변수를 설정합니다.gcloud config set run/cluster events-cluster gcloud config set run/cluster_location us-central1 gcloud config set run/platform gke
- 선택사항: 다음을 입력하여
gcloud
명령줄 도구로 구성 설정을 확인할 수 있습니다.gcloud config list
출력은 다음과 비슷합니다.
[run] cluster = events-cluster cluster_location = us-central1 platform = gke
Cloud Run for Anthos가 사용 설정된 GKE 클러스터 만들기
CloudRun
,HttpLoadBalancing
,HorizontalPodAutoscaling
부가기능이 사용 설정된 상태에서 Cloud Run for Anthos용 Google Kubernetes Engine 클러스터를 만듭니다.gcloud beta container clusters create events-cluster \ --addons=HttpLoadBalancing,HorizontalPodAutoscaling,CloudRun \ --machine-type=n1-standard-4 \ --enable-autoscaling --min-nodes=3 --max-nodes=10 \ --no-issue-client-certificate --num-nodes=3 --image-type=cos \ --enable-stackdriver-kubernetes \ --scopes=cloud-platform,logging-write,monitoring-write,pubsub \ --zone us-central1 \ --release-channel=rapid
클러스터 만들기가 완료될 때까지 몇 분 정도 기다립니다. 만드는 과정에서 무시해도 안전한 경고가 표시될 수 있습니다. 클러스터 만들기가 완료되면 출력은 다음과 비슷합니다.
Creating cluster events-cluster...done. Created [https://container.googleapis.com/v1beta1/ \ projects/my-project/zones/us-central1/clusters/events-cluster].
my-project
는 프로젝트 ID입니다.my-project
프로젝트에events-cluster
라는 새 Google Kubernetes Engine 클러스터가 생성되었습니다.
Cloud Run for Anthos 이벤트 초기화
Cloud Run for Anthos용 이벤트를 초기화합니다.
gcloud
명령줄 도구를 사용하여 Cloud Run for Anthos 이벤트를 초기화합니다.gcloud beta events init --platform gke
메시지가 표시되면 GKE 클러스터로
events-cluster
를 선택합니다.서비스 계정을 만들고 이를 특정 역할에 결합하여 새 키를 생성하고 필요한 서비스를 사용 설정하도록 모든 프롬프트에
Y
를 입력합니다.
그러면
cloud-run-events
및knative-eventing
이라는 두 개의 Kubernetes 네임스페이스에 pod가 생성됩니다.선택사항: pod가 생성되었는지 확인합니다.
kubectl get pods -n cloud-run-events
출력은 다음과 비슷합니다.
NAME READY STATUS RESTARTS AGE controller-9cc679b67-2952n 1/1 Running 0 22s webhook-8576c4cfcb-dhz82 1/1 Running 0 16m
pod
knative-eventing
네임스페이스를 확인하려면 다음을 입력하세요.kubectl get pods -n knative-eventing
출력은 다음과 비슷합니다.
NAME READY STATUS RESTARTS AGE eventing-controller-77f46f6cf8-kj9ck 1/1 Running 0 17m eventing-webhook-5bc787965f-hcmwg 1/1 Running 0 17m
이벤트 브로커 만들기
Cloud Run for Anthos용 이벤트에서 브로커는 소스의 이벤트를 대상 서비스로 라우팅합니다. 이 빠른 시작에서는 Cloud Storage의 이벤트를 Cloud Run for Anthos 서비스로 라우팅하는 브로커를 만듭니다.
브로커를 만들려면 다음 안내를 따르세요.
events
네임스페이스를 만듭니다.kubectl create namespace events
기본 보안 비밀을 사용하여 네임스페이스를 초기화합니다.
gcloud beta events namespaces init events \ --copy-default-secret
이벤트 브로커를 만듭니다.
gcloud beta events brokers create default \ --namespace events
선택사항: 몇 분 후에 다음을 실행하여 브로커 상태를 확인할 수 있습니다.
kubectl get brokers \ -n events
Cloud Run for Anthos 서비스를 배포하여 이벤트 수신
브로커의 이벤트를 수신하여 이를 로깅하는 Cloud Run for Anthos 서비스를 배포합니다.
Cloud Run for Anthos 서비스를 배포하려면 다음 안내를 따르세요.
저장소를 클론합니다.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
자바
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
컨테이너를 빌드하고 Cloud Build에 업로드합니다.
gcloud builds submit \ --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
컨테이너 이미지를 Cloud Run for Anthos에 배포합니다.
gcloud run deploy events-quickstart-receiver \ --namespace=events \ --image gcr.io/$(gcloud config get-value project)/events-quickstart-container
서비스 URL이 표시되면 배포가 완료된 것입니다.
Cloud Storage 설정
스토리지 버킷이 변경되면 Cloud Storage가 이벤트를 생성하고 이벤트 브로커로 전송합니다. Cloud Storage를 설정하려면 다음 안내를 따르세요.
gsutil
명령줄 도구를 사용하여 Cloud Storage 버킷을 만듭니다.gsutil mb \ -p $(gcloud config get-value project) \ -l us-central1 \ gs://"events-quickstart-$(gcloud config get-value project)"
이 예시에서 Cloud Storage 버킷은 us-central1 리전에 생성됩니다.
Cloud Storage 서비스 계정을 검색합니다.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/$(gcloud config get-value project)/serviceAccount"
Cloud Storage 서비스 계정에 Pub/Sub에 대한 게시 권한을 부여합니다.
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \ --member=serviceAccount:CLOUD-STORAGE-SERVICE-ACCOUNT \ --role roles/pubsub.publisher
Cloud Storage 트리거 만들기
트리거를 만들 때 Cloud Storage에서 이벤트를 수신하는 Cloud Run for Anthos 서비스를 지정해야 합니다.
Cloud Storage 트리거를 만듭니다.
gcloud beta events triggers create trigger-storage \ --namespace events \ --target-service events-quickstart-receiver \ --type=google.cloud.storage.object.v1.finalized \ --parameters bucket=events-quickstart-$(gcloud config get-value project)
그러면
events-quickstart-bucket
Cloud Storage 버킷에 대한 트리거가 생성됩니다.선택사항: 다음을 실행하여 트리거 상태를 확인할 수 있습니다.
gcloud beta events triggers list \ --namespace=events
트리거 생성을 완료하고 준비하는 동안 Cloud Storage 이벤트를 전파하고 필터링하는 데 최대 10분이 걸릴 수 있습니다.
이벤트 생성 및 확인
이벤트를 생성하려면 텍스트 'Hello World'가 포함된
random.txt
라는 텍스트 파일을 만들고gsutil
명령줄 도구를 사용하여 Cloud Storage에 업로드합니다.echo "Hello World" > random.txt gsutil cp random.txt gs://events-quickstart-$(gcloud config get-value project)/random.txt
업로드 시 이벤트가 생성되고 Cloud Run for Anthos에서 이벤트의 메시지를 기록합니다.
Cloud Logging에서 메시지를 보려면 다음 안내를 따르세요.
수고하셨습니다. Cloud Run for Anthos용 이벤트가 배포되어 이벤트가 트리거되고 콘텐츠를 기록했습니다.
삭제
테스트 Cloud 프로젝트에 사용된 모든 리소스에 대한 비용 청구를 중지하려면 프로젝트를 삭제하세요.
- Cloud Console에서 리소스 관리 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.