터미널 또는 Cloud Shell에서 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 트리거를 관리할 수 있습니다. Eventarc API를 통해 트리거를 관리할 수도 있습니다.
트리거 나열
모든 위치에서 트리거를 나열, 필터링, 정렬할 수 있습니다.
Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.
이 명령어는 모든 위치의 프로젝트에 있는 모든 트리거를 나열하고 트리거 이름, 리전, 이벤트 제공자, 대상, 이벤트 유형과 같은 세부정보를 포함합니다.
특정 속성별로 트리거를 필터링하려면 다음 단계를 따르세요.
- 필터 상자를 클릭합니다.
- 속성 목록에서 트리거를 필터링하는 옵션(예: 이름 또는 이벤트 채널)을 선택합니다.
단일 속성을 선택하거나 논리 연산자
OR
를 사용하여 필터링할 속성을 추가할 수 있습니다.트리거를 정렬하려면 적절한 열 제목 옆에 있는
정렬을 클릭합니다.일부 열만 정렬할 수 있습니다(예: 이름, 지역, 이벤트 채널).
gcloud eventarc triggers list --location=-
이 명령어는 모든 위치의 트리거 이름, 유형, 대상, 상태를 나열합니다.
지정된 프로젝트와 위치에서 트리거를 나열하려면 projects.locations.triggers.list
메서드를 사용하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
: Google Cloud프로젝트 ID입니다.PROJECT_ID
: 트리거가 생성되는 리전(예:LOCATION us-central1
)
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers" | Select-Object -Expand Content
성공하면 응답 본문에 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 ] }
트리거 설명
특정 위치의 트리거를 설명할 수 있습니다.
Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.
트리거 목록에서 세부정보를 확인하려는 트리거를 클릭합니다.
트리거 세부정보 페이지에는 이름, 리전, 이벤트 제공자, 이벤트 유형, 이벤트 데이터 콘텐츠 유형, 목적지 등 트리거에 대한 세부정보가 표시됩니다.
gcloud eventarc triggers describeTRIGGER \ --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
특정 프로젝트 및 위치의 트리거를 설명하려면 projects.locations.triggers.get
메서드를 사용하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
: 설명하려는 트리거의 이름TRIGGER_NAME
: Google Cloud프로젝트 ID입니다.PROJECT_ID
: 트리거가 생성되는 리전(예:LOCATION us-central1
)
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers/TRIGGER_NAME "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers/TRIGGER_NAME " | Select-Object -Expand Content
성공한 경우 응답 본문에는 다음과 유사한 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 대상의 트리거를 업데이트할 수 있습니다. 대상에 따라 특정 필드를 업데이트할 수 있습니다.
Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.
트리거 목록에서 세부정보를 확인하려는 트리거를 클릭합니다.
트리거 세부정보 페이지에서
수정을 클릭합니다.필요에 따라 필드를 수정하고 저장을 클릭합니다.
이벤트 제공자 및 이벤트 목적지와 같이 사용할 수 없는 필드는 업데이트할 수 없습니다. 필드에 대한 자세한 내용은 특정 공급업체, 이벤트 유형, 대상에 대한 콘솔 안내를 참조하세요.
gcloud eventarc triggers updateTRIGGER \ --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.create
를methodName=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 클러스터에서 실행되는 비공개 및 공개 서비스의 공개 엔드포인트에도 적용됩니다.
gcloud eventarc triggers updateTRIGGER \ --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 updateTRIGGER \ --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.create
를methodName=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
으로 업데이트합니다.
기존 트리거를 업데이트하려면 projects.locations.triggers.patch 메서드를 사용하고, 선택적으로 updateMask
쿼리 매개변수를 사용하여 업데이트할 필드 목록을 지정합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
: 업데이트하려는 클러스터의 이름TRIGGER_NAME
: Google Cloud프로젝트 ID입니다.PROJECT_ID
: 트리거가 생성되는 리전(예:LOCATION us-central1
)
: 선택사항입니다. 트리거와 연결된 Identity and Access Management(IAM) 서비스 계정 이메일입니다.SERVICE_ACCOUNT @PROJECT_ID .iam.gserviceaccount.com
: 선택사항입니다. 이벤트가 전송되어야 하는 대상을 지정하고DESTINATION Destination
인스턴스를 포함합니다. 예를 들면 다음과 같습니다.{"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}
또는
{"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}
: 선택사항입니다. 필터링할 이벤트 속성입니다. Cloud 감사 로그 트리거에 대한 메서드 유형 업데이트만 지원됩니다. 예를 들면 다음과 같습니다.EVENT_FILTER {"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 " }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
cat > request.json << 'EOF' { "serviceAccount": "SERVICE_ACCOUNT @PROJECT_ID .iam.gserviceaccount.com", "destination":DESTINATION , "eventFilters"EVENT_FILTER , "eventDataContentType": "CONTENT_TYPE " } EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers/TRIGGER_NAME ?updateMask="UPDATE_FIELDS ""
PowerShell(Windows)
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
@' { "serviceAccount": "SERVICE_ACCOUNT @PROJECT_ID .iam.gserviceaccount.com", "destination":DESTINATION , "eventFilters"EVENT_FILTER , "eventDataContentType": "CONTENT_TYPE " } '@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers/TRIGGER_NAME ?updateMask="UPDATE_FIELDS "" | Select-Object -Expand Content
성공한 경우 응답 본문에 새로 생성된 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
이면 작업이 아직 진행 중입니다.
트리거 삭제
트리거를 삭제할 수 있습니다.
Google Cloud 콘솔에서 Eventarc 트리거 페이지로 이동합니다.
트리거를 선택하고
삭제를 클릭합니다.
gcloud eventarc triggers deleteTRIGGER
TRIGGER
를 트리거 ID 또는 정규화된 식별자로 바꿉니다.
지정된 이름의 트리거를 삭제하려면 projects.locations.triggers.delete
메서드를 사용하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
: Google Cloud프로젝트 ID입니다.PROJECT_ID
: 트리거가 생성되는 리전(예:LOCATION us-central1
)
: 삭제할 트리거의 이름TRIGGER_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers/TRIGGER_NAME "
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://eventarc.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /triggers/TRIGGER_NAME " | Select-Object -Expand Content
성공하면 응답 본문에 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
이면 작업이 아직 진행 중입니다.