Resolver problemas do Cloud Scheduler

Nesta página, mostramos como resolver problemas com o Cloud Scheduler.

O Cloud Scheduler publica registros no início e no final de cada execução de job. É possível recuperar, visualizar e analisar os registros de um job específico, incluindo os registros de auditoria disponíveis para o Cloud Scheduler. Para mais informações, consulte Ver registros.

Por padrão, quando um job do Cloud Scheduler não recebe um reconhecimento do serviço de destino (o gerenciador de solicitações do job), ele é considerado como falho. O Cloud Scheduler vai tentar executar o job novamente de acordo com a espera exponencial configurada.

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

O job falha devido a um problema de serviço downstream

Uma falha de job pode ser causada por um problema em um serviço downstream que o Cloud Scheduler está segmentando, por exemplo, o Cloud Run, em vez do próprio Cloud Scheduler. Você pode suspeitar de um problema em um serviço downstream quando as seguintes condições se aplicam:

  • As permissões do Cloud Scheduler estão configuradas corretamente.
  • O Cloud Scheduler pode acessar o serviço de destino.
  • As mensagens de erro nos registros de execução do Cloud Scheduler são originadas do serviço downstream.

Para resolver esse problema, siga estas etapas:

  1. Invocar o serviço downstream diretamente: verifique se o serviço downstream pode ser invocado sem o Cloud Scheduler. Uma invocação bem-sucedida indica que o Cloud Scheduler provavelmente está causando o problema. Se não for bem-sucedida, o serviço downstream vai precisar de mais depuração.
  2. Analise os registros do serviço de destino: examine os registros do serviço de destino, determine os erros que estão sendo gerados e faça a triagem deles de acordo com a necessidade.
  3. Procure operações de longa duração: quando o Cloud Scheduler retorna um erro HTTP 504 para operações de longa duração (mais de 30 minutos), verifique os registros do serviço de destino para saber se a execução foi concluída ou falhou, já que o serviço de destino pode ter um tempo limite de solicitação mais longo. Nesse cenário, o Cloud Scheduler atinge o tempo limite, mas o serviço de destino não.

O job falha com um erro de permissão

As permissões controlam quais principais podem acessar recursos e quais operações são permitidas. Permissões mal configuradas podem interromper as execuções de jobs e causar erros de permissão negada. Os registros de auditoria fornecem um registro detalhado de todas as mudanças de permissão, permitindo que você identifique a origem desses problemas.

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

Para resolver esse problema, faça uma ou mais das seguintes verificações:

  • Verifique os papéis do IAM concedidos ao agente de serviço: o agente de serviço do Cloud Scheduler requer o papel Agente de serviço do Cloud Scheduler (roles/cloudscheduler.serviceAgent). Sem essa função, os jobs do Cloud Scheduler falham. É possível conceder manualmente o papel ao agente de serviço do Cloud Scheduler. Uma concessão manual é necessária somente se você ativou a API Cloud Scheduler antes de 19 de março de 2019 ou se removeu a função de agente de serviço do Cloud Scheduler. Para mais informações, consulte Conceder o papel de agente de serviço do Cloud Scheduler.

  • Verifique as permissões da conta de serviço: confira se a conta de serviço anexada ao seu job tem as permissões e o escopo corretos para invocar o serviço de destino. Isso inclui cenários em que o destino está em outro projeto ou é o destino final de um serviço intermediário. Quando o destino estiver em Google Cloud, confirme se você concedeu os papéis necessários à sua conta de serviço. Cada serviço no Google Cloud requer uma função específica, e o serviço de recebimento verifica automaticamente o token gerado. Por exemplo, para o Cloud Run e o Cloud Run functions, é necessário conceder o papel Cloud Run Invoker. Quando o destino está fora de Google Cloud, o serviço de recebimento precisa verificar manualmente o token. Para mais informações, consulte Autenticar no Cloud Scheduler e Usar autenticação com destinos HTTP.

  • Verifique violações do VPC Service Controls: o VPC Service Controls é um recurso do Google Cloud que permite configurar um perímetro seguro para evitar a exfiltração de dados. Para determinar se um erro está relacionado ao VPC Service Controls, verifique se você ativou o VPC Service Controls e o aplicou aos projetos e serviços que está tentando usar. Para verificar se os projetos e serviços estão protegidos pelo VPC Service Controls, confira a política do VPC Service Controls nesse nível da hierarquia de recursos.

    Para entender o escopo de um problema, recupere erros do VPC Service Controls nos registros de auditoria.

    1. No console Google Cloud , acesse a página Análise de registros.

      Acessar a Análise de registros

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

    2. Consulte os registros de auditoria com os seguintes critérios:

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

      Especificamente, 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 podem ocorrer ao configurar o VPC Service Controls, consulte Resolver problemas comuns.

  • Verifique os endpoints particulares: o Cloud Scheduler só pode invocar determinados endpoints particulares, como o Cloud Run, as funções do Cloud Run e as APIs Google Cloud em um perímetro do VPC Service Controls. Verifique as configurações de entrada do serviço de destino. Por exemplo, consulte Restringir a entrada de rede para o Cloud Run e as permissões da conta de serviço anexada. Você pode receber uma mensagem de erro URL_ERROR-ERROR_DNS. Para mais informações, consulte Falha do job devido a um destino inacessível neste documento.

O job falha porque o destino não pode ser alcançado

Esse problema ocorre quando o job do Cloud Scheduler falha porque o destino não está acessível. Os registros de execução mostram erros que começam com URL_ERROR ou URL_UNREACHABLE.

Para resolver esse problema, dependendo da mensagem de erro recebida, faça uma das seguintes verificações:

  • URL_ERROR-ERROR_AUTHENTICATION: um erro HTTP 401 (Unauthorized) ou HTTP 407 (Proxy Authentication Required) é retornado. O destino exige autenticação, mas a solicitação do Cloud Scheduler não inclui um token de autenticação válido. Por exemplo, a solicitação não tem um cabeçalho de autorização ou as credenciais são inválidas. Verifique as configurações de autenticação do job. Para mais informações, consulte Autenticar no Cloud Scheduler e Usar autenticação com destinos HTTP.

  • URL_ERROR-ERROR_DNS: indica que uma busca de URL falhou porque o nome do host não pôde ser resolvido usando o Sistema de Nomes de Domínio (DNS). Por exemplo, o nome do host 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 host e, ao invocar um endpoint particular, confira se ele é compatível com o Cloud Scheduler e verifique as configurações de entrada.

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

  • URL_ERROR-ERROR_OTHER: refere-se a um erro genérico de HTTP 4xx não detalhado anteriormente. Verifique os registros para recuperar o código de resposta HTTP original. Se você receber um erro HTTP 403, consulte O job falha com um erro de permissão neste documento.

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

  • URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET: a conexão foi redefinida pelo peering. Verifique se há um problema no lado do servidor externo.

  • URL_UNREACHABLE-UNREACHABLE_ERROR: indica um erro de rede. Verifique se o URL de destino está correto e se há regras de firewall bloqueando o acesso.

Problemas de execução do job

Os jobs do Cloud Scheduler são executados em horários definidos ou intervalos regulares. Os problemas a seguir podem ocorrer durante a execução de um job.

Um job que funcionava para de ser executado

Esse problema ocorre quando um job do Cloud Scheduler que era executado com êxito para de ser executado porque a API Cloud Scheduler está desativada. Para confirmar a hora em que a API foi desativada, consulte os registros 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 esse problema, ative a API Cloud Scheduler.

A execução de um job se torna irregular devido ao horário de verão

Ao criar um job do Cloud Scheduler usando o console Google Cloud , você precisa especificar um fuso horário. Ao usar a Google Cloud CLI, é possível especificar um fuso horário usando a flag --time-zone. Caso contrário, o fuso horário padrão usado é o Tempo Universal Coordenado ou UTC.

Esse problema ocorre quando um job é configurado com um fuso horário diferente de UTC e a execução dele se torna irregular devido a mudanças no horário de verão (DST, na sigla em inglês). Trata-se do comportamento esperado.

Se o seu job exigir uma cadência muito exata, escolha um fuso horário que não observe o horário de verão. Para evitar o problema, configure a programação do job para usar o fuso horário UTC.

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

A seguir

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

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