Resolver problemas

Esta página mostra como resolver problemas que pode encontrar quando usa o Eventarc.

Para problemas específicos do destino que também pode encontrar, consulte a resolução de problemas para:

Fornecedor do Eventarc

Esta secção fornece sugestões de resolução de problemas na origem dos eventos (o fornecedor).

O fornecedor não existe

Verifique se o fornecedor existe e se especificou os filtros de acionamento adequadamente.

Os eventos são produzidos a partir do fornecedor, mas não são recebidos no destino

Verifique se está a filtrar eventos de fornecedores que se encontram numa região suportada para o destino. Para mais informações, consulte as localizações suportadas pelo Eventarc e compreenda as localizações do Eventarc.

O acionador não está a enviar eventos

  1. Verifique se o fornecedor está a gerar eventos. Verifique os registos de auditoria do Cloud e certifique-se de que o serviço monitorizado está a escrever registos. Se os registos forem gravados, mas os eventos não forem enviados, contacte o apoio técnico.

  2. Verifique se existe um tópico do Pub/Sub com o mesmo nome do acionador.

    1. Para apresentar uma lista de acionadores em todas as localizações, execute:

      gcloud eventarc triggers list --location=-
      
    2. Para listar tópicos do Pub/Sub, execute:

      gcloud pubsub topics list
      

      Verifique se o nome do tópico Pub/Sub inclui o nome do acionador criado. Se o tópico do Pub/Sub estiver em falta, crie um tópico quando criar o acionador.

    3. Para descrever acionadores e detetar problemas com a condição do acionador, execute o seguinte comando:

      gcloud eventarc triggers describe TRIGGER_ID \
        --location=LOCATION
      

      Substitua o seguinte:

      • TRIGGER_ID: o ID do acionador ou um identificador totalmente qualificado.
      • LOCATION: a localização do acionador do Eventarc.
    4. O comando anterior devolve a condição do acionador. Se houver um problema com o tópico Pub/Sub, é devolvida uma das seguintes condições:

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

      ou

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

      Se aplicável, faça o seguinte:

      • Se for devolvido Pub/Sub topic not found, recrie o acionador para um fornecedor, um tipo de evento e um destino específicos](/eventarc/standard/docs/event-providers-targets#triggers) e, em seguida, crie o tópico.

      • Se for devolvido Pub/Sub topic status is unknown, execute o comando para descrever novamente o acionador.

      • Se o problema persistir, contacte o apoio técnico. Para mais informações, consulte o artigo Faça a gestão dos acionadores.

  3. Verifique o estado do tópico Pub/Sub:

    1. Valide a configuração do tópico Pub/Sub. Aceda à página Tópicos.

      Aceda a Tópicos

    2. Monitorize se as mensagens são publicadas no tópico com a métrica: topic/send_message_operation_count. Se as mensagens não forem publicadas no tópico, verifique os registos de auditoria da nuvem e certifique-se de que o serviço monitorizado está a emitir registos. Se os registos forem gravados, mas os eventos não forem enviados, contacte o apoio técnico.

    3. Monitorize se as mensagens são enviadas com êxito com a métrica: subscription/push_request_count por response_code. Se forem comunicados erros de envio, verifique os registos do serviço. Se o ponto final de receção devolver um código de estado não OK, indica que o código do Cloud Run não está a funcionar como esperado e tem de contactar o apoio técnico.

Acionador do Eventarc

Esta secção fornece sugestões de resolução de problemas relacionados com o acionador.

Erros de autorização recusada

  • Se encontrar um erro Failed to load service details: permission denied, confirme se as autorizações de acionador estão configuradas corretamente e se à conta de serviço do Pub/Sub foi concedido o papel iam.serviceAccountTokenCreator. Para mais informações, consulte o artigo Controlo de acesso.

  • Se encontrar o seguinte erro ao tentar criar um acionador, aguarde alguns minutos (até sete) e, em seguida, tente criar o acionador novamente:

    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.
    

    Um agente de serviço atua como a identidade de um determinado serviço Google Cloud para um projeto específico. Para mais informações, consulte o artigo Agentes de serviço e veja as autorizações para a função de agente de serviço do Eventarc (roles/eventarc.serviceAgent).

    Para verificar se o agente de serviço do Eventarc existe no seu Google Cloud projeto e tem a função necessária, conclua os seguintes passos:

    1. Na Google Cloud consola, aceda à página IAM.

      Aceda ao IAM

    2. No separador Autorizações, selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.

    3. Na lista de responsáveis, localize o agente do serviço Eventarc, que usa este formato:

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

    4. Verifique se o agente de serviço tem a função de agente de serviço do Eventarc. Se o agente do serviço não tiver a função, conceda a função.

  • Se estiver a tentar usar uma conta de serviço entre projetos e encontrar um erro de acesso negado para iam.serviceAccounts.getAccessToken ou iam.serviceAccounts.actAs, ou se receber uma mensagem de erro semelhante a ...cross-project service accounts are disabled ou Failed to impersonate..., confirme que as autorizações estão configuradas corretamente. Para mais informações, consulte o artigo Use uma conta de serviço entre projetos.

O tópico do Pub/Sub não apresenta a chave CMEK

A ativação de um canal do Eventarc com uma chave de encriptação gerida pelo cliente (CMEK) protege o tópico do Pub/Sub usado como uma camada de transporte pelo Eventarc Standard. No entanto, a chave CMEK não é apresentada através da Google Cloud consola. Pode verificar se uma chave CMEK está ativada para o tópico do Pub/Sub através da Google Cloud CLI:

  1. Descreva o acionador do Eventarc:

      gcloud eventarc triggers describe TRIGGER_ID \
          --location=LOCATION
    

    Substitua o seguinte:

    • TRIGGER_ID: o ID do seu acionador do Eventarc
    • LOCATION: a localização do acionador

      O ID do tópico Pub/Sub é devolvido. Por exemplo: topic: projects/PROJECT_ID/topics/TOPIC_ID

  2. Descreva o tópico do Pub/Sub:

      gcloud pubsub topics describe TOPIC_ID
    

    Substitua TOPIC_ID pelo ID do tópico do Pub/Sub obtido no passo anterior.

    É devolvido o nome da chave CMEK. Por exemplo:

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

Cobranças inesperadas ao usar o Eventarc

Quando criar um acionador, verifique se os filtros configurados podem levar a que os acionadores sejam acionados indefinidamente. Para ajudar a evitar cobranças inesperadas na sua fatura, defina orçamentos e alertas através da consola de faturação do Google Cloud. Para mais informações, consulte Crie um orçamento.