Cloud Run for Anthos 트리거 만들기

Eventarc 트리거는 특정 이벤트 또는 이벤트 집합에 관심이 있음을 선언합니다. 이벤트 소스 및 타겟 Cloud Run for Anthos 서비스를 포함하여 트리거에 대해 필터를 지정하여 이벤트 라우팅을 구성할 수 있습니다.

서비스에 대한 요청은 Pub/Sub 주제에 게시된 메시지로 트리거되거나 트리거의 필터 기준과 일치하는 감사 로그가 생성된 경우에 트리거됩니다.

시작하기 전에

워크로드 아이덴티티는 향상된 보안 속성과 관리 편의성으로 인해 Google Kubernetes Engine(GKE) 내에서 실행되는 애플리케이션에서 Google Cloud 서비스에 액세스하는 데 권장되는 방식입니다. 워크로드 아이덴티티를 사용하려면 Eventarc를 사용하여 Cloud Run for Anthos 이벤트를 전달해야 합니다. GKE 클러스터에 워크로드 아이덴티티가 사용 설정되어 있는지 확인합니다.

자세한 내용은 워크로드 아이덴티티 사용을 참조하세요.

트리거 만들기 준비

Eventarc는 Cloud Run for Anthos 서비스를 타겟팅하는 트리거별로 이벤트 전달자 구성요소를 만듭니다. Eventarc에서 GKE 클러스터에 구성요소를 설치하고 리소스를 관리하려면 해당 권한이 필요합니다. Cloud Run for Anthos 대상에 대해 Eventarc 트리거를 만들기 전에 다음 작업을 완료해야 합니다.

Eventarc API 사용 설정

Identity and Access Management(IAM) 역할을 보고 할당하려면 프로젝트에 Eventarc API를 사용 설정해야 합니다. API를 사용 설정할 때까지는 Cloud Console에서 Eventarc 역할을 볼 수 없습니다.

gcloud services enable eventarc.googleapis.com

서비스 계정 만들기

사용자 관리형 서비스 계정이 없는 경우 계정을 만들고 Eventarc가 Cloud Run for Anthos 대상에 대한 이벤트를 관리할 수 있도록 필요한 역할과 권한을 부여합니다.

  1. 프로젝트 구성 변수를 설정합니다.

    gcloud config set project PROJECT_ID
    

    PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다. 프로젝트 ID는 Google Cloud Console의 대시보드 페이지에서 찾을 수 있습니다.

  2. 트리거를 만들 때 사용할 서비스 계정을 만듭니다.

    TRIGGER_SA=SA_NAME
    gcloud iam service-accounts create $TRIGGER_SA

    SA_NAME을 서비스 계정의 이름으로 바꿉니다. 6~30자(영문 기준) 사이여야 하며 소문자 영숫자 문자와 대시를 포함할 수 있습니다. 서비스 계정을 만든 후에는 이름을 변경할 수 없습니다.

  3. 서비스 계정에 적절한 역할을 부여합니다.

    Cloud 감사 로그

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/eventarc.eventReceiver"
    

    Cloud Storage

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/eventarc.eventReceiver"
    

    게시/구독 주제

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/pubsub.subscriber"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:$TRIGGER_SA@PROJECT_NUMBER.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter"
    
    

    PROJECT_NUMBER를 Google Cloud 프로젝트 번호로 바꿉니다. Google Cloud Console의 대시보드 페이지에서 프로젝트 번호를 찾을 수 있습니다.

  4. Cloud Storage 트리거를 만드는 경우 Cloud Storage 서비스 계정에 pubsub.publisher 역할을 부여합니다.

    SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role='roles/pubsub.publisher'
    

GKE 대상 사용 설정

Eventarc가 GKE 클러스터의 리소스를 관리할 수 있도록 하려면 GKE 대상을 사용 설정하고 Eventarc 서비스 계정을 필요한 역할과 결합합니다.

  1. Eventarc에 GKE 대상을 사용 설정합니다.

    gcloud eventarc gke-destinations init
    
  2. 필요한 역할을 결합하라는 메시지가 표시되면 y를 입력합니다.

    다음 역할이 결합됩니다.

    • roles/compute.viewer
    • roles/container.developer
    • roles/iam.serviceAccountAdmin

Google Cloud CLI를 사용하여 트리거 만들기

필수 및 선택적 플래그와 함께 gcloud eventarc triggers create 명령어를 실행하여 트리거를 만들 수 있습니다.

Cloud 감사 로그

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

다음을 바꿉니다.

  • TRIGGER는 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다. 전역 트리거로 인한 성능 및 데이터 상주 문제를 방지하려면 이 위치가 이벤트를 생성하는 Google Cloud 서비스의 위치와 일치해야 합니다. 또는 eventarc/location 속성을 설정할 수 있습니다(예: gcloud config set eventarc/location us-central1). 자세한 내용은 Eventarc 위치를 참조하세요.
  • DESTINATION_GKE_CLUSTER: 이벤트를 수신하는 대상 Cloud Run for Anthos 서비스가 실행 중인 GKE 클러스터의 이름입니다.
  • DESTINATION_GKE_LOCATION: 대상 Cloud Run for Anthos 서비스가 있는 위치입니다. 이 리전이 지정되지 않으면 서비스가 트리거와 동일한 리전에 있다고 가정합니다. 자세한 내용은 Cloud Run for Anthos on Google Cloud 위치를 참조하세요.
  • DESTINATION_GKE_NAMESPACE: 대상 Cloud Run for Anthos 서비스가 실행되는 네임스페이스입니다. 지정하지 않으면 default 네임스페이스가 사용됩니다.
  • DESTINATION_GKE_SERVICE: 트리거의 이벤트를 수신하는 Cloud Run for Anthos 서비스의 이름입니다. 트리거의 위치가 전역이 아닌 한 경우 서비스는 트리거와 동일한 리전에 있어야 합니다. 서비스는 트리거와 동일한 프로젝트에 있어야 하며 이벤트가 생성될 때마다 해당 이벤트를 루트 URL 경로(/)로 전송되는 HTTP POST 요청으로 수신합니다.
  • (선택사항) DESTINATION_GKE_PATH: 트리거 이벤트가 전송될 대상 Cloud Run for Anthos 서비스의 상대 경로이며 사용자가 지정합니다. 예: /, /route, route, route/subroute
  • SERVICE_NAME은 Google Cloud 서비스의 식별자입니다.
  • METHOD_NAME: 작업의 식별자입니다.
  • TRIGGER_SERVICE_ACCOUNT: 트리거와 연결되어 있고 이전에 Eventarc에 필요한 특정 역할을 부여한 IAM 서비스 계정 이메일입니다. 예를 들면 다음과 같습니다. $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.

참고:

  • 이 플래그들은 필수사항입니다.
    • --event-filters="type=google.cloud.audit.log.v1.written"
    • --event-filters="serviceName=VALUE"
    • --event-filters="methodName=VALUE"
  • serviceNamemethodName 값을 포함하여 Eventarc에서 지원되는 감사 로그 이벤트 목록은 Eventarc에서 지원되는 이벤트를 참조하세요.
  • 각 트리거에 여러 이벤트 필터를 넣거나(한 개의 --event-filters=[ATTRIBUTE=VALUE,..] 플래그에 쉼표로 구분하여 입력) 플래그를 반복하여 필터를 추가할 수 있습니다. 모든 필터와 일치하는 이벤트만 대상으로 전송됩니다. 와일드 카드와 정규 표현식은 지원되지 않습니다. Cloud 감사 로그의 이벤트 필터 확인을 참조하세요.
  • 원하는 경우 --event-filters="resourceName=VALUE" 플래그를 사용하고 리소스의 전체 경로를 지정하여 특정 리소스의 이벤트를 필터링할 수 있습니다. 생성 시에 식별자가 생성된 동적으로 생성된 리소스는 플래그를 생략합니다.

예:

  gcloud eventarc triggers create cal-gke-trigger \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld-events \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.audit.log.v1.written" \
      --event-filters="serviceName=storage.googleapis.com" \
      --event-filters="methodName=storage.buckets.update" \
      --event-filters="resourceName=projects/_/buckets/eventarc-bucket/objects/random.txt" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

storage.googleapis.com에서 작성된 감사 로그와 storage.buckets.update로 식별된 작업에 대한 cal-gke-trigger라는 이름의 트리거가 생성됩니다.

Cloud Storage

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="bucket=BUCKET" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

다음을 바꿉니다.

  • TRIGGER는 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다. Cloud Storage 버킷은 Eventarc 트리거와 동일한 Google Cloud 프로젝트 및 리전 또는 멀티 리전에 있어야 합니다. 또는 eventarc/location 속성을 설정할 수 있습니다(예: gcloud config set eventarc/location us-central1). 자세한 내용은 Eventarc 위치를 참조하세요.
  • DESTINATION_GKE_CLUSTER: 이벤트를 수신하는 대상 Cloud Run for Anthos 서비스가 실행 중인 GKE 클러스터의 이름입니다.
  • DESTINATION_GKE_LOCATION: 대상 Cloud Run for Anthos 서비스가 있는 위치입니다. 이 리전이 지정되지 않으면 서비스가 트리거와 동일한 리전에 있다고 가정합니다. 자세한 내용은 Cloud Run for Anthos on Google Cloud 위치를 참조하세요.
  • DESTINATION_GKE_NAMESPACE: 대상 Cloud Run for Anthos 서비스가 실행되는 네임스페이스입니다. 지정하지 않으면 default 네임스페이스가 사용됩니다.
  • DESTINATION_GKE_SERVICE: 트리거의 이벤트를 수신하는 Cloud Run for Anthos 서비스의 이름입니다. 트리거의 위치가 전역이 아닌 한 경우 서비스는 트리거와 동일한 리전에 있어야 합니다. 서비스는 트리거와 동일한 프로젝트에 있어야 하며 이벤트가 생성될 때마다 해당 이벤트를 루트 URL 경로(/)로 전송되는 HTTP POST 요청으로 수신합니다.
  • (선택사항) DESTINATION_GKE_PATH: 트리거 이벤트가 전송될 대상 Cloud Run for Anthos 서비스의 상대 경로이며 사용자가 지정합니다. 예: /, /route, route, route/subroute
  • EVENT_FILTER_TYPE: Cloud Storage 이벤트의 식별자이며 다음 중 하나일 수 있습니다.
    • google.cloud.storage.object.v1.finalized—이벤트는 버킷에서 새로운 객체를 만들거나 기존 객체를 덮어쓰고 해당 객체의 새로운 세대를 만들면 전송됩니다.
    • google.cloud.storage.object.v1.archived—이벤트는 객체의 서비스 중인 버전이 보관처리되거나 삭제될 때 전송됩니다. 이 이벤트는 버전 관리 버킷인 경우에만 전송됩니다.
    • google.cloud.storage.object.v1.deleted—이벤트는 객체가 영구적으로 삭제될 때 전송됩니다. 버킷의 객체 버전 관리 설정에 따라 다음과 같은 결과가 발생합니다.
      • 버전 관리 버킷의 경우 버전이 영구적으로 삭제될 때에만 전송됩니다(객체를 보관처리할 때는 전송되지 않음).
      • 버전 관리 버킷이 아닌 경우 객체가 삭제되거나 덮어쓰여질 때 전송됩니다.
    • google.cloud.storage.object.v1.metadataUpdated—이벤트는 기존 객체의 메타데이터가 변경될 때 전송됩니다.
  • BUCKET은 Cloud Storage 버킷의 전역 고유 식별자입니다.
  • TRIGGER_SERVICE_ACCOUNT: 트리거와 연결되어 있고 이전에 Eventarc에 필요한 특정 역할을 부여한 IAM 서비스 계정 이메일입니다. 예를 들면 다음과 같습니다. $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID는 Google Cloud 프로젝트 ID입니다.

참고:

  • 이 플래그들은 필수사항입니다.
    • --event-filters="type=EVENT_FILTER_TYPE"
    • --event-filters="bucket=BUCKET"
  • 트리거가 생성된 후에는 EVENT_FILTER_TYPE을 수정할 수 없습니다. 대신 새 트리거를 만들고 이전 트리거를 삭제합니다.
  • 이벤트는 Cloud Storage의 Pub/Sub 알림을 사용하여 전송됩니다. 같은 버킷에 등록된 알림을 너무 많이 설정하면 Cloud Storage bucket ...: Pub/Sub notification limit reached 오류로 표시된 버킷의 알림 한도가 소진될 수 있습니다. 특정 이벤트에 트리거되는 알림 구성은 10개까지 사용할 수 있습니다. Cloud Storage 할당량 및 한도 페이지에서 추가 할당량 및 제한사항을 참조하세요.
  • 각 트리거에 여러 이벤트 필터를 넣거나(한 개의 --event-filters=[ATTRIBUTE=VALUE,..] 플래그에 쉼표로 구분하여 입력) 플래그를 반복하여 필터를 추가할 수 있습니다. 모든 필터와 일치하는 이벤트만 대상으로 전송됩니다. 와일드 카드와 정규 표현식은 지원되지 않습니다.
  • --service-account 플래그는 트리거와 연결된 Identity and Access Management(IAM) 서비스 계정 이메일을 지정하는 데 사용됩니다.
  • (선택사항) DESTINATION_GKE_PATH: 트리거 이벤트가 전송될 대상 Cloud Run for Anthos 서비스의 상대 경로이며 사용자가 지정합니다. 예: /, /route, route, route/subroute

예:

  gcloud eventarc triggers create gcs-gke-trigger \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld-events \
      --destination-gke-path=/ \
      --event-filters=type=google.cloud.storage.object.v1.finalized \
      --event-filters="bucket=my-project-bucket" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

이 명령어는 Cloud Storage 버킷 my-project-bucketgoogle.cloud.storage.object.v1.finalized로 식별된 이벤트에 대해 gcs-gke-trigger라는 트리거를 만듭니다.

기존 Pub/Sub 주제

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

다음을 바꿉니다.

  • TRIGGER는 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다. 전역 트리거로 인한 성능 및 데이터 상주 문제를 방지하려면 이 위치가 이벤트를 생성하는 Google Cloud 서비스의 위치와 일치해야 합니다. 또는 eventarc/location 속성을 설정할 수 있습니다(예: gcloud config set eventarc/location us-central1). 자세한 내용은 Eventarc 위치를 참조하세요.
  • DESTINATION_GKE_CLUSTER: 이벤트를 수신하는 대상 Cloud Run for Anthos 서비스가 실행 중인 GKE 클러스터의 이름입니다.
  • DESTINATION_GKE_LOCATION: 대상 Cloud Run for Anthos 서비스가 있는 위치입니다. 이 리전이 지정되지 않으면 서비스가 트리거와 동일한 리전에 있다고 가정합니다. 자세한 내용은 Cloud Run for Anthos on Google Cloud 위치를 참조하세요.
  • DESTINATION_GKE_NAMESPACE: 대상 Cloud Run for Anthos 서비스가 실행되는 네임스페이스입니다. 지정하지 않으면 default 네임스페이스가 사용됩니다.
  • DESTINATION_GKE_SERVICE: 트리거의 이벤트를 수신하는 Cloud Run for Anthos 서비스의 이름입니다. 트리거의 위치가 전역이 아닌 한 경우 서비스는 트리거와 동일한 리전에 있어야 합니다. 서비스는 트리거와 동일한 프로젝트에 있어야 하며 이벤트가 생성될 때마다 해당 이벤트를 루트 URL 경로(/)로 전송되는 HTTP POST 요청으로 수신합니다.
  • (선택사항) DESTINATION_GKE_PATH: 트리거 이벤트가 전송될 대상 Cloud Run for Anthos 서비스의 상대 경로이며 사용자가 지정합니다. 예: /, /route, route, route/subroute
  • PROJECT_ID는 Google Cloud 프로젝트 ID입니다.
  • TOPIC_ID는 기존 Pub/Sub 주제의 ID입니다. 주제는 트리거와 동일한 프로젝트에 있어야 합니다.
  • TRIGGER_SERVICE_ACCOUNT: 트리거와 연결되어 있고 이전에 Eventarc에 필요한 특정 역할을 부여한 IAM 서비스 계정 이메일입니다. 예를 들면 다음과 같습니다. $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com

참고:

  • --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" 플래그는 필수사항입니다.
  • 각 트리거에 여러 이벤트 필터를 넣거나(한 개의 --event-filters=[ATTRIBUTE=VALUE,..] 플래그에 쉼표로 구분하여 입력) 플래그를 반복하여 필터를 추가할 수 있습니다. 모든 필터와 일치하는 이벤트만 대상으로 전송됩니다. 와일드 카드와 정규 표현식은 지원되지 않습니다.
  • --transport-topic 플래그는 기존 Pub/Sub 주제 또는 정규화된 식별자의 ID를 지정하는 데 사용됩니다.
  • 기본적으로 Eventarc용으로 생성된 Pub/Sub 구독은 활동과 관계없이 유지되며 만료되지 않습니다. 비활성 기간을 변경하려면 구독 관리를 참조하세요.

예:

  gcloud eventarc triggers create pubsub-gke-trigger-existing \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_ID} \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

그러면 projects/${PROJECT_ID}/topics/${TOPIC_ID}으로 식별된 Pub/Sub 주제에 대한 pubsub-gke-trigger-existing이라는 이름의 트리거가 생성됩니다.

새 Pub/Sub 주제

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-gke-cluster=DESTINATION_GKE_CLUSTER \
    --destination-gke-location=DESTINATION_GKE_LOCATION \
    --destination-gke-namespace=DESTINATION_GKE_NAMESPACE \
    --destination-gke-service=DESTINATION_GKE_SERVICE \
    --destination-gke-path=DESTINATION_GKE_PATH \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=TRIGGER_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

다음을 바꿉니다.

  • TRIGGER는 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다. 전역 트리거로 인한 성능 및 데이터 상주 문제를 방지하려면 이 위치가 이벤트를 생성하는 Google Cloud 서비스의 위치와 일치해야 합니다. 또는 eventarc/location 속성을 설정할 수 있습니다(예: gcloud config set eventarc/location us-central1). 자세한 내용은 Eventarc 위치를 참조하세요.
  • DESTINATION_GKE_CLUSTER: 이벤트를 수신하는 대상 Cloud Run for Anthos 서비스가 실행 중인 GKE 클러스터의 이름입니다.
  • DESTINATION_GKE_LOCATION: 대상 Cloud Run for Anthos 서비스가 있는 위치입니다. 이 리전이 지정되지 않으면 서비스가 트리거와 동일한 리전에 있다고 가정합니다. 자세한 내용은 Cloud Run for Anthos on Google Cloud 위치를 참조하세요.
  • DESTINATION_GKE_NAMESPACE: 대상 Cloud Run for Anthos 서비스가 실행되는 네임스페이스입니다. 지정하지 않으면 default 네임스페이스가 사용됩니다.
  • DESTINATION_GKE_SERVICE: 트리거의 이벤트를 수신하는 Cloud Run for Anthos 서비스의 이름입니다. 트리거의 위치가 전역이 아닌 한 경우 서비스는 트리거와 동일한 리전에 있어야 합니다. 서비스는 트리거와 동일한 프로젝트에 있어야 하며 이벤트가 생성될 때마다 해당 이벤트를 루트 URL 경로(/)로 전송되는 HTTP POST 요청으로 수신합니다.
  • (선택사항) DESTINATION_GKE_PATH: 트리거 이벤트가 전송될 대상 Cloud Run for Anthos 서비스의 상대 경로이며 사용자가 지정합니다. 예: /, /route, route, route/subroute
  • TRIGGER_SERVICE_ACCOUNT: 트리거와 연결되어 있고 이전에 Eventarc에 필요한 특정 역할을 부여한 IAM 서비스 계정 이메일입니다. 예를 들면 다음과 같습니다. $TRIGGER_SA@PROJECT_ID.iam.gserviceaccount.com
  • PROJECT_ID는 Google Cloud 프로젝트 ID입니다.

참고:

  • --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" 플래그는 필수사항입니다.
  • 각 트리거에 여러 이벤트 필터를 넣거나(한 개의 --event-filters=[ATTRIBUTE=VALUE,..] 플래그에 쉼표로 구분하여 입력) 플래그를 반복하여 필터를 추가할 수 있습니다. 모든 필터와 일치하는 이벤트만 대상으로 전송됩니다. 와일드 카드와 정규 표현식은 지원되지 않습니다.
  • 기본적으로 Eventarc용으로 생성된 Pub/Sub 구독은 활동과 관계없이 유지되며 만료되지 않습니다. 비활성 기간을 변경하려면 구독 관리를 참조하세요.

예:

  gcloud eventarc triggers create pubsub-gke-trigger-new \
      --location=us-central1 \
      --destination-gke-cluster=gke-events-cluster \
      --destination-gke-location=us-central1-a \
      --destination-gke-namespace=default \
      --destination-gke-service=helloworld \
      --destination-gke-path=/ \
      --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
      --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

이렇게 하면 새 Pub/Sub 주제와 pubsub-gke-trigger-new라는 트리거가 생성됩니다.

Google Cloud Console을 사용하여 트리거 만들기

Cloud Console을 통해 트리거를 만들 수 있습니다. 자세한 내용은 Cloud Console을 통해 Eventarc 트리거 만들기를 참조하세요.

Google Cloud CLI를 사용하여 트리거 나열

Eventarc 트리거를 나열하여 트리거 생성을 확인할 수 있습니다.

gcloud eventarc triggers list --location=LOCATION

LOCATION을 Eventarc 트리거 위치의 ID 또는 정규화된 식별자로 바꿉니다. 예를 들면 us-central1입니다.

Eventarc 트리거 관리에 대한 자세한 내용은 트리거 관리를 참조하세요.

다음 단계

  • Cloud Run for Anthos용 Eventarc 사용을 시작하려면 빠른 시작을 참조하세요.