Bewährte Methoden für EventBridge Amazon-Event-Muster - Amazon EventBridge

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bewährte Methoden für EventBridge Amazon-Event-Muster

Im Folgenden finden Sie einige bewährte Methoden, die Sie bei der Definition von Ereignismustern in Ihren Event-Bus-Regeln berücksichtigen sollten.

Vermeiden des Schreibens von Endlosschleifen

In ist es möglich EventBridge, Regeln zu erstellen, die zu Endlosschleifen führen, bei denen eine Regel wiederholt ausgelöst wird. Eine Regel könnte beispielsweise erkennen, welche Änderungen in einem S3-Bucket vorgenommen ACLs wurden, und die Software veranlassen, sie in den gewünschten Zustand zu versetzen. Wenn die Regel nicht sorgfältig geschrieben wurde, löst die nachfolgende Änderung die ACLs Regel erneut aus, wodurch eine Endlosschleife entsteht.

Zur Vermeidung dieser Probleme sollten Sie die Ereignismuster für Ihre Regeln so präzise wie möglich schreiben, sodass sie nur den Ereignissen entsprechen, die Sie tatsächlich an das Ziel senden möchten. Im obigen Beispiel würden Sie ein Ereignismuster erstellen, das den Ereignissen entspricht, sodass die ausgelösten Aktionen nicht dieselbe Regel erneut auslösen. Erstellen Sie in Ihrer Regel beispielsweise ein Ereignismuster, das Ereignisse nur dann berücksichtigt, wenn ACLs sich herausstellt, dass sie sich in einem schlechten Zustand befinden, und nicht erst nach einer Änderung. Weitere Informationen finden Sie unter Möglichst präzises Gestalten von Ereignismustern und Definieren Sie Ihre Ereignismuster so, dass sie Aktualisierungen der Ereignisquellen berücksichtigen.

Eine Endlosschleife kann schnell höhere Gebühren als erwartet verursachen. Dies kann auch zu Drosselung und verzögerter Ereigniszustellung führen. Sie können die Obergrenze Ihrer Aufrufraten überwachen, um vor unerwarteten Volumenspitzen gewarnt zu werden.

Verwenden Sie die Budgetierung, um Sie zu warnen, wenn die Gebühren das von Ihnen angegebene Limit überschreiten. Weitere Informationen finden Sie unter Verwalten der Kosten mit Budgets.

Möglichst präzises Gestalten von Ereignismustern

Je genauer Ihr Ereignismuster ist, desto wahrscheinlicher ist es, dass es nur mit den tatsächlich gewünschten Ereignissen übereinstimmt und unerwartete Übereinstimmungen vermieden werden, wenn neue Ereignisse zu einer Ereignisquelle hinzugefügt oder bestehende Ereignisse mit neuen Eigenschaften aktualisiert werden.

Ereignismuster können Filter enthalten, die einen Abgleich auf Folgendes durchführen:

  • Ereignismetadaten über das Ereignis, wie source, detail-type, account oder region.

  • Ereignisdaten, d. h. die Felder innerhalb des detail-Objekts.

  • Der Inhalt des Ereignisses oder die tatsächlichen Werte der Felder innerhalb des detail-Objekts.

Die meisten Muster sind einfach, z. B. nur die Angabe von source- und detail-type-Filtern. Zu den EventBridge Mustern gehört jedoch die Flexibilität, nach jedem Schlüssel oder Wert des Ereignisses zu filtern. Darüber hinaus können Sie Inhaltsfilter wie prefix- und suffix-Filter anwenden, um die Präzision Ihrer Muster zu verbessern. Weitere Informationen finden Sie unter Verwendung von Vergleichsoperatoren in EventBridge Amazon-Ereignismustern.

Geben Sie die Ereignisquelle und den Detailtyp als Filter an.

Sie können das Generieren von Endlosschleifen und das Abgleichen unerwünschter Ereignisse reduzieren, indem Sie Ihre Ereignismuster mithilfe der source- und detail-type-Metadatenfelder präzisieren.

Wenn Sie bestimmte Werte in zwei oder mehr Feldern abgleichen müssen, verwenden Sie den $or-Vergleichsoperator, anstatt alle möglichen Werte in einem einzigen Werte-Array aufzulisten.

Für Ereignisse, die per übermittelt werden AWS CloudTrail, empfehlen wir, das eventName Feld als Filter zu verwenden.

Das folgende Beispiel für ein Ereignismuster entspricht CreateQueue oder SetQueueAttributes aus dem Amazon Simple Queue Service Service CreateKey oder DisableKeyRotation Ereignissen aus dem AWS Key Management Service Service.

{ "detail-type": ["AWS API Call via CloudTrail"], "$or": [{ "source": [ "aws.sqs" ], "detail": { "eventName": [ "CreateQueue", "SetQueueAttributes" ] } }, { "source": [ "aws.kms" ], "detail": { "eventName": [ "CreateKey", "DisableKeyRotation" ] } } ] }

Angeben von Konto und Region als Filter

Wenn Sie region- und account-Felder in Ihr Ereignismuster aufnehmen, können Sie den konto- oder regionsübergreifenden Ereignisabgleich einschränken.

Angeben von Inhaltsfiltern

Die inhaltsbasierte Filterung kann dazu beitragen, die Genauigkeit von Ereignismustern zu verbessern und gleichzeitig die Länge des Ereignismusters auf ein Minimum zu beschränken. Beispielsweise kann ein Abgleich auf der Grundlage eines numerischen Bereichs hilfreich sein, anstatt alle möglichen numerischen Werte aufzulisten.

Weitere Informationen finden Sie unter Verwendung von Vergleichsoperatoren in EventBridge Amazon-Ereignismustern.

Definieren Sie Ihre Ereignismuster so, dass sie Aktualisierungen der Ereignisquellen berücksichtigen

Bei der Erstellung von Ereignismustern sollten Sie berücksichtigen, dass sich Ereignisschemata und Ereignis-Domains im Laufe der Zeit weiterentwickeln und erweitern können. Auch hier hilft es Ihnen, Ihre Ereignismuster so präzise wie möglich zu gestalten, um unerwartete Übereinstimmungen zu vermeiden, wenn sich die Ereignisquelle ändert oder erweitert.

Nehmen wir zum Beispiel an, Sie führen einen Abgleich mit Ereignissen aus einem neuen Mikroservice durch, der Ereignisse im Zusammenhang mit Zahlungen veröffentlicht. Anfänglich verwendet der Service die Domain acme.payments und veröffentlicht ein einzelnes Ereignis, Payment accepted:

{ "detail-type": "Payment accepted", "source": "acme.payments", "detail": { "type": "credit", "amount": "100", "date": "2023-06-10", "currency": "USD" } } }

An dieser Stelle könnten Sie ein einfaches Ereignismuster erstellen, das „Zahlung akzeptiert“-Ereignissen entspricht:

{ “source” : “acme.payments” }

Nehmen wir jedoch an, dass der Service später ein neues Ereignis für abgelehnte Zahlungen einführt:

{ "detail-type": "Payment rejected", "source": "acme.payments", "detail": { } }

In diesem Fall wird das einfache Ereignismuster, das Sie erstellt haben, nun mit beiden Payment rejected- und Payment accepted-Ereignissen abgeglichen. EventBridge leitet beide Ereignistypen zur Verarbeitung an das angegebene Ziel weiter, was zu Verarbeitungsfehlern und zusätzlichen Verarbeitungskosten führen kann.

Wenn Sie Ihr Ereignismuster nur auf Payment accepted-Ereignisse beschränken möchten, sollten Sie mindestens beide source und detail-type angeben:

{ "detail-type": "Payment accepted", "source": "acme.payments" } }

Sie können in Ihrem Ereignismuster auch Konto und Region angeben, um weiter einzuschränken, wann konto- oder regionsübergreifende Ereignisse dieser Regel entsprechen.

{ "account": "012345678910", "source": "acme.payments", "region": "AWS-Region", "detail-type": "Payment accepted" }

Überprüfen von Ereignismustern

Wenn Sie sicherstellen möchten, dass die Regeln mit den gewünschten Ereignissen übereinstimmen, empfehlen wir Ihnen dringend, Ihre Ereignismuster zu überprüfen. Sie können Ihre Ereignismuster mit der EventBridge Konsole überprüfen oderAPI: