트리거 관리

터미널 또는 Cloud Shell에서 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 트리거를 관리할 수 있습니다. Eventarc API를 통해 트리거를 관리할 수도 있습니다.

트리거 나열

모든 위치에서 트리거를 나열, 필터링, 정렬할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.

    트리거로 이동

    그러면 모든 위치에 대한 프로젝트의 모든 트리거가 나열되고 트리거 이름, 리전, 이벤트 제공자, 대상, 이벤트 유형과 같은 세부정보가 포함됩니다.

  2. 특정 속성으로 트리거를 필터링하려면 다음 안내를 따르세요.

    1. 필터 상자를 클릭합니다.
    2. 속성 목록에서 트리거를 필터링하는 옵션(예: 이름 또는 이벤트 채널)을 선택합니다.

    단일 속성을 선택하거나 논리 연산자 OR를 사용하여 필터링할 속성을 더 추가할 수 있습니다.

  3. 트리거를 정렬하려면 적절한 열 제목 옆에 있는 정렬을 클릭합니다.

    이름, 리전, 이벤트 채널 등 일부 열만 정렬할 수 있습니다.

gcloud

gcloud eventarc triggers list --location=-

이 명령어는 모든 위치의 트리거 이름, 유형, 대상, 상태를 나열합니다.

REST

지정된 프로젝트와 위치에서 트리거를 나열하려면 projects.locations.triggers.list 메서드를 사용하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: 트리거가 생성되는 리전(예: us-central1)

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

성공하면 응답 본문에 Trigger 인스턴스가 포함되고 응답은 다음과 유사해야 합니다.

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

트리거 설명

특정 위치의 트리거를 설명할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.

    트리거로 이동

  2. 트리거 목록에서 세부정보를 확인하려는 트리거를 클릭합니다.

트리거 세부정보 페이지에는 이름, 리전, 이벤트 제공자, 이벤트 유형, 이벤트 데이터 콘텐츠 유형, 목적지 등 트리거에 대한 세부정보가 표시됩니다.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

다음을 바꿉니다.

  • TRIGGER: 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다.

이 명령어는 다음과 유사한 트리거에 대한 정보를 반환합니다.

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

특정 프로젝트 및 위치의 트리거를 설명하려면 projects.locations.triggers.get 메서드를 사용하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • TRIGGER_NAME: 설명하려는 트리거의 이름
  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: 트리거가 생성되는 리전(예: us-central1)

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

성공한 경우 응답 본문에는 다음과 유사한 Trigger 인스턴스가 포함됩니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

트리거 조건이 Pub/Sub 주제 관련 문제를 나타내는 경우 트리거가 이벤트를 전송하지 않음을 참조하세요.

트리거 업데이트

Cloud Run, Google Kubernetes Engine(GKE), Workflows 대상의 트리거를 업데이트할 수 있습니다. 대상에 따라 특정 필드를 업데이트할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.

    트리거로 이동

  2. 트리거 목록에서 세부정보를 확인하려는 트리거를 클릭합니다.

  3. 트리거 세부정보 페이지에서 수정을 클릭합니다.

  4. 필요에 따라 필드를 수정하고 저장을 클릭합니다.

    이벤트 제공자이벤트 목적지와 같이 사용할 수 없는 필드는 업데이트할 수 없습니다. 필드에 대한 자세한 내용은 특정 공급업체, 이벤트 유형, 대상에 대한 콘솔 안내를 참조하세요.

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

다음을 바꿉니다.

  • TRIGGER: 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다.

다음 중 하나를 업데이트할 수 있습니다.

  • NEW_EVENT_FILTERS: 트리거의 이벤트 라우팅을 구성하는 데 사용되는 필터입니다. 예를 들어 methodName=storage.objects.createmethodName=storage.objects.delete로 업데이트할 수 있습니다. 참고로, 트리거가 생성된 후에는 type 이벤트 필터를 변경할 수 없습니다. 다른 이벤트 유형에서는 새 트리거를 만들어야 합니다.
  • NEW_SERVICE_ACCOUNT: 트리거와 연결된 Identity and Access Management(IAM) 서비스 계정 이메일입니다.
  • NEW_REGION: 대상 Cloud Run 서비스를 찾을 수 있는 리전입니다.
  • NEW_SERVICE: 트리거의 이벤트를 수신하는 Cloud Run 서비스의 이름입니다.
  • NEW_PATH: 트리거 이벤트가 전송될 대상 Cloud Run 서비스의 상대 경로입니다.
  • NEW_EVENT_DATA_TYPE: 이벤트 페이로드의 인코딩. 이벤트 제공자에 따라 application/json 또는 application/protobuf일 수 있습니다.

예를 들어 트리거의 서비스 계정을 업데이트하려면 다음을 실행합니다.

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

이 명령어는 my-cloud-run-trigger라는 트리거의 서비스 계정을 new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com으로 업데이트합니다.

GKE

이 섹션은 GKE 클러스터에서 실행되는 비공개 및 공개 서비스의 공개 엔드포인트에도 적용됩니다.

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

다음을 바꿉니다.

  • TRIGGER: 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다.

다음 중 하나를 업데이트할 수 있습니다.

  • NEW_NAMESPACE: 대상 GKE 서비스가 실행 중인 네임스페이스입니다.
  • NEW_SERVICE: 트리거의 이벤트를 수신하는 GKE 서비스의 이름입니다.
  • NEW_PATH: 트리거의 이벤트가 전송되어야 하는 대상 GKE 서비스의 상대 경로입니다.
  • NEW_EVENT_DATA_TYPE: 이벤트 페이로드의 인코딩. 이벤트 제공자에 따라 application/json 또는 application/protobuf일 수 있습니다.

예를 들어 트리거의 이벤트 수신자 서비스를 업데이트하려면 다음 안내를 따르세요.

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

이 명령어는 my-gke-trigger라는 이름의 트리거에 대한 이벤트 수신자 서비스를 helloworld-events라는 이름의 서비스로 업데이트합니다.

워크플로

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

다음을 바꿉니다.

  • TRIGGER: 트리거의 ID 또는 정규화된 식별자입니다.
  • LOCATION: Eventarc 트리거 위치입니다.

다음 중 하나를 업데이트할 수 있습니다.

  • NEW_EVENT_FILTERS: 트리거의 이벤트 라우팅을 구성하는 데 사용되는 필터입니다. 예를 들어 methodName=storage.objects.createmethodName=storage.objects.delete으로 업데이트할 수 있습니다. 트리거가 생성된 후에는 type 이벤트 필터를 변경할 수 없습니다. 다른 이벤트 유형의 경우 새 트리거를 만들어야 합니다.
  • NEW_SERVICE_ACCOUNT: 트리거와 연결된 Identity and Access Management(IAM) 서비스 계정 이메일입니다.
  • NEW_DESTINATION_WORKFLOW: 트리거에서 이벤트를 수신하는 배포된 워크플로의 ID입니다.
  • NEW_DESTINATION_WORKFLOW_LOCATION: 대상 워크플로가 배포되는 위치입니다.
  • NEW_EVENT_DATA_TYPE: 이벤트 페이로드의 인코딩. 이벤트 제공자에 따라 application/json 또는 application/protobuf일 수 있습니다.

예를 들어 트리거의 서비스 계정을 업데이트하려면 다음을 실행합니다.

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

이 명령어는 my-workflows-trigger라는 트리거의 서비스 계정을 new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com으로 업데이트합니다.

REST

기존 트리거를 업데이트하려면 projects.locations.triggers.patch 메서드를 사용하고, 선택적으로 updateMask 쿼리 매개변수를 사용하여 업데이트할 필드 목록을 지정합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • TRIGGER_NAME: 업데이트하려는 클러스터의 이름
  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: 트리거가 생성되는 리전(예: us-central1)
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: 선택사항입니다. 트리거와 연결된 Identity and Access Management(IAM) 서비스 계정 이메일입니다.
  • DESTINATION: 선택사항입니다. 이벤트가 전송되어야 하는 대상을 지정하고 Destination 인스턴스를 포함합니다. 예를 들면 다음과 같습니다.

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    또는

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

  • EVENT_FILTER: 선택사항입니다. 필터링할 이벤트 속성입니다. Cloud 감사 로그 트리거에 대한 메서드 유형 업데이트만 지원됩니다. 예를 들면 다음과 같습니다.

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    GKE 대상에 대한 메서드 유형은 업데이트할 수 없습니다.

  • CONTENT_TYPE: 선택사항입니다. 이벤트 페이로드의 인코딩입니다. 이벤트 제공자에 따라 application/json 또는 application/protobuf이 될 수 있습니다.
  • UPDATE_FIELDS: 선택사항입니다. 업데이트할 필드의 쉼표로 구분된 목록입니다. 제공하지 않으면 요청에 제공된 모든 필드가 업데이트됩니다. 예를 들면 serviceAccount,destination입니다.

JSON 요청 본문:

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters" EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

성공한 경우 응답 본문에 새로 생성된 Operation 인스턴스가 포함됩니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

"done" 값이 false이면 작업이 아직 진행 중입니다.

트리거 삭제

트리거를 삭제할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.

    트리거로 이동

  2. 트리거를 선택하고 삭제를 클릭합니다.

gcloud

gcloud eventarc triggers delete TRIGGER

TRIGGER를 트리거 ID 또는 정규화된 식별자로 바꿉니다.

REST

지정된 이름의 트리거를 삭제하려면 projects.locations.triggers.delete 메서드를 사용하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: 트리거가 생성되는 리전(예: us-central1)
  • TRIGGER_NAME: 삭제할 트리거의 이름

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

성공하면 응답 본문에 Operation 인스턴스가 포함됩니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

"done" 값이 false이면 작업이 아직 진행 중입니다.

다음 단계