Resolva problemas do Cloud Scheduler

Esta página mostra como resolver problemas com o Cloud Scheduler.

O Cloud Scheduler publica registos no início de cada execução de tarefa e no final de cada execução de tarefa. Pode obter, ver e analisar os registos de uma tarefa específica, incluindo os registos de auditoria disponíveis para o Cloud Scheduler. Para mais informações, consulte o artigo Ver registos.

Por predefinição, quando uma tarefa do Cloud Scheduler não recebe uma confirmação do respetivo serviço de destino (o controlador de pedidos de tarefas), considera-se que a tarefa falhou. O Cloud Scheduler volta a tentar a tarefa de acordo com o recuo exponencial que configurou.

Para informações sobre incidentes que afetam os serviços do Google Cloud , consulte o Google Cloud painel de controlo Service Health e Todos os incidentes comunicados para o Cloud Scheduler.

A tarefa falha devido a um problema de serviço a jusante

Uma falha de tarefa pode dever-se a um problema num serviço a jusante que o Cloud Scheduler está a segmentar, por exemplo, o Cloud Run, em vez do próprio Cloud Scheduler. Pode suspeitar de um problema de serviço a jusante quando se aplicam as seguintes condições:

  • As autorizações do Cloud Scheduler estão configuradas corretamente.
  • O Cloud Scheduler consegue alcançar o serviço de destino.
  • As mensagens de erro nos registos de execução do Cloud Scheduler têm origem no serviço a jusante.

Para resolver este problema, conclua os seguintes passos:

  1. Invocar o serviço a jusante diretamente: verifique se o serviço a jusante pode ser invocado com êxito sem o Cloud Scheduler. Uma invocação bem-sucedida indica que o Cloud Scheduler está provavelmente a causar o problema. Se não for bem-sucedida, o serviço a jusante requer mais depuração.
  2. Examine os registos do serviço de destino: examine os registos do serviço de destino, determine os erros que estão a ser produzidos e trie-os em conformidade.
  3. Procure operações de longa duração: quando o Cloud Scheduler devolve um erro HTTP 504 para operações de longa duração (mais de 30 minutos), verifique os registos do serviço de destino para ver se a execução foi bem-sucedida ou falhou, uma vez que o serviço de destino pode ter um limite de tempo limite de pedido mais longo. Neste cenário, o Cloud Scheduler excede o tempo limite, mas o serviço de destino não.

A tarefa falha com um erro de autorização

As autorizações controlam que principais podem aceder aos recursos e que operações são permitidas. As autorizações configuradas incorretamente podem interromper as execuções de tarefas e originar erros de autorização recusada. Os registos de auditoria fornecem um registo detalhado de todas as alterações de autorizações, o que lhe permite identificar a origem destes problemas.

Quando a tarefa do Cloud Scheduler falha com um erro de autorização, os registos de execução podem apresentar uma mensagem semelhante a "debugInfo":"URL_ERROR-ERROR_OTHER. Original HTTP response code number = 403".

Para resolver este problema, conclua uma ou mais das seguintes validações:

  • Verifique as funções do IAM concedidas ao agente de serviço: o agente de serviço do Cloud Scheduler requer a função Agente de serviço do Cloud Scheduler (roles/cloudscheduler.serviceAgent). Sem esta função, as tarefas do Cloud Scheduler falham. Pode conceder manualmente a função ao agente de serviço do Cloud Scheduler. É necessária uma concessão manual apenas se tiver ativado a API Cloud Scheduler antes de 19 de março de 2019 ou se tiver removido a função de agente de serviço do Cloud Scheduler. Para mais informações, consulte o artigo Conceda a função de agente de serviço do Cloud Scheduler.

  • Valide as autorizações da sua conta de serviço: certifique-se de que a conta de serviço anexada à sua tarefa tem as autorizações e o âmbito corretos para invocar o serviço de destino. Isto inclui cenários em que o destino está noutro projeto ou é o destino final de um serviço intermediário. Quando o seu alvo estiver dentro do Google Cloud, confirme que concedeu as funções necessárias à sua conta de serviço. Cada serviço no Google Cloud requer uma função específica, e o serviço de receção valida automaticamente o token gerado. Por exemplo, para o Cloud Run e as funções do Cloud Run, tem de conceder a função Cloud Run Invoker. Quando o destino está fora de Google Cloud, o serviço de receção tem de validar manualmente o token. Para mais informações, consulte os artigos Autentique-se no Cloud Scheduler e Use a autenticação com destinos HTTP.

  • Verifique se existem violações dos VPC Service Controls: Os VPC Service Controls são uma Google Cloud funcionalidade que lhe permite configurar um perímetro seguro para se proteger contra a exfiltração de dados. Para determinar se um erro está relacionado com os VPC Service Controls, verifique se ativou os VPC Service Controls e os aplicou aos projetos e serviços que está a tentar usar. Para verificar se os projetos e os serviços estão protegidos pelo VPC Service Controls, consulte a política do VPC Service Controls nesse nível da hierarquia de recursos.

    Para compreender o âmbito de um problema, pode obter erros dos VPC Service Controls a partir dos registos de auditoria.

    1. Na Google Cloud consola, aceda à página Explorador de registos:

      Aceda ao Explorador de registos

      Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

    2. Consulte os registos de auditoria para os seguintes critérios:

      severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"

      Em concreto, as mensagens de erro podem incluir o seguinte texto:

      • Request is prohibited by organization's policy
      • Request violates VPC Service Controls

    Para mais informações sobre problemas que pode encontrar ao configurar os VPC Service Controls, consulte o artigo Resolva problemas comuns.

  • Verifique todos os pontos finais privados: o Cloud Scheduler só pode invocar determinados pontos finais privados, como o Cloud Run, as funções do Cloud Run e as APIs num perímetro do VPC Service Controls. Google Cloud Verifique as definições de entrada do serviço de destino. Por exemplo, consulte o artigo Restrinja a entrada de rede para o Cloud Run e as autorizações da conta de serviço anexada. Pode receber uma mensagem de erro URL_ERROR-ERROR_DNS. Para mais informações, consulte a secção A tarefa falha devido ao destino inacessível neste documento.

A tarefa falha devido ao destino inacessível

Este problema ocorre quando a tarefa do Cloud Scheduler falha porque o destino não é alcançável. Os registos de execução apresentam erros que começam com URL_ERROR ou URL_UNREACHABLE.

Para resolver este problema, consoante a mensagem de erro recebida, conclua uma das seguintes verificações:

  • URL_ERROR-ERROR_AUTHENTICATION: é devolvido um erro HTTP 401 (Unauthorized) ou HTTP 407 (Proxy Authentication Required). O destino requer autenticação. No entanto, o pedido do Cloud Scheduler não inclui um token de autenticação válido. Por exemplo, o pedido não tem um cabeçalho de autorização ou as credenciais são inválidas. Verifique as definições de autenticação do trabalho. Para mais informações, consulte os artigos Autentique-se no Cloud Scheduler e Use a autenticação com destinos HTTP.

  • URL_ERROR-ERROR_DNS: indica que uma obtenção de URL falhou porque não foi possível resolver o nome do anfitrião através do Sistema de Nomes de Domínio (DNS). Por exemplo, o nome do anfitrião não existe ou não tem um endereço IP associado. A mensagem de erro pode incluir o texto Original HTTP response code number = 0. Verifique a validade do nome do anfitrião e, quando invocar um ponto final privado, certifique-se de que é suportado pelo Cloud Scheduler e verifique as respetivas definições de entrada.

  • URL_ERROR-ERROR_NOT_FOUND: O servidor Web devolve um erro HTTP 404 Not Found. Verifique se o URL de destino está correto e se o recurso existe.

  • URL_ERROR-ERROR_OTHER: isto refere-se a um erro de HTTP 4xx genérico não detalhado anteriormente. Verifique os registos para obter o código de resposta HTTP original. Se receber um erro HTTP 403, consulte o documento A tarefa falha com um erro de autorização.

  • URL_UNREACHABLE-UNREACHABLE_5xx: o destino devolve um erro HTTP 5xx ou 429. Esta pode ser uma condição temporária, por exemplo, um servidor sobrecarregado. Verifique os registos do alvo de destino para depurar o problema.

  • URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET: A ligação foi reposta pelo outro elemento da rede. Verifique se existe um problema do lado do servidor externo.

  • URL_UNREACHABLE-UNREACHABLE_ERROR: isto indica um erro de rede. Verifique se o URL de destino está correto e se existem regras de firewall a bloquear o acesso.

Problemas de execução de tarefas

As tarefas do Cloud Scheduler são executadas em horários definidos ou intervalos regulares. Podem ocorrer os seguintes problemas durante a execução de uma tarefa.

Uma tarefa que funcionava anteriormente deixa de ser executada

Este problema ocorre quando uma tarefa do Cloud Scheduler que foi executada anteriormente com êxito deixa de ser executada porque a API Cloud Scheduler está desativada. Pode confirmar a hora em que a API foi desativada consultando os registos de auditoria com os seguintes critérios:

resource.type="audited_resource" AND
protoPayload.serviceName="cloudscheduler.googleapis.com" AND
operation.producer="serviceusage.googleapis.com" AND
protoPayload.authorizationInfo.permission="serviceusage.services.disable"

Para resolver este problema, ative a API Cloud Scheduler.

A execução de uma tarefa torna-se irregular devido à mudança da hora

Quando cria uma tarefa do Cloud Scheduler através da Google Cloud consola, tem de especificar um fuso horário. Quando usa a CLI do Google Cloud, pode especificar opcionalmente um fuso horário através da flag --time-zone. Caso contrário, o fuso horário predefinido usado é a Hora Universal Coordenada ou UTC.

Este problema ocorre quando uma tarefa está configurada com um fuso horário diferente de UTC e a respetiva execução torna-se irregular devido a alterações do horário de verão (DST). Este comportamento é o esperado.

Se o seu trabalho exigir uma cadência muito exata, deve escolher um fuso horário que não siga a mudança de hora. Especificamente, para evitar completamente o problema, configure a programação da tarefa para usar o fuso horário UTC.

Para mais informações, consulte o artigo Formato de tarefa cron e fuso horário.

O que se segue?

Se não conseguir encontrar uma solução para o seu problema na documentação do Cloud Scheduler, considere as seguintes opções:

Para mais informações, consulte o artigo Suporte do Cloud Scheduler.