문제 해결하기

이 페이지에서는 Eventarc를 사용할 때 발생할 수 있는 문제를 해결하는 방법을 보여줍니다.

발생할 수 있는 대상별 문제는 다음 문제해결을 참조하세요.

Eventarc 제공업체

이 섹션에서는 이벤트 소스(제공업체)에서 발생하는 문제에 대한 문제 해결 팁을 제공합니다.

제공업체 없음

공급업체가 있는지, 트리거 필터를 적절하게 지정했는지 확인합니다.

이벤트가 제공업체로부터 생성되지만 대상에서 수신되지 않음

타겟 대상에 지원되는 리전에 있는 제공업체의 이벤트를 필터링하고 있는지 확인하세요. 자세한 내용은 Eventarc에서 지원되는 위치Eventarc 위치 이해를 참조하세요.

트리거가 이벤트를 전송하지 않음

  1. 제공업체에서 이벤트를 생성하고 있는지 확인합니다. Cloud 감사 로그를 확인하고 모니터링 서비스가 로그를 작성 중인지 확인합니다. 로그가 기록되지만 이벤트가 전송되지 않으면 지원팀에 문의합니다.

  2. 트리거 이름이 동일한 Pub/Sub 주제가 있는지 확인합니다.

    1. 모든 위치의 트리거를 나열하려면 다음을 실행합니다.

      gcloud eventarc triggers list --location=-
      
    2. Pub/Sub 주제를 나열하려면 다음을 실행합니다.

      gcloud pubsub topics list
      

      Pub/Sub 주제 이름에 생성된 트리거의 이름이 포함되어 있는지 확인합니다. Pub/Sub 주제가 누락된 경우 트리거를 만들 때 주제를 만듭니다.

    3. 트리거를 설명하고 트리거 조건 관련 문제를 감지하려면 다음을 실행합니다.

      gcloud eventarc triggers describe TRIGGER \
        --location=LOCATION
      

      다음을 바꿉니다.

      • TRIGGER: 트리거의 ID 또는 정규화된 식별자입니다.
      • LOCATION: Eventarc 트리거 위치입니다.
    4. 위의 명령어는 트리거 조건을 반환합니다. Pub/Sub 주제에 문제가 있으면 다음 조건 중 하나가 반환됩니다.

      conditions:
      transport.pubsub.topic:
        code: NOT_FOUND
        message: Pub/Sub topic not found. Try recreating the trigger.

      또는

      conditions:
      transport.pubsub.topic:
        code: UNKNOWN
        message: Pub/Sub topic status is unknown. Try requesting the trigger description again.

      해당하는 경우 다음을 수행합니다.

      • Pub/Sub topic not found가 반환되면 특정 제공자, 이벤트 유형, 대상의 트리거(/eventarc/docs/targets#triggers)를 다시 만든 후 주제를 만듭니다.

      • Pub/Sub topic status is unknown이 반환되면 명령어를 실행하여 트리거를 다시 설명합니다.

      • 문제가 계속되면 지원팀에 문의하세요. 자세한 내용은 트리거 관리를 참조하세요.

  3. Pub/Sub 주제의 상태를 확인합니다.

    1. Pub/Sub 주제 구성을 확인합니다. 주제 페이지로 이동합니다.

      주제로 이동

    2. 메시지가 topic/send_message_operation_count 측정항목과 함께 주제에 게시되었는지 모니터링합니다. 메시지가 주제에 게시되지 않으면 Cloud 감사 로그를 확인하고 모니터링되는 서비스가 로그를 내보내는지 확인합니다. 로그가 기록되지만 이벤트가 전송되지 않으면 지원팀에 문의합니다.

    3. response_codesubscription/push_request_count 측정항목을 사용하여 메시지가 성공적으로 푸시되는지 모니터링합니다. 푸시 오류가 보고되면 서비스 로그를 확인합니다. 수신 엔드포인트가 OK가 아닌 상태 코드를 반환하면 Cloud Run 코드가 예상대로 작동하지 않는다는 의미이며 지원팀에 문의해야 합니다.

Eventarc 트리거

이 섹션에서는 트리거에서 발생하는 문제에 대한 문제 해결 팁을 제공합니다.

권한 거부 오류

  • Failed to load service details: permission denied 오류가 발생하면 트리거 권한이 올바르게 구성되었고 Pub/Sub 서비스 계정에 iam.serviceAccountTokenCreator 역할이 부여되었는지 확인합니다. 자세한 내용은 액세스 제어를 참조하세요.

  • 트리거를 만들려고 할 때 다음 오류가 발생하면 몇 분 정도(최대 7분) 기다린 후 트리거를 다시 만들어 보세요.

    Permission denied while using the Eventarc Service Agent. If you recently
    started to use Eventarc, it may take a few minutes before all necessary
    permissions are propagated to the Service Agent. Otherwise, verify that it has
    Eventarc Service Agent role.
    

    서비스 에이전트는 특정 프로젝트에 지정된 Google Cloud 서비스의 ID 역할을 하는 Google 관리 서비스 계정입니다. 자세한 내용은 서비스 에이전트를 참조하고 Eventarc 서비스 에이전트 역할(roles/eventarc.serviceAgent)의 권한을 확인하세요.

    Eventarc 서비스 에이전트가 Google Cloud 프로젝트에 존재하고 필요한 역할을 갖도록 하려면 다음 단계를 수행합니다.

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동

    2. 권한 탭에서 Google 제공 역할 부여 포함 체크박스를 선택합니다.

    3. 주 구성원 목록에서 다음 형식을 사용하는 Eventarc 서비스 에이전트를 찾습니다.

      service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com

    4. 서비스 에이전트에 Eventarc 서비스 에이전트 역할이 있는지 확인합니다. 서비스 에이전트에 역할이 없으면 역할을 부여합니다.

  • 교차 프로젝트 서비스 계정을 사용하려고 하는데 iam.serviceAccounts.getAccessToken 또는 iam.serviceAccounts.actAs에 대한 권한 거부됨 오류가 발생하거나 ...cross-project service accounts are disabled 또는 Failed to impersonate... 등의 오류 메시지가 수신되면 권한이 올바르게 구성되었는지 확인합니다. 자세한 내용은 교차 프로젝트 서비스 계정 사용을 참조하세요.

Eventarc 사용 시 예상치 못한 요금 청구

트리거를 만들 때 구성한 필터로 인해 트리거가 무제한으로 설정될 수 있는지 확인합니다. 예기치 않은 요금이 청구되지 않도록 하려면 Google Cloud의 결제 콘솔을 사용하여 예산 및 알림을 설정하세요. 자세한 내용은 예산 만들기를 참조하세요.