Questa pagina mostra come risolvere i problemi relativi a Cloud Scheduler.
Cloud Scheduler pubblica i log all'inizio e alla fine di ogni esecuzione del job. Puoi recuperare, visualizzare e analizzare i log per un job specifico, inclusi i log di controllo disponibili per Cloud Scheduler. Per ulteriori informazioni, consulta Visualizzare i log.
Per impostazione predefinita, quando un job Cloud Scheduler non riceve una conferma dal servizio di destinazione, ovvero il gestore di richieste del job, il job viene considerato non riuscito. Cloud Scheduler riproverà a eseguire il job in base al backoff esponenziale che hai configurato.
Per informazioni sugli incidenti che interessano i servizi Google Cloud , consulta la Google Cloud dashboard di Service Health e Tutti gli incidenti segnalati per Cloud Scheduler.
Il job non riesce a causa di un problema del servizio downstream
Un errore del job potrebbe essere dovuto a un problema in un servizio downstream a cui Cloud Scheduler fa riferimento, ad esempio Cloud Run, piuttosto che a Cloud Scheduler stesso. Puoi sospettare un problema con un servizio downstream quando si verificano le seguenti condizioni:
- Le autorizzazioni per Cloud Scheduler siano configurate correttamente.
- Cloud Scheduler può raggiungere correttamente il servizio di destinazione.
- I messaggi di errore nei log di esecuzione di Cloud Scheduler provengono dal servizio downstream.
Per risolvere il problema, completa i seguenti passaggi:
- Richiama direttamente il servizio downstream: verifica che il servizio downstream possa essere richiamato correttamente senza Cloud Scheduler. Un'invocazione riuscita indica che il problema è probabilmente causato da Cloud Scheduler. In caso di esito negativo, il servizio downstream richiede un ulteriore debug.
- Esamina i log del servizio di destinazione: esamina i log del servizio di destinazione, determina gli errori restituiti e risolvili di conseguenza.
- Cerca operazioni di lunga durata: quando Cloud Scheduler restituisce
un errore HTTP
504
per operazioni di lunga durata (più di 30 minuti), controlla i log del servizio di destinazione per verificare se l'esecuzione è riuscita o meno, in quanto il servizio di destinazione potrebbe avere un timeout della richiesta più lungo. In questo scenario, Cloud Scheduler va in timeout, ma il servizio di destinazione no.
Il job non riesce a causa di un errore di autorizzazione
Le autorizzazioni controllano quali entità possono accedere alle risorse e quali operazioni sono consentite. Le autorizzazioni configurate in modo errato possono interrompere l'esecuzione dei job e causare errori di autorizzazione negata. I log di controllo forniscono un record dettagliato di tutte le modifiche alle autorizzazioni, consentendoti di identificare l'origine di questi problemi.
Quando il job Cloud Scheduler non va a buon fine a causa di un errore di autorizzazione, i log di esecuzione potrebbero visualizzare un messaggio simile a "debugInfo":"URL_ERROR-ERROR_OTHER. Original HTTP response code number = 403"
.
Per risolvere il problema, completa una o più delle seguenti verifiche:
Verifica i ruoli IAM concessi all'agente di servizio: l'agente di servizio Cloud Scheduler richiede il ruolo Agente di servizio Cloud Scheduler (
roles/cloudscheduler.serviceAgent
). Senza questo ruolo, i job Cloud Scheduler non vanno a buon fine. Puoi concedere manualmente il ruolo all'agente di servizio Cloud Scheduler. Una concessione manuale è richiesta solo se hai abilitato l'API Cloud Scheduler prima del 19 marzo 2019 o se hai rimosso il ruolo Agente di servizio Cloud Scheduler. Per saperne di più, vedi Concedere il ruolo Agente di servizio Cloud Scheduler.Verifica le account di servizio account: assicurati che il service account collegato al job disponga delle autorizzazioni e dell'ambito corretti per richiamare il servizio di destinazione. Ciò include scenari in cui la destinazione si trova in un altro progetto o è la destinazione finale di un servizio intermediario. Se il target si trova all'interno di Google Cloud, verifica di aver concesso i ruoli necessari aaccount di serviziont. Ogni servizio all'interno di Google Cloud richiede un ruolo specifico e il servizio ricevente verifica automaticamente il token generato. Ad esempio, per Cloud Run e Cloud Run Functions, devi concedere il ruolo
Cloud Run Invoker
. Quando la destinazione si trova al di fuori di Google Cloud, il servizio di ricezione deve verificare manualmente il token. Per ulteriori informazioni, consulta Autenticarsi in Cloud Scheduler e Utilizzare l'autenticazione con target HTTP.Verifica eventuali violazioni dei Controlli di servizio VPC: Controlli di servizio VPC è una funzionalità che ti consente di configurare un perimetro sicuro per proteggerti dall'esfiltrazione di dati. Google CloudPer determinare se un errore è correlato a Controlli di servizio VPC, verifica di aver attivato Controlli di servizio VPC e di averlo applicato ai progetti e ai servizi che stai tentando di utilizzare. Per verificare se i progetti e i servizi sono protetti dai Controlli di servizio VPC, controlla i criteri dei Controlli di servizio VPC a quel livello della gerarchia delle risorse.
Per comprendere l'ambito di un problema, puoi recuperare gli errori di Controlli di servizio VPC dai log di controllo.
-
Nella Google Cloud console, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Esegui query sugli audit log in base ai seguenti criteri:
severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"
In particolare, i messaggi di errore potrebbero includere il seguente testo:
Request is prohibited by organization's policy
Request violates VPC Service Controls
Per saperne di più sui problemi che potresti riscontrare durante la configurazione dei controlli di servizio VPC, consulta Risolvere i problemi comuni.
-
Verifica eventuali endpoint privati: Cloud Scheduler può richiamare solo determinati endpoint privati come Cloud Run, Cloud Run Functions e API Google Cloud all'interno di un perimetro di Controlli di servizio VPC. Controlla le impostazioni di traffico in entrata per il servizio di destinazione, ad esempio consulta Limitare il traffico in entrata di rete per Cloud Run e le autorizzazioni daccount di serviziount collegato. Potresti ricevere un messaggio di errore
URL_ERROR-ERROR_DNS
. Per saperne di più, consulta la sezione Il job non va a buon fine a causa della destinazione di destinazione non raggiungibile di questo documento.
Il job non va a buon fine a causa di una destinazione di destinazione non raggiungibile
Questo problema si verifica quando il job Cloud Scheduler non va a buon fine perché
la destinazione di destinazione non è raggiungibile. I log di esecuzione mostrano gli errori che iniziano
con URL_ERROR
o URL_UNREACHABLE
.
Per risolvere il problema, a seconda del messaggio di errore ricevuto, completa uno dei seguenti controlli:
URL_ERROR-ERROR_AUTHENTICATION
: viene restituito un errore HTTP401 (Unauthorized)
o HTTP407 (Proxy Authentication Required)
. La destinazione richiede l'autenticazione, ma la richiesta di Cloud Scheduler non include un token di autenticazione valido. Ad esempio, nella richiesta manca un'intestazione di autorizzazione o le credenziali non sono valide. Controlla le impostazioni di autenticazione del job. Per ulteriori informazioni, consulta Autenticarsi in Cloud Scheduler e Utilizzare l'autenticazione con target HTTP.URL_ERROR-ERROR_DNS
: indica che il recupero di un URL non è riuscito perché non è stato possibile risolvere il nome host utilizzando il Domain Name System (DNS). Ad esempio, il nome host non esiste o non ha un indirizzo IP associato. Il messaggio di errore potrebbe includere il testoOriginal HTTP response code number = 0
. Controlla la validità del nome host e, quando richiami un endpoint privato, assicurati che sia supportato da Cloud Scheduler e controlla le impostazioni di ingresso.URL_ERROR-ERROR_NOT_FOUND
: il server web restituisce un errore HTTP404 Not Found
. Verifica che l'URL di destinazione sia corretto e che la risorsa esista.URL_ERROR-ERROR_OTHER
: si riferisce a un errore HTTP4xx
generico non descritto in precedenza. Controlla i log per recuperare il codice di risposta HTTP originale. Se ricevi un errore HTTP403
, in questo documento consulta la sezione Il job non riesce a causa di un errore di autorizzazione.URL_UNREACHABLE-UNREACHABLE_5xx
: la destinazione restituisce un errore HTTP5xx
o429
. Potrebbe trattarsi di una condizione temporanea, ad esempio un server sovraccarico. Controlla i log della destinazione di destinazione per eseguire il debug del problema.URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET
: la connessione è stata reimpostata dal peer. Verifica la presenza di un problema sul lato server esterno.URL_UNREACHABLE-UNREACHABLE_ERROR
: indica un errore di rete. Verifica se l'URL di destinazione è corretto e se esistono regole firewall che bloccano l'accesso.
Problemi di esecuzione del job
I job Cloud Scheduler vengono eseguiti in orari specifici o a intervalli regolari. Durante l'esecuzione di un job potrebbero verificarsi i seguenti problemi.
Un job che funzionava in precedenza smette di essere eseguito
Questo problema si verifica quando un job Cloud Scheduler precedentemente eseguito correttamente smette di essere eseguito perché l'API Cloud Scheduler è disabilitata. Puoi confermare l'ora in cui l'API è stata disattivata eseguendo una query nei log di controllo per i seguenti criteri:
resource.type="audited_resource" AND protoPayload.serviceName="cloudscheduler.googleapis.com" AND operation.producer="serviceusage.googleapis.com" AND protoPayload.authorizationInfo.permission="serviceusage.services.disable"
Per risolvere il problema, abilita l'API Cloud Scheduler.
L'esecuzione di un job diventa irregolare a causa dell'ora legale
Quando crei un job Cloud Scheduler utilizzando la console Google Cloud , devi specificare un fuso orario. Quando utilizzi Google Cloud CLI, puoi specificare facoltativamente
un fuso orario utilizzando il flag --time-zone
; in caso contrario, il fuso orario predefinito utilizzato
è il tempo universale coordinato o UTC
.
Questo problema si verifica quando un job è configurato con un fuso orario non UTC e la sua esecuzione diventa irregolare a causa delle modifiche all'ora legale. Questo è un comportamento previsto.
Se il tuo job richiede una cadenza molto precisa, devi scegliere un fuso orario che non osservi l'ora legale. Nello specifico, per evitare del tutto il problema, configura la pianificazione del job in modo che utilizzi il fuso orario UTC.
Per saperne di più, consulta Formato cron job e fuso orario.
Passaggi successivi
Se non riesci a trovare una soluzione al tuo problema nella documentazione di Cloud Scheduler, valuta le seguenti opzioni:
- Ricevi assistenza dalla community
ponendo domande su Stack Overflow
o cercando problemi simili
utilizzando il tag
google-cloud-scheduler
. - Apri una richiesta di assistenza contattando l'assistenza clienti.Google Cloud
- Apri una segnalazione di bug o una richiesta di funzionalità utilizzando lo strumento di monitoraggio dei problemi pubblico.
Per ulteriori informazioni, consulta la pagina Assistenza Cloud Scheduler.