Come posso risolvere i problemi relativi alle attività programmate in Amazon ECS?

Ultimo aggiornamento: 31/03/2022

Ho programmato l'esecuzione periodica dell'attività Amazon Elastic Container Service (Amazon ECS). Tuttavia, la mia attività Amazon ECS non è attivato. Non ricevo i registri di esecuzione o la cronologia delle attività nel cluster.

Soluzione

Quando utilizzi un'attività programmata Amazon ECS, Amazon CloudWatch Events chiama l'API RunTask su Amazon ECS per eseguire le attività per conto tuo.

L'attività programmata Amazon ECS potrebbe non essere richiamata per i seguenti motivi:

  • L'ora o l'espressione cron di Amazon EventBridge non è configurata correttamente.
  • La regola EventBridge non richiama la destinazione.
  • L'esecuzione dell'API RunTask non è riuscita.
  • Si è verificata l'uscita del container a causa di problemi dell'applicazione o limiti delle risorse.

Controlla se l'espressione cron di EventBridge è configurata correttamente

Per ottenere l'espressione cron di EventBridge, esegui il seguente comando AWS Command Line Interface (AWS CLI):

$ aws events describe-rule --name "example-rule" --region example-region

Nell'output del comando, puoi visualizzare l'espressione cron di EventBridge configurata nel parametro ScheduleExpression. Assicurati di aver impostato la programmazione per la regola nel fuso orario UTC+0.

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Controlla se la regola non richiama il target

Utilizza i parametri di Amazon CloudWatch generati da EventBridge per visualizzare le prestazioni delle regole. I data point di Invocation indicano che la destinazione è stata richiamata dalla regola. Se sono presenti i dati point FailedInvocations, allora è presente un problema con il richiamo della destinazione. FailedInvocations rappresenta un errore permanente e potrebbe essere il risultato di autorizzazioni errate o di una configurazione errata della destinazione.

Per esaminare i parametri di CloudWatch per la regola EventBridge, procedi come segue:

  1. Apri la Console CloudWatch.
  2. Nel pannello di navigazione, scegli Metrics (Parametri), quindi scegli All metrics (Tutte le metriche).
  3. Scegli Events (Eventi).
  4. Scegli By Rule Name (Per nome regola).
  5. Seleziona i parametri TriggerRules, Invocations e FailedInvocations (se disponibili) per la regola EventBridge configurata per eseguire l'attività ECS.
  6. Scegli la scheda Graphed metrics (Parametri grafici).
  7. Per tutti i parametri elencati, seleziona SUM (SOMMA) per Statistic (Statistica).

Se sono presenti punti dati FailedInvocations, potrebbe essere presente un problema relativo alle autorizzazioni delle destinazioni inadeguate. Assicurati che EventBridge abbia l'accesso per richiamare l'attività ECS. Verifica che il ruolo AWS Identity and Access Management (IAM) di EventBridge disponga delle autorizzazioni richieste. Per ulteriori informazioni, consulta Ruolo IAM di Amazon ECS CloudWatch Events.

Controlla se l'operazione RunTask non è stata eseguita

Per verificare se l'esecuzione dell'API RunTask è riuscita, cerca RunTask nella Cronologia degli eventi di AWS CloudTrail nell'intervallo di tempo in cui l'attività ECS programmata doveva essere richiamata.

Per scoprire se l'attività programmata non è stata richiamata perché l'operazione RunTask non è riuscita, procedi come segue:

  1. Apri la Console AWS CloudTrail.
  2. Nel pennello di navigazione, scegli Event history (Cronologia eventi).
  3. Nella pagina Cronologia eventi, per Lookup attributes (Attributi di ricerca), seleziona Event name (Nome evento).
  4. Per Enter an event name (Inserisci un nome evento), inserisci RunTask.
  5. Scegli l'intervallo di tempo nel filtro dell'intervallo di tempo in base a quando era prevista l'esecuzione dell'attività ECS programmata.
    Nota: i valori preimpostati per l'intervallo di tempo sono di 30 minuti, 1 ora, 3 ore e 12 ore. Per specificare un intervallo di tempo personalizzato, scegli Custom (Personalizza).
  6. Dall'elenco dei risultati, scegli l'evento che desideri visualizzare.
  7. Scorri fino a Registro eventi nella pagina Dettagli per visualizzare il registro degli eventi JSON.
  8. Cerca gli elementi errorMessage o responseElements.failures.reason nel registro degli eventi JSON.
    Questi elementi nella cronologia degli eventi JSON mostrano il motivo per cui l'attività ECS programmata non viene richiamata.

Per esempi di motivi di errore dell'API RunTask e delle relative cause, consulta Motivi di errore dell'API.

Controlla se il container è uscito dopo l'esecuzione dell'attività

Le attività Amazon ECS potrebbero essere interrotte anche dopo l'esecuzione dell'attività a causa di problemi dell'applicazione o limiti delle risorse. Per ulteriori informazioni, consulta Come posso risolvere i problemi relativi ai container in uscita nelle mie attività Amazon ECS?


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?