빠른 시작: Cloud Run for Anthos 이벤트

이 페이지에서는 Cloud Run for Anthos용 이벤트를 설정하고 Cloud Storage에서 이벤트를 수신하는 방법을 보여줍니다.

이 빠른 시작에서는 다음을 수행합니다.

  1. GKE 클러스터를 만들고 Cloud Run for Anthos on Google Cloud를 사용 설정합니다.
  2. Cloud Run for Anthos 이벤트를 초기화합니다.
  3. 소스에서 수신자로 이벤트를 라우팅할 이벤트 브로커를 만듭니다.
  4. 이벤트를 수신하는 Cloud Run for Anthos 서비스를 배포합니다.
  5. Cloud Storage를 설정하여 이벤트를 생성합니다.
  6. 이벤트를 생성하고 확인합니다.

시작하기 전에

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud SDK 설치 및 초기화
  5. gcloud 명령줄 도구의 최신 버전을 사용 중인지 확인합니다.
  6. GCP 프로젝트를 사용하도록 gcloud 명령줄 도구를 설정합니다.

    gcloud config set project PROJECT-ID
    

  7. gcloud 명령줄 도구 베타 구성요소를 설치합니다.

    gcloud components install beta
    

  8. 이 빠른 시작에서 사용되는 서비스를 사용 설정합니다.

    gcloud services enable cloudapis.googleapis.com
    gcloud services enable container.googleapis.com
    gcloud services enable containerregistry.googleapis.com
    gcloud services enable cloudbuild.googleapis.com
    
  9. gcloud 명령줄 도구 구성 변수를 설정합니다.
    gcloud config set run/cluster events-cluster
    gcloud config set run/cluster_location us-central1
    gcloud config set run/platform gke
    

  10. 선택사항: 다음을 입력하여 gcloud 명령줄 도구로 구성 설정을 확인할 수 있습니다.

    gcloud config list
    

    출력은 다음과 비슷합니다.

    [run]
    cluster = events-cluster
    cluster_location = us-central1
    platform = gke
    

Cloud Run for Anthos가 사용 설정된 GKE 클러스터 만들기

  1. 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
    
  2. 클러스터 만들기가 완료될 때까지 몇 분 정도 기다립니다. 만드는 과정에서 무시해도 안전한 경고가 표시될 수 있습니다. 클러스터 만들기가 완료되면 출력은 다음과 비슷합니다.

    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용 이벤트를 초기화합니다.

  1. gcloud 명령줄 도구를 사용하여 Cloud Run for Anthos 이벤트를 초기화합니다.

    gcloud beta events init --platform gke
    
    1. 메시지가 표시되면 GKE 클러스터로 events-cluster를 선택합니다.

    2. 서비스 계정을 만들고 이를 특정 역할에 결합하여 새 키를 생성하고 필요한 서비스를 사용 설정하도록 모든 프롬프트에 Y를 입력합니다.

    그러면 cloud-run-eventsknative-eventing이라는 두 개의 Kubernetes 네임스페이스에 pod가 생성됩니다.

  2. 선택사항: 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 서비스로 라우팅하는 브로커를 만듭니다.

브로커를 만들려면 다음 안내를 따르세요.

  1. events 네임스페이스를 만듭니다.

    kubectl create namespace events
    
  2. 기본 보안 비밀을 사용하여 네임스페이스를 초기화합니다.

    gcloud beta events namespaces init events \
      --copy-default-secret
    
  3. 이벤트 브로커를 만듭니다.

    gcloud beta events brokers create default \
      --namespace events
    
  4. 선택사항: 몇 분 후에 다음을 실행하여 브로커 상태를 확인할 수 있습니다.

    kubectl get brokers \
      -n events
    

Cloud Run for Anthos 서비스를 배포하여 이벤트 수신

브로커의 이벤트를 수신하여 이를 로깅하는 Cloud Run for Anthos 서비스를 배포합니다.

Cloud Run for Anthos 서비스를 배포하려면 다음 안내를 따르세요.

  1. 저장소를 클론합니다.

    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
    
  2. 컨테이너를 빌드하고 Cloud Build에 업로드합니다.

    gcloud builds submit \
     --tag gcr.io/$(gcloud config get-value project)/events-quickstart-container
    
  3. 컨테이너 이미지를 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를 설정하려면 다음 안내를 따르세요.

  1. 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 리전에 생성됩니다.

  2. 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"
    
  3. 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 서비스를 지정해야 합니다.

  1. 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 버킷에 대한 트리거가 생성됩니다.

  2. 선택사항: 다음을 실행하여 트리거 상태를 확인할 수 있습니다.

    gcloud beta events triggers list \
      --namespace=events
    
  3. 트리거 생성을 완료하고 준비하는 동안 Cloud Storage 이벤트를 전파하고 필터링하는 데 최대 10분이 걸릴 수 있습니다.

이벤트 생성 및 확인

  1. 이벤트를 생성하려면 텍스트 '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에서 이벤트의 메시지를 기록합니다.

  2. Cloud Logging에서 메시지를 보려면 다음 안내를 따르세요.

    로그 뷰어 페이지로 이동

수고하셨습니다. Cloud Run for Anthos용 이벤트가 배포되어 이벤트가 트리거되고 콘텐츠를 기록했습니다.

삭제

테스트 Cloud 프로젝트에 사용된 모든 리소스에 대한 비용 청구를 중지하려면 프로젝트를 삭제하세요.

  1. Cloud Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

다음 단계