Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Come posso risolvere i problemi relativi alle regole di EventBridge?
Desidero risolvere i problemi relativi alla mia regola di Amazon EventBridge che non attiva la destinazione.
Breve descrizione
Per risolvere i problemi relativi a una regola di EventBridge che non attiva la destinazione, completa i seguenti passaggi:
- Verifica che il relativo evento si sia verificato.
- Verifica che l'evento corrisponda al modello di eventi della regola.
- Verifica che la destinazione abbia elaborato correttamente l'evento.
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.
Verifica che il relativo evento si sia verificato
Esegui queste azioni:
- Se AWS CloudTrail ha acquisito l'evento, analizza i log di CloudTrail. Verifica che la chiamata API sia avvenuta all'ora prevista e che corrisponda a tutti i campi del modello di eventi.
Nota: alcuni servizi AWS sono disponibili solo nella Regione us-east-1. Ad esempio, le chiamate API di AWS Identity and Access Management (AWS IAM) vengono pubblicate solo nella Regione AWS us-east-1. Se hai creato una regola in un'altra Regione, questi eventi non vengono inoltrati a EventBridge e la regola non viene attivata. - La console EventBridge fornisce lo strumento Sandbox che contiene esempi di eventi AWS e dei partner. Utilizza lo strumento per confrontare il modello di eventi con gli eventi AWS, dei partner e personalizzati. Oppure utilizza l'API TestEventPattern per verificare la corrispondenza tra il modello di eventi e l'evento.
- La metrica TriggeredRules di EventBridge indica quando una regola è stata attivata dalla corrispondenza di un evento. Utilizza i timestamp della metrica TriggeredRules per verificare quando si è verificato l'evento.
Esamina le metriche di CloudWatch
Per esaminare le metriche di Amazon CloudWatch relative a una regola di EventBridge, completa i seguenti passaggi:
- Apri la console CloudWatch.
- Seleziona Tutte le metriche.
- Seleziona il namespace AWS/Events.
- Seleziona le metriche TriggeredRules, Invocations e FailedInvocations per la regola.
**Nota:**Puoi visualizzare queste metriche con la statistica SUM.
Verifica che l'evento corrisponda al modello di eventi della regola
Affinché un evento corrisponda, tutti i campi di un modello di eventi devono corrispondere. Utilizza lo strumento Sandbox per testare l'evento desiderato rispetto a un modello di eventi con pochi campi. Utilizza un modello di eventi semplice come il seguente:
{ "source": ["aws.s3"] }
Aumenta la complessità del modello di eventi se ottieni corrispondenze positive. Ogni campo aggiunto al modello di eventi filtra gli eventi a cui corrisponde e restringe il campo di interesse. Per recuperare il modello esatto, gli utenti possono collegare temporaneamente la destinazione di un gruppo CloudWatch Logs o un topic Amazon Simple Notification Service (Amazon SNS). In questo modo si acquisiscono gli eventi inoltrati alle destinazioni o si isolano le configurazioni errate delle destinazioni. Si verifica inoltre che l'evento sia stato consegnato alla destinazione e che il trasformatore di input sia stato configurato correttamente.
In base all'evento consegnato alla destinazione, riscrivi il modello per soddisfare i requisiti dell'utente. Di seguito è riportato un esempio di modello di eventi:
{ "source": [ "aws.s3" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventName": [ "PutObject", "DeleteObject", "DeleteObjects" ], "requestParameters": { "bucketName": [ "123456789012-prod-app1" ], "key": [ { "prefix": "feature1/" }, { "prefix": "feature2/" } ] } } }
Nota: il modello corrisponde a un elenco di chiamate API Amazon Simple Storage Service (Amazon S3) rispetto a un bucket specifico per un oggetto che inizia con feature1 o feature2.
Puoi aggiungere progressivamente campi per isolare quelli che non corrispondono agli eventi.
Verifica che la destinazione abbia elaborato correttamente l'evento
La metrica Invocations pubblica un datapoint quando una regola inoltra un evento a una destinazione che mostra invocazioni riuscite e non riuscite. EventBridge pubblica un datapoint FailedInvocations quando non riesce a invocare la destinazione in modo permanente. Questo datapoint indica problemi relativi alla configurazione della destinazione o problemi legati ad autorizzazioni inadeguate.
EventBridge deve avere le autorizzazioni necessarie per invocare una destinazione. Il ruolo IAM o una policy delle risorse possono concedere autorizzazioni per una destinazione. Quando utilizzi EventBridge per creare regole, la console aggiunge automaticamente le autorizzazioni richieste alle relative risorse.
Nota: configura le autorizzazioni se utilizzi AWS SDK, l'Interfaccia della linea di comando AWS (AWS CLI) o AWS CloudFormation per distribuire la regola.
Se non sono presenti datapoint FailedInvocations, EventBridge ha consegnato correttamente l'evento alla destinazione. Tuttavia, la destinazione potrebbe non funzionare correttamente. Ad esempio, una destinazione AWS Lambda potrebbe generare errori in fase di esecuzione o quando subisce una limitazione (della larghezza di banda della rete). Per ulteriori informazioni, consulta le metriche della destinazione in CloudWatch e tutti i log pertinenti.
Per identificare la causa di un esito FailedInvocations, associa una coda DLQ di Amazon Simple Queue Service (Amazon SQS) alla destinazione.
Per configurare una coda DLQ sulla destinazione, completa i seguenti passaggi:
- Crea una coda SQS.
- Seleziona la regola dell'evento, quindi scegli Modifica.
- Scegli la scheda Destinazioni, quindi scegli Modifica.
- Espandi la scheda Impostazioni aggiuntive della destinazione per cui desideri impostare la policy di ripetizione.
- Nella sezione Coda DLQ, seleziona un'opzione a seconda che la coda DLQ SQS si trovi nello stesso account AWS o in un account diverso.
- Scegli Select an Amazon SQS queue in the current AWS account to use as the dead-letter queue (Seleziona una coda Amazon SQS nell'account AWS corrente da utilizzare come coda DLQ), quindi seleziona il nome della coda SQS.
- Seleziona Aggiorna.
Se sono presenti invocazioni non riuscite per la regola, la coda DLQ registra il messaggio di errore. Per esaminare l'errore, completa i seguenti passaggi:
- Dalla coda SQS, scegli Invio e ricezione di messaggi.
- Scegli Esegui il polling dei messaggi.
- Seleziona un messaggio di errore, quindi vai alla sezione Attributi.
Di seguito è riportato un esempio di messaggio proveniente da una coda DLQ da cui si evince che EventBridge non ha le autorizzazioni necessarie per invocare la destinazione Lambda:
"MessageAttributes": { "ERROR_CODE": { "StringValue": "NO_PERMISSIONS", "DataType": "String" }, "ERROR_MESSAGE": { "StringValue": "User: events.amazonaws.com is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-east-1:123456789012:function:Hello_World because no resource-based policy allows the lambda:InvokeFunction action (Service: AWSLambdaInternal; Status Code: 403; Error Code: AccessDeniedException; Request ID: 6635c4c4-9c54-416e-bc40-ef25bad0aca5; Proxy: null)", "DataType": "String" },
Informazioni correlate
Risoluzione dei problemi di Amazon EventBridge
Perché la mia funzione Lambda non è stata attivata dalla mia regola EventBridge?
Come posso risolvere gli errori che riscontro nel Pianificatore EventBridge?
Utilizzo di code DLQ per elaborare eventi non consegnati in EventBridge
- Argomenti
- Application IntegrationServerless
- Lingua
- Italiano
