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

5 minuti di lettura
0

Voglio risolvere il problema per cui la mia regola Amazon EventBridge non si è attivata o non ha richiamato l'obiettivo come previsto.

Breve descrizione

Utilizza questo flusso di lavoro di convalida per isolare il problema:

  1. Verifica che si sia verificato l'evento pertinente (ad esempio, una chiamata all'API AWS CloudTrail o il caricamento di un oggetto Simple Storage Service (Amazon S3)).
  2. Verifica che l'evento corrisponda al modello di evento della regola.
  3. Verifica che la destinazione abbia elaborato correttamente l'evento (ad esempio, l'evento ha richiamato una funzione AWS Lambda).

Risoluzione

Utilizza questi passaggi per risolvere i problemi relativi alle regole di Amazon EventBridge:

Convalidare un evento in arrivo

Convalida l'evento in arrivo utilizzando uno o più di questi metodi:

  • Se AWS CloudTrail ha catturato 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 pattern di eventi.
    Nota: alcuni servizi AWS sono disponibili solo nella regione us-east-1. Ad esempio, le chiamate API (IAM) di AWS Identity and Access Management vengono pubblicate solo nella regione us-east-1. Se una regola per la corrispondenza degli eventi IAM è stata creata in un'altra regione, questi eventi non vengono inoltrati a EventBridge. Di conseguenza, la regola non viene attivata da questi eventi.
  • La console Amazon EventBridge fornisce lo strumento EventBridge Sandbox che contiene esempi di eventi AWS e dei partner. Usa lo strumento per confrontare il modello di evento proposto con gli eventi AWS, dei partner e personalizzati. Oppure, utilizza l'API TestEventPattern per confermare la corrispondenza tra il modello di evento e l'evento.
  • EventBridge fornisce metriche TriggeredRules per segnalare una regola per gli eventi abbinati con successo. I timestamp dei datapoint TriggeredRules mostrano quando si è verificato l'evento.

Rivedere i parametri di CloudWatch

Segui questi passaggi per rivedere i parametri di CloudWatch per una regola Amazon EventBridge:

  1. Apri la Console CloudWatch.
  2. Seleziona Tutte le metriche.
  3. Seleziona lo spazio dei nomi AWS/Events.
  4. Seleziona le metriche TriggerRules, Invocations e FailedInvocations (se disponibili) per la regola in questione. Puoi visualizzare queste metriche con la statistica SUM.

Convalidare il modello di evento

Per abbinare un evento, tutti i campi di un modello di evento devono corrispondere. Utilizza lo strumento Sandbox per testare l'evento desiderato rispetto a un modello di evento con pochi campi. Ad esempio, usa un modello di eventi semplice come quello indicato qui:

{
    "source": ["aws.s3"]
}

Aumenta la complessità del modello di evento se si ottengono corrispondenze positive. Ogni campo aggiunto al modello di evento filtra gli eventi a cui corrisponde e restringe il campo di interesse.

Di seguito è riportato un esempio di pattern di eventi. Il pattern corrisponde a un elenco di chiamate API Amazon S3 contro un bucket specifico per un oggetto che inizia con una delle due stringhe: feature1 e feature2.

{
  "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/"
        }
      ]
    }
  }
}

Aggiungi campi gradualmente per isolare quelli che non corrispondono agli eventi desiderati.

Convalida l'obiettivo

  • La metrica Invocations pubblica un datapoint quando una regola inoltra un evento a una destinazione. Indica le invocazioni riuscite e quelle fallite.

  • Amazon EventBridge emette un datapoint FailedInvocations quando non riesce a richiamare il target in modo permanente. FailedInvocations indica problemi con la configurazione della destinazione o problemi derivanti da autorizzazioni inadeguate.

  • Ad Amazon EventBridge devono essere concesse le autorizzazioni appropriate per richiamare la destinazione. A seconda dell'obiettivo, il ruolo AWS Identity and Access Management (IAM) o una policy delle risorse concede le autorizzazioni.

  • Quando crei regole utilizzando la console Amazon EventBridge, questa aggiunge automaticamente le autorizzazioni necessarie alle risorse correlate.
    Nota: configura esplicitamente le autorizzazioni se distribuisci la regola usando AWS SDK, AWS Command Line Interface (AWS CLI) o AWS CloudFormation.

  • Se non ci sono dati FailedInvocations, Amazon EventBridge ha consegnato l'evento al target con successo. Tuttavia, l'obiettivo potrebbe non funzionare correttamente. Ad esempio, un target AWS Lambda potrebbe riscontrare errori durante l'esecuzione o durante il throttling. Per ulteriori informazioni, consulta i parametri Amazon CloudWatch del target e tutti i log pertinenti.

  • Associa una coda DLQ di Amazon Simple Queue Service (Amazon SQS) alla destinazione. Gli eventi che non sono stati consegnati alla destinazione vengono inviati alla coda DLQ. È possibile utilizzare questo metodo per ottenere maggiori dettagli sugli eventi non riusciti. Esamina il seguente frammento di messaggio recuperato dalla coda DLQ per un evento non riuscito:

    "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"
                    },

    Il messaggio mostra che il servizio Amazon EventBridge non dispone delle autorizzazioni necessarie per richiamare il target Lambda.

  • Le regole di Amazon EventBridge supportano fino a cinque obiettivi. Allega temporaneamente un target di gruppo Amazon CloudWatch Logs o un argomento Amazon Simple Notification Service (Amazon SNS). In questo modo si catturano gli eventi inoltrati ai target o si isolano le configurazioni errate delle destinazioni. Il log o l'argomento fornisce i seguenti servizi:

  • Conferma il corpo dell'evento e i campi specifici che devono essere analizzati ed elaborati dalla destinazione

  • Conferma che l'evento è stato consegnato alla destinazione

  • Conferma che il trasformatore d'ingresso è stato configurato correttamente

Informazioni correlate

Risoluzione dei problemi di Amazon EventBridge

Perché la mia funzione Lambda non è stata attivata dalla mia regola CloudWatch Events?

Come faccio a risolvere gli errori nel Pianificatore Amazon EventBridge?

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa