Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei EventBridge problemi di Amazon Scheduler
Puoi utilizzare gli argomenti di questa sezione per risolvere i problemi più comuni di Amazon EventBridge Scheduler.
Argomenti
La mia pianificazione fallisce a causa di errori di destinazione
Gli errori di richiamo di Target sono uno dei problemi più comuni con Scheduler. EventBridge Questi errori possono verificarsi per diversi motivi:
Cause comuni:
Parametri target mancanti o errati.
Problemi di connettività di rete.
Limitazione delle API.
Configurazione errata del target.
Fasi per la risoluzione dei problemi
-
Configurare una Dead-Letter coda (DLQ)
Un DLQ consente di acquisire e analizzare le chiamate non riuscite.
Le chiamate non riuscite vengono inviate al DLQ con messaggi di errore dettagliati.
Per configurare un DLQ, aggiungetelo alla configurazione della pianificazione:
{ "DeadLetterConfig": { "Arn": "arn:aws:sqs:region:account-id:MyDLQ" } }Nota: se il tuo DLQ è crittografato con una chiave KMS, assicurati che la politica delle chiavi consenta a EventBridge Scheduler di utilizzarlo:
{ "Sid": "Allow EventBridge Scheduler to use the key", "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } -
Verifica i parametri dell'API
Assicurati che tutti i parametri richiesti per le chiamate API di destinazione siano presenti e formattati correttamente.
Verifica che i valori dei parametri rientrino negli intervalli consentiti.
Verifica che l'endpoint API sia accessibile dal tuo VPC se utilizzi endpoint VPC.
-
Rivedi la configurazione della rete
Se le chiamate falliscono a causa di problemi di rete transitori, implementa la logica dei tentativi.
Esempio di politica sui tentativi:
{ "RetryPolicy": { "MaximumRetryAttempts": 3, "MaximumEventAgeInSeconds": 3600 } } -
Controlla le configurazioni specifiche della destinazione
Per le destinazioni basate su modelli (come le attività ECS), assicurati di fornire le sostituzioni tramite il parametro dell'API di creazione della
Target.Inputpianificazione.Verifica che il servizio di destinazione sia supportato e configurato correttamente.
Pianifica i problemi relativi alle autorizzazioni dei ruoli di esecuzione
I problemi relativi alle autorizzazioni dei ruoli IAM sono una causa comune degli errori di esecuzione della pianificazione. Ecco come risolvere e risolvere questi problemi:
Cause comuni
Mancano le autorizzazioni richieste per il servizio di destinazione
Configurazione errata del ruolo nella pianificazione
Rapporto di fiducia mancante con il servizio EventBridge Scheduler
Autorizzazioni insufficienti per l'accesso alle risorse crittografate
Caratteristiche
Incremento della
TargetErrorCountmetrica in CloudWatchLe pianificazioni non vengono eseguite senza problemi evidenti nella configurazione della pianificazione
Fasi per la risoluzione dei problemi
-
Monitora le CloudWatch metriche
Registra la
TargetErrorCountmetrica. CloudWatch
-
Usa Dead-Letter Queue (DLQ) per confermare i problemi di autorizzazione
Configura un DLQ per la tua pianificazione.
Se ci sono problemi di autorizzazione con il tuo target e il DLQ è configurato correttamente, vedrai le chiamate non riuscite nel DLQ con messaggi di errore relativi alle autorizzazioni.
Se il DLQ rimane vuoto nonostante le esecuzioni non riuscite siano visualizzate nelle CloudWatch metriche, è probabile che si tratti di un problema di autorizzazioni che impedisce a Scheduler di scrivere sul DLQ stesso. EventBridge
Nota
Verificate che il DLQ stesso disponga delle autorizzazioni corrette. Se è crittografato, assicurati che EventBridge Scheduler disponga dell'autorizzazione per utilizzare la chiave KMS.
-
Verifica la relazione di fiducia
Assicurati che il tuo ruolo IAM abbia la corretta relazione di fiducia con EventBridge Scheduler:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Controlla le autorizzazioni del ruolo di esecuzione della pianificazione
Il ruolo di esecuzione della pianificazione richiede autorizzazioni specifiche per richiamare diversi tipi di destinazione.
Esempi di autorizzazioni da includere nella politica del ruolo di esecuzione della pianificazione:
// For Lambda function targets - add to schedule execution role { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name" }] } // For SQS queue targets - add to schedule execution role { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:region:account-id:queue-name" }] } -
Verifica l'accesso crittografato alle risorse
Se il tuo target utilizza risorse crittografate (ad esempio, code KMS-encrypted SQS), assicurati che il tuo ruolo disponga delle autorizzazioni per utilizzare la chiave KMS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" } ] } -
Verifica la configurazione ARN del ruolo
Assicurati che il ruolo ARN nella configurazione della pianificazione sia corretto.
Verifica che il ruolo esista nella stessa Account AWS area geografica della tua pianificazione.
Comprensione e gestione delle quote di servizio
Se riscontri problemi nella creazione di pianificazioni o nella visualizzazione di chiamate limitate, potresti raggiungere i limiti delle quote di servizio. EventBridge Scheduler ha delle quote per il numero di pianificazioni, i gruppi di orari e le tariffe di chiamata, che possono variare in base all'area geografica.
Identificazione dei problemi relativi alle quote
Per determinare se stai raggiungendo i limiti delle quote:
-
Monitora le metriche CloudWatch
Controlla la
InvocationThrottleCountmetrica. Un aumento di questa metrica indica che stai superando il limite di frequenza delle chiamate.Rivedi la
InvocationAttemptCountmetrica per comprendere il tuo utilizzo attuale.
-
Controlla i messaggi di errore specifici
Quando crei o modifichi le pianificazioni, a
LimitExceededExceptionindica che hai raggiunto il numero massimo di pianificazioni o gruppi di orari.Le chiamate API che restituiscono errori di limitazione indicano che stai superando la quota di richieste API.
Risoluzione dei problemi relativi alle quote
Se stabilisci che stai raggiungendo i limiti delle quote:
Rivedi e ottimizza i tuoi programmi attuali. Prendi in considerazione la possibilità di consolidare pianificazioni simili o di rimuovere quelle inutilizzate.
Per la limitazione delle API, implementa retry with backoff nelle tue chiamate API.
Se hai bisogno di quote più elevate, richiedi un aumento tramite la console Service Quotas. Seleziona EventBridge Scheduler, scegli la quota da aumentare e invia una richiesta con la motivazione aziendale.
Problemi relativi allo schema di pianificazione e ai tempi di attivazione
A volte gli utenti riscontrano problemi in cui le pianificazioni non si attivano negli orari previsti. Ciò può essere dovuto più comunemente a malintesi sugli schemi di pianificazione, alle modifiche all'ora legale o alle finestre temporali flessibili.
Cause comuni
Interpretazione errata delle espressioni cron.
Comportamento imprevisto durante le modifiche all'ora legale.
Confusione sulle finestre temporali flessibili.
Incomprensione delle espressioni tariffarie.
Fasi per la risoluzione dei problemi
-
Verifica le espressioni cron
Assicurati che la tua espressione cron sia formattata correttamente.
Nota che non puoi specificare contemporaneamente i campi relativi al giorno del mese e al giorno della settimana in un'espressione cron.
-
Considerazioni sul fuso orario
Seleziona il tuo fuso orario preferito durante la creazione della pianificazione.
Scopri in che modo l'ora legale influisce sulla tua pianificazione poiché questa modifica si basa sull'UTC.
Esempio di impatto dell'ora legale: se configuri un orario in modo che venga eseguito alle 7:00 GMT:
Durante l'inverno: l'orario parte alle 7:00 GMT (come GMT = UTC)
Durante l'estate: l'orario è ancora valido alle 7:00 UTC, che ora sono le 6:00 GMT/BST
Se hai bisogno che il programma venga eseguito alla stessa ora locale tutto l'anno, assicurati di selezionare il fuso orario appropriato al momento della creazione del programma e in che modo l'ora legale può influire su quel fuso orario.
-
Comprendi le finestre orarie flessibili
Le finestre temporali flessibili consentono a EventBridge Scheduler di ottimizzare le chiamate.
La pianificazione potrebbe non attivarsi esattamente all'inizio della finestra.
Monitora i tempi di chiamata effettivi per comprendere il comportamento.
-
Frequenza di revisione e espressioni cron
Assicurati che le espressioni di frequenza siano formattate correttamente (ad es.
rate(5 minutes),rate(1 hour)).Sia per le espressioni rate che per quelle cron, tieni presente che le chiamate di pianificazione non sono limitate allo 0° secondo di minuto.
Le pianificazioni possono essere attivate entro il minuto specificato, ma non necessariamente all'inizio esatto del minuto.
Ad esempio:
Un programma con
rate(1 hour)potrebbe essere eseguito alle 14:00:45, 15:00:32, 16:18, ecc.Una pianificazione cron impostata per
0 * * * ? *(ogni ora) potrebbe essere eseguita alle 14:00:15, 15:00:07, 16:00:52 PM, ecc.
-
Monitora le metriche CloudWatch
Usa la
InvocationAttemptCountmetrica per verificare se la tua pianificazione si sta attivando.Controlla
TargetErrorCountse le chiamate non vanno a buon fine.Se hai configurato una Dead-Letter coda, monitora
InvocationsSentToDeadLetterCountper tenere traccia delle chiamate non riuscite.
Creazione di schemi di pianificazione ed espressioni cron
Gli utenti incontrano spesso problemi durante la creazione di schemi di pianificazione, in particolare con le espressioni cron. Ecco alcuni problemi comuni e come risolverli:
Problemi comuni
Sintassi cron errata
Tentativo di utilizzare funzionalità cron non supportate
Confusione su quali campi possono essere usati insieme
Fasi per la risoluzione dei problemi
-
Rivedi la sintassi delle espressioni cron
Assicurati che la tua espressione cron segua il formato corretto:.
Minutes Hours Day-of-month Month Day-of-week YearRicorda che EventBridge Scheduler utilizza lo standard cron con un campo Year aggiuntivo.
-
Comprendi le limitazioni
Non è possibile specificare contemporaneamente i campi relativi al giorno del mese e al giorno della settimana, come illustrato qui. https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions
Le espressioni Cron che indicano frequenze più rapide di 1 minuto non sono supportate.
-
Usa la funzione di anteprima della pianificazione
Quando si crea o si modifica una EventBridge pianificazione, Scheduler fornisce un'anteprima delle successive 10 volte di esecuzione.
Usa questa anteprima per verificare che la pianificazione venga eseguita negli orari previsti.
Se l'anteprima non corrisponde alle tue aspettative, rivedi e modifica la cron expression.
Il mio obiettivo viene attivato?
Per confermare se il tuo obiettivo viene attivato:
-
Controlla le CloudWatch metriche:
InvocationAttemptCountmostra il numero di tentativi di richiamoTargetErrorCountindica se alcune chiamate non sono riusciteTargetErrorThrottledCountmostra se il tuo obiettivo viene limitatoInvocationDroppedCountindica se qualche chiamata è stata interrotta
Configura una Dead-Letter coda (DLQ) per acquisire e analizzare eventuali invocazioni non riuscite.
Obiettivi basati su modelli e universali
Se ricevi un errore del tipo «Richiesta non valida fornita: [servizio] non è un servizio supportato per una destinazione», potresti provare a utilizzare un servizio non supportato come destinazione basata su modello.
Per risolvere questo problema:
Verifica se il servizio desiderato è supportato come destinazione basata su modelli.
Se non è supportato, utilizza invece un target universale e configuralo per effettuare la chiamata API appropriata al tuo servizio.
Configurazioni di input del target universale non valide
Quando si crea una pianificazione con un obiettivo universale, EventBridge Scheduler convalida il formato ARN di destinazione ma non convalida il contenuto del Input campo rispetto all'API del servizio downstream. Ciò significa che una pianificazione può essere creata correttamente anche se Input contiene valori che il servizio di destinazione rifiuterà al momento della chiamata.
Le pianificazioni con configurazioni di input di destinazione non valide vengono attivate sull'espressione configurata ma hanno esito negativo a ogni chiamata. Non è possibile scoprire l'errata configurazione finché non viene richiamata la pianificazione, che potrebbe avvenire ore o giorni dopo la creazione.
Caratteristiche
La pianificazione è stata creata senza errori, ma la
TargetErrorCountCloudWatch metrica aumenta a ogni chiamata.I messaggi DLQ contengono codici di errore del servizio di destinazione (ad esempio,
InvalidParameterValueExceptionorValidationException), non.AWS.Scheduler.InternalServerErrorIl messaggio
ERROR_MESSAGEnel DLQ fa riferimento a errori di convalida dei parametri di input specifici.
Esempi
Gli esempi seguenti mostrano le configurazioni di input non valide comuni per un AWS Lambda
target universale (). arn:aws:scheduler:::aws-sdk:lambda:invoke
Qualificatori non corrispondenti
Una pianificazione con il seguente input specifica la versione nel campo FunctionName e la versione 2 nel campo: 1 Qualifier
{ "FunctionName": "MyFunction:2", "Qualifier": "1" }
Questa pianificazione viene creata correttamente, ma ogni chiamata ha esito negativo. Il messaggio DLQ contiene:
ERROR_CODE:InvalidParameterValueExceptionERROR_MESSAGE:The derived qualifier from the function name does not match the specified qualifier.
Nome della funzione non valido
Una pianificazione con il seguente input specifica un valore di soli spazi bianchi per: FunctionName
{ "FunctionName": " " }
Il messaggio DLQ contiene:
ERROR_CODE:ValidationExceptionERROR_MESSAGE: un errore di convalida che indica che il nome della funzione non corrisponde al modello richiesto.
Come risolvere
Configurare un DLQ. Configura sempre una coda di lettere morte per le pianificazioni che utilizzano obiettivi universali. Gli attributi del messaggio DLQ (
ERROR_CODEeERROR_MESSAGE) contengono l'errore specifico restituito dal servizio di destinazione, che identifica il parametro di input non valido.Convalida i parametri di input rispetto all'API del servizio di destinazione. Prima di creare una pianificazione, verifica che il JSON nel tuo
Inputcampo contenga valori validi chiamando direttamente l'API di destinazione. Ad esempio, richiama la tua AWS Lambda funzione con gli stessi parametri utilizzando l' AWS LambdaInvokeAPI per confermare che la richiesta ha esito positivo.Esegui il test con una pianificazione una tantum. Crea una pianificazione una tantum per verificare che l'invocazione di destinazione abbia esito positivo prima di configurare una pianificazione ricorrente.
Esamina il riferimento all'API del servizio di destinazione. Controlla il riferimento API per il servizio a cui ti rivolgi per confermare i parametri richiesti, gli intervalli di valori validi e i vincoli. Per AWS Lambda
Invoke, consulta Invoke nella Guida per gli AWS Lambda sviluppatori.
Pianifica gli aggiornamenti che attivano invocazioni impreviste
Quando si apporta una modifica a una pianificazione, le chiamate potrebbero non riflettere immediatamente la pianificazione aggiornata. È necessario un breve periodo di tempo affinché vengano applicate le modifiche. Ad esempio, se si aggiorna una pianificazione in prossimità dell'ora di attivazione originale, è possibile che venga visualizzata una chiamata basata sulla configurazione originale della pianificazione.
Disabilitare o abilitare le pianificazioni una tantum
Quando si riattiva una pianificazione una tantum dopo che è trascorsa l'ora pianificata originale, la pianificazione può richiamare immediatamente la destinazione desiderata. Ciò può verificarsi anche se la pianificazione è stata disattivata prima dell'orario di esecuzione originale.
Ad esempio:
Ora corrente: 13:15 UTC
One-time orario creato per: 13:30 UTC
Orario disabilitato prima delle 13:30 UTC
Pianificazione riattivata alle 14:00 UTC
Risultato: il target può essere richiamato immediatamente dopo la riattivazione