

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 problemi di Amazon EventBridge Scheduler
<a name="troubleshooting"></a>

Puoi utilizzare gli argomenti di questa sezione per risolvere i problemi più comuni di Amazon EventBridge Scheduler.

**Topics**
+ [La mia pianificazione fallisce a causa di errori di destinazione](#troubleshooting-target-errors)
+ [Pianifica i problemi relativi alle autorizzazioni dei ruoli di esecuzione](#troubleshooting-perms)
+ [Comprensione e gestione delle quote di servizio](#troubleshooting-quotas)
+ [Pianifica lo schema e attiva problemi di tempistica](#troubleshooting-timing)
+ [Creazione di schemi di pianificazione ed espressioni cron](#troubleshooting-patterns)
+ [Il mio bersaglio viene attivato?](#troubleshooting-trigger-target)
+ [Target basati su modelli e obiettivi universali](#troubleshooting-temp-universal-target)
+ [Configurazioni di input Universal Target non valide](#troubleshooting-usi-target-input)
+ [Pianifica gli aggiornamenti che attivano chiamate impreviste](#troubleshooting-temp-universal-target-invoke)
+ [Disabilitazione o attivazione di pianificazioni una tantum](#troubleshooting-temp-universal-target-enable)

## La mia pianificazione fallisce a causa di errori di destinazione
<a name="troubleshooting-target-errors"></a>

Gli errori di chiamata di Target sono uno dei problemi più comuni di Scheduler. EventBridge Questi errori possono verificarsi per diversi motivi:

### Cause comuni:
<a name="troubleshooting-target-errors-cc"></a>
+ Parametri di destinazione mancanti o errati.
+ Problemi di connettività di rete.
+ Limitazione delle API.
+ Configurazione errata della destinazione.

### Fasi per la risoluzione dei problemi
<a name="troubleshooting-target-errors-solve"></a>

1. **Configurare una Dead-Letter Queue (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](configuring-schedule-dlq.md), aggiungilo alla configurazione di pianificazione:

   ```
   {
       "DeadLetterConfig": {
           "Arn": "arn:aws:sqs:region:account-id:MyDLQ"
       }
   }
   ```

   Nota: se il tuo DLQ è crittografato con una chiave KMS, assicurati che la politica della chiave 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": "*"
   }
   ```

1. **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.

1. **Rivedi la configurazione di rete**
   + Se le chiamate falliscono a causa di problemi transitori di rete, implementa la logica di [ripetizione](https://docs.aws.amazon.com/scheduler/latest/APIReference/API_RetryPolicy.html) dei tentativi.
   + Esempio di politica di riprova:

   ```
   {
       "RetryPolicy": {
           "MaximumRetryAttempts": 3,
           "MaximumEventAgeInSeconds": 3600
       }
   }
   ```

1. **Controlla le configurazioni specifiche della destinazione**
   + Per gli obiettivi basati su modelli (come le attività ECS), assicurati di fornire le sostituzioni tramite il parametro dell'API per la creazione della pianificazione. `Target.Input`
   + [Verifica che il servizio di destinazione sia supportato e configurato correttamente.](managing-targets-templated.md)

## Pianifica i problemi relativi alle autorizzazioni dei ruoli di esecuzione
<a name="troubleshooting-perms"></a>

I problemi di autorizzazione dei ruoli IAM sono una causa comune degli errori di esecuzione della pianificazione. Ecco come risolvere e risolvere questi problemi:

### Cause comuni
<a name="troubleshooting-perms-cc"></a>
+ Mancano le autorizzazioni richieste per il servizio di destinazione
+ Configurazione errata dei ruoli nella pianificazione
+ Rapporto di fiducia mancante con il servizio EventBridge Scheduler
+ Autorizzazioni insufficienti per accedere alle risorse crittografate

### Caratteristiche
<a name="troubleshooting-perms-symptoms"></a>
+ Aumento della `TargetErrorCount` metrica in CloudWatch
+ Le pianificazioni non vengono eseguite senza problemi apparenti nella configurazione della pianificazione

### Fasi per la risoluzione dei problemi
<a name="troubleshooting-perms-solve"></a>

1. **Monitora le CloudWatch metriche**
   + Controlla la `TargetErrorCount` metrica. CloudWatch

1. **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 la destinazione e il DLQ è configurato correttamente, nel DLQ verranno visualizzate le chiamate non riuscite con i messaggi di errore relativi alle autorizzazioni.
   + Se il DLQ rimane vuoto nonostante le esecuzioni non riuscite siano riportate nelle CloudWatch metriche, ciò indica probabilmente un problema di autorizzazioni che impedisce a Scheduler di scrivere sul DLQ stesso. EventBridge 
**Nota**  
Assicurati che il DLQ stesso disponga delle autorizzazioni corrette. Se è crittografato, assicurati che EventBridge Scheduler abbia il permesso di utilizzare la chiave KMS.

1. **Verifica la relazione di fiducia**
   + Assicurati che il tuo ruolo IAM abbia il corretto rapporto di fiducia con EventBridge Scheduler:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "scheduler.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

1. **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"
       }]
   }
   ```

1. **Verifica l'accesso crittografato alle risorse**
   + Se il tuo target utilizza risorse crittografate (ad esempio, code SQS crittografate con KMS), 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"
           }
       ]
   }
   ```

1. **Verifica della configurazione ARN del ruolo**
   + Assicurati che il ruolo ARN nella configurazione della pianificazione sia corretto.
   + Verifica che il ruolo esista nella stessa Account AWS regione della tua pianificazione.

## Comprensione e gestione delle quote di servizio
<a name="troubleshooting-quotas"></a>

Se riscontri problemi nella creazione di pianificazioni o nella visualizzazione di chiamate limitate, è possibile che tu stia raggiungendo i limiti delle quote di servizio. EventBridge Scheduler ha delle quote per il numero di pianificazioni, i gruppi di pianificazione e le tariffe di chiamata, che possono variare in base all'area geografica.

### Identificazione dei problemi relativi alle quote
<a name="troubleshooting-quotas-symptoms"></a>

Per determinare se stai raggiungendo i limiti di quota:

1. **Monitora le metriche CloudWatch **
   + Controlla la `InvocationThrottleCount` metrica. Un aumento di questa metrica indica che stai superando il limite di frequenza di invocazione.
   + Esamina la `InvocationAttemptCount` metrica per comprendere il tuo utilizzo attuale.

1. **Presta attenzione ai messaggi di errore specifici**
   + Durante la creazione o la modifica delle pianificazioni, a `LimitExceededException` indica che hai raggiunto il numero massimo di pianificazioni o gruppi di pianificazioni.
   + Le chiamate API che restituiscono errori di limitazione suggeriscono che stai superando la quota di richieste API.

### Risoluzione dei problemi relativi alle quote
<a name="troubleshooting-quotas-solve"></a>

Se ritieni di aver raggiunto i limiti di quota:

1. Rivedi e ottimizza i tuoi programmi attuali. Valuta la possibilità di consolidare pianificazioni simili o di rimuovere quelle inutilizzate.

1. Per la limitazione delle API, implementa [retry with backoff](https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/retry-backoff.html) nelle tue chiamate API.

1. 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 giustificazione aziendale.

## Pianifica lo schema e attiva problemi di tempistica
<a name="troubleshooting-timing"></a>

Gli utenti a volte riscontrano problemi in cui le pianificazioni non vengono attivate negli orari previsti. Nella maggior parte dei casi, ciò può essere dovuto a incomprensioni relative agli schemi di pianificazione, alle modifiche dell'ora legale o alle finestre temporali flessibili.

### Cause comuni
<a name="troubleshooting-timing-cc"></a>
+ Interpretazione errata delle espressioni cron.
+ Comportamento imprevisto durante le modifiche dell'ora legale.
+ Confusione sulle finestre temporali flessibili.
+ Incomprensione delle espressioni dei tassi.

### Fasi per la risoluzione dei problemi
<a name="troubleshooting-timing-solve"></a>

1. **Verifica le espressioni cron**
   + Assicurati che l'espressione cron sia formattata correttamente.
   + Nota che non puoi specificare entrambi i day-of-month day-of-week campi contemporaneamente in un'espressione cron.

1. **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 una pianificazione in modo che venga eseguita alle 7:00 GMT:
   + Durante l'inverno: il programma viene eseguito alle 7:00 GMT (come GMT = UTC)
   + Durante l'estate: l'orario è ancora attivo alle 7:00 UTC, che ora sono le 6:00 GMT/BST

   Se desideri che la pianificazione venga eseguita alla stessa ora locale tutto l'anno, assicurati di selezionare il fuso orario appropriato al momento della creazione della pianificazione e di come l'ora legale può influire su tale fuso orario.

1. **Comprendi le finestre temporali flessibili**
   + [Le finestre temporali flessibili](managing-schedule-flexible-time-windows.md) consentono a EventBridge Scheduler di ottimizzare le chiamate.
   + La pianificazione potrebbe non attivarsi esattamente all'inizio della finestra.
   + Monitora i tempi di invocazione effettivi per comprendere il comportamento.

1. **Frequenza di revisione e espressioni cron**
   + Assicurati che le espressioni di frequenza siano formattate correttamente (ad esempio`rate(5 minutes)`,`rate(1 hour)`).
   + Sia per le espressioni rate che per quelle cron, tenete presente che le chiamate di schedulazione non sono limitate allo 0° secondo di minuto.
   + Le pianificazioni possono attivarsi entro il minuto specificato, ma non necessariamente all'inizio esatto del minuto.

   Esempio:
   + Una pianificazione `rate(1 hour)` che potrebbe essere eseguita alle 14:00:45, 15:00:32, 16:00: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.

1. **Monitora le metriche CloudWatch **
   + Usa la `InvocationAttemptCount` metrica per verificare se la tua pianificazione è attiva.
   + Controlla `TargetErrorCount` se le chiamate hanno esito negativo.
   + Se hai configurato una Dead-Letter Queue, monitora per tenere traccia delle chiamate non riuscite. `InvocationsSentToDeadLetterCount`

## Creazione di schemi di pianificazione ed espressioni cron
<a name="troubleshooting-patterns"></a>

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
<a name="troubleshooting-patterns-cc"></a>
+ Sintassi cron errata
+ Tentativo di utilizzare funzionalità cron non supportate
+ Confusione su quali campi possono essere usati insieme

### Fasi per la risoluzione dei problemi
<a name="troubleshooting-patterns-solve"></a>

1. **Rivedi la sintassi delle espressioni cron**
   + [Assicurati che la tua espressione cron segua il formato corretto:.](schedule-types.md#cron-based) `Minutes Hours Day-of-month Month Day-of-week Year`
   + Ricorda che EventBridge Scheduler utilizza lo standard cron con un campo Year aggiuntivo.

1. **Comprendi le limitazioni**
   + Non è possibile specificare sia i campi che day-of-month i day-of-week campi contemporaneamente, 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.

1. **Usa la funzione di anteprima della pianificazione**
   + Quando si crea o si modifica una EventBridge pianificazione, Scheduler fornisce un'anteprima dei prossimi 10 tempi di esecuzione.
   + Usa questa anteprima per verificare che la tua pianificazione venga eseguita negli orari previsti.
   + Se l'anteprima non corrisponde alle tue aspettative, rivedi e modifica l'espressione cron.

## Il mio bersaglio viene attivato?
<a name="troubleshooting-trigger-target"></a>

Per confermare se il bersaglio viene attivato:

1. Controlla le CloudWatch metriche:
   + `InvocationAttemptCount`mostra il numero di tentativi di invocazione
   + `TargetErrorCount`indica se qualche chiamata è fallita
   + `TargetErrorThrottledCount`mostra se il bersaglio viene strozzato
   + `InvocationDroppedCount`indica se alcune invocazioni sono state interrotte

1. [Configura una Dead-Letter Queue](configuring-schedule-dlq.md) (DLQ) per acquisire e analizzare eventuali chiamate non riuscite.

## Target basati su modelli e obiettivi universali
<a name="troubleshooting-temp-universal-target"></a>

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 modelli.

Per risolvere questo problema:

1. Verifica se il servizio desiderato è supportato come destinazione basata [su modelli.](managing-targets-templated.md)

1. Se non è supportato, utilizza invece un [target universale](managing-targets-universal.md) e configuralo per effettuare la chiamata API appropriata al tuo servizio.

## Configurazioni di input Universal Target non valide
<a name="troubleshooting-usi-target-input"></a>

Quando si crea una pianificazione con una [destinazione universale](managing-targets-universal.md), 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. È possibile scoprire l'errata configurazione solo dopo aver richiamato la pianificazione, che potrebbe avvenire ore o giorni dopo la creazione.

### Caratteristiche
<a name="troubleshooting-usi-target-input-symptoms"></a>
+ La pianificazione è stata creata senza errori, ma la `TargetErrorCount` CloudWatch metrica aumenta a ogni chiamata.
+ I messaggi DLQ contengono codici di errore del servizio di destinazione (ad esempio, `InvalidParameterValueException` o`ValidationException`), non. `AWS.Scheduler.InternalServerError`
+ Il messaggio DLQ fa riferimento `ERROR_MESSAGE` a errori di convalida dei parametri di input specifici.

### Esempi
<a name="troubleshooting-usi-target-input-examples"></a>

Gli esempi seguenti mostrano configurazioni di input comuni non valide 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 `FunctionName` e la versione `2` nel campo: `1` `Qualifier`

```
{
    "FunctionName": "MyFunction:2",
    "Qualifier": "1"
}
```

Questa pianificazione viene creata correttamente, ma ogni chiamata fallisce. Il messaggio DLQ contiene:
+ `ERROR_CODE`: `InvalidParameterValueException`
+ `ERROR_MESSAGE`: `The derived qualifier from the function name does not match the specified qualifier.`

**Nome di 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`: `ValidationException`
+ `ERROR_MESSAGE`: un errore di convalida che indica che il nome della funzione non corrisponde al modello richiesto.

### Come risolvere
<a name="troubleshooting-usi-target-input-resolve"></a>

1. **Configurare un DLQ.** [Configura sempre una coda di lettere non scritte](configuring-schedule-dlq.md) per le pianificazioni che utilizzano obiettivi universali. Gli attributi del messaggio DLQ (`ERROR_CODE`and`ERROR_MESSAGE`) contengono l'errore specifico restituito dal servizio di destinazione, che identifica il parametro di input non valido.

1. **Convalida i parametri di input rispetto all'API del servizio di destinazione.** Prima di creare una pianificazione, verifica che il codice JSON nel `Input` campo contenga valori validi chiamando direttamente l'API di destinazione. Ad esempio, richiama la tua AWS Lambda funzione con gli stessi parametri utilizzando l' AWS Lambda `Invoke`API per confermare che la richiesta ha esito positivo.

1. **Esegui il test con una pianificazione unica.** Crea una pianificazione unica per verificare che la chiamata di Target abbia esito positivo prima di configurare una pianificazione ricorrente.

1. **Esamina il riferimento all'API del servizio di destinazione.** Controlla il riferimento all'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](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) nella Developer Guide.AWS Lambda *

## Pianifica gli aggiornamenti che attivano chiamate impreviste
<a name="troubleshooting-temp-universal-target-invoke"></a>

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'orario di attivazione originale, è possibile che venga visualizzata una chiamata basata sulla configurazione della pianificazione originale.

## Disabilitazione o attivazione di pianificazioni una tantum
<a name="troubleshooting-temp-universal-target-enable"></a>

Quando si riattiva una pianificazione unica dopo che è scaduta l'ora pianificata originale, la pianificazione può richiamare immediatamente la destinazione. Ciò può verificarsi anche se la pianificazione è stata disabilitata prima dell'ora di esecuzione originale.

Esempio:
+ Ora attuale: 13:15 UTC
+ Pianificazione unica creata per: 13:30 UTC
+ Pianificazione disattivata prima delle 13:30 UTC
+ Pianificazione riattivata alle 14:00 UTC
+ Risultato: il bersaglio può essere richiamato immediatamente dopo la riattivazione