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:
- 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.
- 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.
- 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.
-
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.
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 HTTP401 (Unauthorized)
ou HTTP407 (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 textoOriginal 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 HTTP404 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 HTTP4xx
genérico não detalhado anteriormente. Verifique os registos para obter o código de resposta HTTP original. Se receber um erro HTTP403
, consulte o documento A tarefa falha com um erro de autorização.URL_UNREACHABLE-UNREACHABLE_5xx
: o destino devolve um erro HTTP5xx
ou429
. 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:
- Receba apoio técnico da comunidade
fazendo perguntas no Stack Overflow
ou pesquisando problemas semelhantes
com a etiqueta
google-cloud-scheduler
. - Abra um registo de apoio técnico contactando o Google Cloud apoio ao cliente.
- Abra um erro ou um pedido de funcionalidade através do controlador de problemas público.
Para mais informações, consulte o artigo Suporte do Cloud Scheduler.