Solucionar problemas

En esta página se explica cómo resolver los problemas que pueden surgir al usar Eventarc.

Si tienes problemas específicos con los destinos, consulta las soluciones para los siguientes casos:

Proveedor de Eventarc

En esta sección se ofrecen consejos para solucionar problemas en la fuente de eventos (el proveedor).

El proveedor no existe

Comprueba que el proveedor exista y que hayas especificado los filtros de activación correctamente.

Se generan eventos desde el proveedor, pero no se reciben en el destino

Comprueba que estés filtrando los eventos de proveedores que se encuentren en una región admitida para el destino. Para obtener más información, consulta las ubicaciones admitidas por Eventarc y ¿Qué son las ubicaciones de Eventarc?

El activador no envía eventos

  1. Comprueba que el proveedor esté generando eventos. Consulta los registros de auditoría de Cloud y comprueba que el servicio monitorizado esté escribiendo registros. Si se registran los registros, pero no se envían los eventos, ponte en contacto con el equipo de Asistencia.

  2. Verifica que exista un tema de Pub/Sub con el mismo nombre de activador.

    1. Para ver una lista de los activadores de todas las ubicaciones, ejecuta el siguiente comando:

      gcloud eventarc triggers list --location=-
      
    2. Para enumerar los temas de Pub/Sub, ejecuta el siguiente comando:

      gcloud pubsub topics list
      

      Verifica que el nombre del tema de Pub/Sub incluya el nombre del activador creado. Si falta el tema de Pub/Sub, crea un tema al crear el activador.

    3. Para describir los activadores y detectar cualquier problema con la condición del activador, ejecuta lo siguiente:

      gcloud eventarc triggers describe TRIGGER_ID \
        --location=LOCATION
      

      Haz los cambios siguientes:

      • TRIGGER_ID: el ID del activador o un identificador completo.
      • LOCATION: la ubicación del activador de Eventarc.
    4. El comando anterior devuelve el estado del activador. Si hay un problema con el tema de Pub/Sub, se devuelve una de las siguientes condiciones:

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

      o

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

      Si procede, haz lo siguiente:

      • Si se devuelve Pub/Sub topic not found, vuelve a crear el activador de un proveedor, un tipo de evento y un destino específicos](/eventarc/standard/docs/event-providers-targets#triggers) y, a continuación, crea el tema.

      • Si se devuelve Pub/Sub topic status is unknown, ejecuta el comando para describir el activador de nuevo.

      • Si el problema persiste, ponte en contacto con el equipo de Asistencia. Para obtener más información, consulta el artículo Gestionar activadores.

  3. Verifica el estado del tema de Pub/Sub:

    1. Verifica la configuración del tema de Pub/Sub. Ve a la página Temas.

      Ir a Temas

    2. Monitoriza si los mensajes se publican en el tema con la métrica: topic/send_message_operation_count. Si no se publican mensajes en el tema, consulta Cloud Audit Logs y comprueba que el servicio monitorizado esté emitiendo registros. Si se registran los registros, pero no se envían los eventos, ponte en contacto con el equipo de Asistencia.

    3. Monitoriza si los mensajes se envían correctamente con la métrica: subscription/push_request_count por response_code. Si se informan errores de envío, consulta los registros del servicio. Si el endpoint receptor devuelve un código de estado distinto de OK, significa que el código de Cloud Run no funciona correctamente y debes ponerte en contacto con el equipo de Asistencia.

Activador de Eventarc

En esta sección se ofrecen consejos para solucionar problemas relacionados con el activador.

Errores de permiso denegado

  • Si se produce un error Failed to load service details: permission denied, comprueba que los permisos del activador estén configurados correctamente y que se haya concedido el rol iam.serviceAccountTokenCreator a la cuenta de servicio de Pub/Sub. Para obtener más información, consulta Control de acceso.

  • Si aparece el siguiente error al intentar crear un activador, espera unos minutos (hasta siete) y vuelve a intentarlo:

    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.
    

    Un agente de servicio actúa como identidad de un Google Cloud servicio determinado para un proyecto concreto. Para obtener más información, consulta Agentes de servicio y los permisos del rol de agente de servicio de Eventarc (roles/eventarc.serviceAgent).

    Para verificar que el agente de servicio de Eventarc existe en tu proyectoGoogle Cloud y tiene el rol necesario, sigue estos pasos:

    1. En la consola, ve a la página Gestión de identidades y accesos. Google Cloud

      Ir a IAM

    2. En la pestaña Permisos, selecciona la casilla Incluir las asignaciones de roles proporcionadas por Google.

    3. En la lista de principales, busca el agente de servicio de Eventarc, que tiene este formato:

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

    4. Comprueba que el agente de servicio tenga el rol Agente de servicio de Eventarc. Si el agente de servicio no tiene el rol, concédele el rol.

  • Si intentas usar una cuenta de servicio entre proyectos y recibes un error de permiso denegado para iam.serviceAccounts.getAccessToken o iam.serviceAccounts.actAs, o bien un mensaje de error similar a ...cross-project service accounts are disabled o Failed to impersonate..., comprueba que los permisos estén configurados correctamente. Para obtener más información, consulta el artículo Usar una cuenta de servicio entre proyectos.

No se muestra la clave CMEK del tema de Pub/Sub

Habilitar un canal de Eventarc con una clave de cifrado gestionada por el cliente (CMEK) protege el tema de Pub/Sub que usa Eventarc Standard como capa de transporte. Sin embargo, la clave de CMEK no se muestra en laGoogle Cloud consola. Para comprobar que una clave CMEK está habilitada en el tema de Pub/Sub, puedes usar la CLI de Google Cloud:

  1. Describe el activador de Eventarc:

      gcloud eventarc triggers describe TRIGGER_ID \
          --location=LOCATION
    

    Haz los cambios siguientes:

    • TRIGGER_ID: el ID de tu activador de Eventarc
    • LOCATION: la ubicación del activador

      Se devuelve el ID del tema de Pub/Sub. Por ejemplo: topic: projects/PROJECT_ID/topics/TOPIC_ID

  2. Describe el tema de Pub/Sub:

      gcloud pubsub topics describe TOPIC_ID
    

    Sustituye TOPIC_ID por el ID del tema de Pub/Sub que has obtenido en el paso anterior.

    Se devuelve el nombre de la clave CMEK. Por ejemplo:

      kmsKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/grants/GRANT_ID
    

Cargos inesperados al usar Eventarc

Cuando crees un activador, comprueba si los filtros configurados podrían provocar que los activadores se activen indefinidamente. Para evitar cargos inesperados en tu factura, define presupuestos y alertas en la consola de facturación de Google Cloud. Para obtener más información, consulta el artículo Crear un presupuesto.