Salta al contenuto

Come posso risolvere i problemi di una regola EventBridge in Amazon ECS?

4 minuti di lettura
0

La mia regola Amazon EventBridge non invoca la mia attività Amazon Elastic Container Service (Amazon ECS).

Breve descrizione

Quando utilizzi una regola EventBridge per invocare un'attività Amazon ECS, EventBridge chiama l'API RunTask per eseguire le attività.

La regola EventBridge potrebbe non riuscire a invocare l'attività ECS per i seguenti motivi:

  • La configurazione della regola EventBridge non è corretta.
  • La configurazione della destinazione della regola EventBridge non è corretta.
  • Il ruolo AWS Identity and Management (AWS IAM) non ha le autorizzazioni per eseguire le attività.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Controlla la configurazione della regola EventBridge

Controlla se la regola EventBridge è nello stato ENABLED. Se lo stato è DISABLED, riattiva la regola ed esegui alcuni test per determinare se la regola riesce a creare un'attività.

Per verificare lo stato della regola, puoi utilizzare la console EventBridge o AWS CLI.

Console EventBridge

Completa i seguenti passaggi:

  1. Apri la console EventBridge.
  2. Nel pannello di navigazione, scegli Regole.
  3. In Seleziona bus di eventi, seleziona il router di eventi associato alla regola.
  4. Scegli la regola per visualizzarne lo stato.

AWS CLI

Esegui questo comando describe-rule:

aws events describe-rule --name "DailyLambdaFunction" --region "us-east-1"

Nota: sostituisci us-east-1 con la tua Regione AWS.

Nell'output del comando, controlla il parametro State per identificare lo stato della regola. Se lo stato della regola è DISABLED, controlla i log di AWS CloudTrail per identificare il motivo per cui è stata disattivata.

Assicurati che il modello di eventi sia corretto e corrisponda agli eventi che provengono dall'origine dell'evento. Per verificare il modello di eventi, utilizza EventBridge Sandbox.

Controlla la configurazione della destinazione della regola EventBridge

Intraprendi le seguenti azioni:

  • Controlla i parametri di configurazione ECS Cluster, TaskDefinition e Network configuration della destinazione della regola EventBridge per assicurarti che siano corretti.
  • Verifica che il ruolo IAM di EventBridge abbia le autorizzazioni necessarie per eseguire l'attività.

Utilizza le seguenti metriche di Amazon CloudWatch per comprendere meglio il problema:

  • Controlla la metrica TriggeredRules. CloudWatch mostra la metrica solo quando un evento attiva una regola.
  • Utilizza la metrica Invocations per verificare quante volte EventBridge ha invocato una regola e poi ha tentato di a eseguire l'attività ECS.
  • Utilizza la metrica FailedInvocations per determinare il numero di invocazioni non riuscite. Se il valore è alto, la destinazione potrebbe essere configurata in modo errato.
    Nota: la statistica Sum potrebbe essere la statistica più utile per verificare la metrica FailedInvocations.

Determina il motivo per il quale la chiamata API RunTask ha avuto esito negativo

Completa i seguenti passaggi:

  1. Apri la console CloudTrail.
  2. Nel pannello di navigazione, scegli Cronologia eventi.
  3. Nell'elenco a discesa Attributi di ricerca, scegli Nome evento.
  4. Nella casella di testo, inserisci RunTask per filtrare gli eventi correlati all'API RunTask.
  5. Filtra l'intervallo di tempo in base al runtime previsto dell'attività ECS.
    Nota: i valori predefiniti per l'intervallo di tempo sono 30 minuti, 1 ora, 3 ore e 12 ore. Per specificare un intervallo di tempo personalizzato, scegli Intervallo assoluto.
  6. Scegli l'evento, quindi esamina il record dell'evento JSON nella sezione Record di eventi. Cerca un motivo dell'errore in ErrorCode e ErrorMessage.

Utilizza una coda DLQ in EventBridge

Le regole EventBridge supportano le code DLQ. Le code DLQ utilizzano Amazon Simple Queue Service (Amazon SQS) per memorizzare gli eventi di invocazione con esito negativo in una coda standard specificata dall'utente. Quando la regola dell'evento non invoca la sua destinazione, EventBridge distribuisce un payload JSON che contiene i dettagli dell'invocazione e le risposte della destinazione alla coda DLQ. Puoi analizzare l’esito negativo della distribuzione dell’evento nella coda DLQ per risolvere il problema.

Informazioni correlate

Come faccio a risolvere i problemi relativi alle regole di Amazon EventBridge?

How can I use a dead-letter queue to troubleshoot FailedInvocations for EventBridge rules? (Come posso utilizzare una coda DLQ per risolvere l’errore FailedInvocations di una regola EventBridge?)

AWS UFFICIALEAggiornata 10 mesi fa