Google 소스에서 이벤트 게시

특정 Eventarc Advanced 버스의 경우 Google 소스에서 이벤트를 수집하고 게시하도록 사용 설정하거나 사용 중지할 수 있습니다.

Google 소스의 이벤트는 Cloud Run 함수 생성 또는 Dataflow 작업의 상태 변경과 같은 미디에이션되지 않은 이벤트에 의해 직접 트리거됩니다. 자세한 내용은 Eventarc에서 지원되는 Google 이벤트 유형을 참고하세요.

다음에 유의하세요.

  • Google Cloud 프로젝트당 GoogleApiSource 리소스는 1개로 제한됩니다.
  • Google 소스의 이벤트는 GoogleApiSource 리소스와 동일한 Google Cloud 프로젝트에서만 게시할 수 있습니다.
  • GoogleApiSource 리소스가 있는 Google Cloud 프로젝트와 다른 Google Cloud 프로젝트에 있는 버스에 이벤트를 게시할 수 있습니다. gcloud CLI를 사용하거나 Eventarc API에 요청을 전송하여 구성할 수 있습니다.

Google 소스의 이벤트 사용 설정

Google 소스의 이벤트를 게시하려면 GoogleApiSource 리소스를 만들어야 합니다. 이 리소스는 특정 Eventarc Advanced 버스의 특정 Google Cloud 프로젝트에서 Google API 이벤트를 구독하는 것을 나타냅니다.

다음과 같은 방법으로 Google 소스에서 이벤트 게시를 사용 설정할 수 있습니다.

  • Google Cloud Console 사용
  • 터미널 또는 Cloud Shell에서 Google Cloud CLI 사용
  • Eventarc API에 요청 보내기

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.

    버스로 이동

  2. 버스를 만들거나 버스를 업데이트하는 경우 수정을 클릭합니다.

  3. 버스 수정 페이지에서 메시지 소스를 추가하려면 소스 추가를 클릭합니다.

    1. 메시지 소스 추가 창에서 Google API 메시지 제공업체의 경우 기본값인 google-api-source을 사용하거나 다른 메시지 소스 이름을 입력합니다.
    2. 만들기를 클릭합니다.
  4. 저장을 클릭합니다.

gcloud

  1. 터미널을 엽니다.

  2. gcloud beta eventarc google-api-sources create 명령어를 사용하여 Google 소스의 이벤트를 사용 설정할 수 있습니다.

    gcloud beta eventarc google-api-source create GOOGLE_API_SOURCE_NAME \
        --destination-message-bus=BUS_NAME \
        --destination-message-bus-project=BUS_PROJECT_ID

    다음을 바꿉니다.

    • GOOGLE_API_SOURCE_NAME: 특정 버스의 Google API 이벤트 구독을 나타내는 GoogleApiSource 리소스의 ID 또는 정규화된 식별자입니다.
    • BUS_NAME: Google API 이벤트를 구독하려는 버스의 ID 또는 정규화된 식별자
    • BUS_PROJECT_ID: 버스의 Google Cloud 프로젝트 ID입니다.

    선택사항: 다음 플래그를 사용할 수도 있습니다.

    • --async: 진행 중인 작업이 완료될 때까지 기다리지 않고 명령어에서 즉시 반환합니다.
    • --crypto-key: 고객 관리 암호화 키의 정규화된 이름을 지정합니다. 지정하지 않으면 Google-owned and managed keys 이 사용됩니다.
    • --logging-config: 로깅 수준을 구성합니다. 로깅 수준은 NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY 중 하나여야 합니다. 자세한 내용은 LogSeverity를 참고하세요.

REST API

Google 소스의 이벤트를 사용 설정하려면 projects.locations.googleApiSources.create 메서드를 사용하세요.

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

  • GOOGLE_API_SOURCE_NAME: 특정 버스의 Google API 이벤트 구독을 나타내는 GoogleApiSource 리소스의 표시 이름입니다(예: my_google_source).
  • LABEL_KEYLABEL_VALUE: (선택사항) 리소스를 구성하는 데 도움이 되는 라벨 키 및 값 쌍의 맵입니다. Google Cloud 자세한 내용은 라벨이란 무엇인가요?를 참고하세요.
  • ANNOTATION_KEYANNOTATION_VALUE: (선택사항) 자유 형식 텍스트의 주석 키 및 값 쌍의 맵입니다. 주석을 사용하여 리소스와 연결된 임의의 정보를 연결할 수 있습니다. 자세한 내용은 주석을 참고하세요.
  • DESTINATION: Google 소스 이벤트를 projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME 형식으로 게시해야 하는 Eventarc Advanced 버스의 정규화된 식별자입니다. 자세한 내용은 메시지 라우팅을 위한 버스 만들기를 참고하세요.
  • ENCRYPT_KEY: 선택사항입니다. GoogleApiSource 리소스가 데이터 암호화에 사용해야 하는 Cloud KMS 키로, projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME 형식입니다. 자세한 내용은 고객 관리 암호화 키 사용을 참고하세요.
  • PROJECT_ID: GoogleApiSource 리소스를 만들 Google Cloud프로젝트 ID입니다.
  • LOCATION: GoogleApiSource 리소스를 만들 지원되는 리전(예: us-central1)
  • LOG_SEVERITY: 선택사항입니다. 로그 항목에 설명된 이벤트의 최소 심각도입니다. NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY 중 하나입니다. 기본값은 NONE입니다. 자세한 내용은 LogSeverity을 참고하세요.

JSON 요청 본문:

{
  "displayName": "GOOGLE_API_SOURCE_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "destination": "DESTINATION",
  "cryptoKeyName": "ENCRYPT_KEY",
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"}
}

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

성공한 경우 응답 본문에 새로 생성된 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/googleApiSources/GOOGLE_API_SOURCE_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

이제 GoogleApiSource 리소스와 동일한 Google Cloud 프로젝트의 Google 소스에서 발생한 이벤트가 수집되어 버스에 게시됩니다.

Google 소스의 이벤트 사용 중지

특정 Google Cloud 프로젝트의 Google 소스에서 Eventarc Advanced 버스로 이벤트 게시를 사용 중지하려면 GoogleApiSource 리소스를 삭제해야 합니다.

다음과 같은 방법으로 Google 소스에서 이벤트 게시를 사용 중지할 수 있습니다.

  • Google Cloud Console 사용
  • 터미널 또는 Cloud Shell에서 gcloud CLI 사용
  • Eventarc API에 요청 보내기

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 버스 세부정보 페이지로 이동합니다.

    버스 세부정보로 이동

  2. 수정을 클릭합니다.

  3. 버스 수정 페이지에서 Google API 메시지 제공업체를 삭제하려면 google-api-source 메시지 소스 (또는 지정한 이름)의 리소스 삭제를 클릭합니다.

  4. 리소스 삭제 메시지에서 확인을 클릭합니다.

  5. 저장을 클릭합니다.

gcloud

  1. 터미널을 엽니다.

  2. gcloud beta eventarc google-api-sources delete 명령어를 사용하여 Google 소스의 이벤트를 사용 중지할 수 있습니다.

    gcloud beta eventarc google-api-source delete GOOGLE_API_SOURCE_NAME \
        --location=REGION

    다음을 바꿉니다.

    • GOOGLE_API_SOURCE_NAME: GoogleApiSource 리소스의 ID 또는 정규화된 식별자입니다.
    • REGION: GoogleApiSource 리소스의 위치입니다.

REST API

Google 소스의 이벤트를 사용 중지하려면 projects.locations.googleApiSources.delete 메서드를 사용하세요.

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

  • PROJECT_ID: GoogleApiSource 리소스가 생성된 Google Cloud 프로젝트 ID입니다.
  • LOCATION: GoogleApiSource 리소스가 생성되는 리전입니다(예: us-central1).
  • GOOGLE_API_SOURCE_NAME: 삭제하려는 GoogleApiSource 리소스의 이름입니다.

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

성공한 경우 응답 본문에 새로 생성된 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/googleApiSources/GOOGLE_API_SOURCE_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

삭제된 GoogleApiSource 리소스와 동일한 Google Cloud 프로젝트의 Google 소스에서 발생하는 이벤트는 더 이상 수집 및 게시되지 않습니다.

다음 단계