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.
Problembehebung bei Amazon EventBridge
Sie können die Themen in diesem Abschnitt verwenden, um EventBridge Amazon-Probleme zu beheben.
Tipp
Um zu überprüfen, ob Ihre Ereignismuster den erwarteten Ereignissen entsprechen, können Sie die EventBridge Sandbox verwenden, um Ereignismuster anhand von Beispielereignissen zu testen. Weitere Informationen finden Sie unter Testen von Ereignismustern mit der EventBridge Sandbox.
Themen
Meine Regel wurde ausgeführt, aber meine Lambda-Funktion wurde nicht aufgerufen
Meine Regel wurde nicht zu dem Zeitpunkt ausgeführt, den ich im ScheduleExpression angegeben habe.
Meine Regel wurde nicht zum erwarteten Zeitpunkt ausgeführt.
Meine Regel stimmt überein AWS globale Service-API-Aufrufe, aber sie wurde nicht ausgeführt
Die mit meiner Regel verknüpfte IAM-Rolle wird ignoriert, wenn die Regel ausgeführt wird.
Die Bereitstellung meines Ereignisses an das Ziel verzögerte sich.
Meine Regel wurde als Antwort auf ein Ereignis mehr als einmal ausgeführt.
Meine Ereignisse werden nicht in die Amazon SQS-Zielwarteschlange ausgeliefert
Welche IAM-Bedingungsschlüssel kann ich verwenden? EventBridge
Meine Regel wurde ausgeführt, aber meine Lambda-Funktion wurde nicht aufgerufen
Ein Grund dafür, dass Ihre Lambda-Funktion möglicherweise nicht ausgeführt wird, liegt darin, dass Sie nicht über die richtigen Berechtigungen verfügen.
So überprüfen Sie Ihre Berechtigungen für die Lambda-Funktion
-
Führen Sie mithilfe von den AWS CLI den den folgenden Befehl mit Ihrer Funktion und Ihrer AWS Region aus:
aws lambda get-policy --function-nameMyFunction--regionus-east-1Die Ausgabe sollte folgendermaßen aussehen.
-
Wenn folgende Meldung angezeigt wird.
A client error (ResourceNotFoundException) occurred when calling the GetPolicy operation: The resource you requested does not exist.Oder wenn Ihnen die Ausgabe zwar angezeigt wird, Sie aber events.amazonaws.com nicht als vertrauenswürdige Entität in der Richtlinie finden können, führen Sie den folgenden Befehl aus:
aws lambda add-permission \ --function-nameMyFunction\ --statement-idMyId\ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/MyRule -
Wenn die Ausgabe ein
SourceAccount-Feld enthält, müssen Sie es entfernen. EineSourceAccountEinstellung EventBridge verhindert, dass die Funktion aufgerufen werden kann.
Anmerkung
Wenn die Richtlinie falsch ist, können Sie die Regel in der EventBridge Konsole bearbeiten, indem Sie sie entfernen und dann wieder zur Regel hinzufügen. Die EventBridge Konsole legt dann die richtigen Berechtigungen für das Ziel fest.
Wenn Sie einen bestimmten Lambda-Alias oder eine spezielle Version verwenden, fügen Sie die --qualifier-Parameter in den Befehlen aws lambda get-policy und aws lambda add-permission hinzu, wie im folgenden Befehl gezeigt.
aws lambda add-permission \ --function-nameMyFunction\ --statement-idMyId\ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/MyRule--qualifieralias or version
Ich habe gerade eine Regel erstellt oder bearbeitet, sie stimmt aber nicht mit einem Testereignis überein.
Wenn Sie an einer Regel oder deren Zielen Änderungen vornehmen, stimmen die Einstellungen der eingehenden Ereignisse möglicherweise nicht sofort mit den aktualisierten Regeln überein. Warten Sie einen Augenblick, bis die Änderungen wirksam werden.
Wenn die Ereignisse nach kurzer Zeit immer noch nicht übereinstimmen, überprüfen Sie die CloudWatch Metriken TriggeredRules und FailedInvocations Ihre Regel. Invocations Weitere Informationen zu diesen Metriken finden Sie unter Amazon überwachen EventBridge.
Wenn die Regel einem Ereignis eines AWS Dienstes entsprechen soll, gehen Sie wie folgt vor:
Verwenden Sie die Aktion
TestEventPattern, um zu testen, ob das Ereignismuster Ihrer Regel mit einem Testereignis übereinstimmt. Weitere Informationen finden Sie TestEventPattern in der EventBridge Amazon-API-Referenz.Verwenden Sie die Sandbox auf der EventBridge Konsole
.
Meine Regel wurde nicht zu dem Zeitpunkt ausgeführt, den ich im ScheduleExpression angegeben habe.
Stellen Sie sicher, dass Sie den Zeitplan für die Regel auf die Zeitzone UTC+0 eingestellt haben. Wenn der ScheduleExpression korrekt ist, befolgen Sie die Schritte unter Ich habe gerade eine Regel erstellt oder bearbeitet, sie stimmt aber nicht mit einem Testereignis überein..
Meine Regel wurde nicht zum erwarteten Zeitpunkt ausgeführt.
EventBridge führt Regeln innerhalb einer Minute nach der von Ihnen festgelegten Startzeit aus. Der Countdown beginnt zu laufen, sobald Sie die Regel erstellen.
Anmerkung
Geplante Regeln weisen die Zustellungsart guaranteed auf, was bedeutet, dass Ereignisse für jeden erwarteten Zeitpunkt mindestens einmal ausgelöst werden.
Sie können einen Cron-Ausdruck verwenden, um Ziele zu einem bestimmten Zeitpunkt aufzurufen. Wenn Sie eine Regel erstellen möchten, die alle vier Stunden in der 0. Minute ausgeführt wird, gehen Sie wie folgt vor:
-
In der EventBridge Konsole verwenden Sie den Cron-Ausdruck
0 0/4 * * ? *. -
Wenn Sie den verwenden AWS CLI, verwenden Sie den Ausdruck
cron(0 0/4 * * ? *).
Um beispielsweise mithilfe des eine Regel mit dem Namen zu erstellenTestRule, die alle 4 Stunden ausgeführt wird AWS CLI, verwenden Sie den folgenden Befehl.
aws events put-rule --nameTestRule--schedule-expression 'cron(0 0/4 * * ? *)'
Wenn Sie eine Regel alle fünf Minuten ausführen möchten, verwenden Sie den folgenden Cron-Ausdruck.
aws events put-rule --nameTestRule--schedule-expression 'cron(0/5 * * * ? *)'
Die beste Auflösung für eine EventBridge Regel, die einen Cron-Ausdruck verwendet, ist eine Minute. Die geplante Regel wird innerhalb der angegebenen Minute ausgeführt, aber nicht exakt in der 0. Sekunde.
Da EventBridge Zieldienste verteilt sind, kann es zwischen der Ausführung der geplanten Regel und dem Zeitpunkt, zu dem der Zieldienst die Aktion für die Zielressource ausführt, eine Verzögerung von mehreren Sekunden geben.
Meine Regel stimmt überein AWS globale Service-API-Aufrufe, aber sie wurde nicht ausgeführt
AWS globale Dienste wie IAM und Amazon Route 53 sind nur in der Region USA Ost (Nord-Virginia) verfügbar, sodass Ereignisse aus AWS API-Aufrufen von globalen Diensten nur in dieser Region verfügbar sind. Weitere Informationen finden Sie unter Ereignisse von AWS service.
Die mit meiner Regel verknüpfte IAM-Rolle wird ignoriert, wenn die Regel ausgeführt wird.
EventBridge unterstützt IAM-Ausführungsrollen für alle Zieltypen. Wenn die IAM-Rolle Ihrer Regel ignoriert zu werden scheint, überprüfen Sie, ob die Vertrauensrichtlinie der Rolle ihre Übernahme zulässt events.amazonaws.com und ob die Berechtigungsrichtlinie die erforderliche Aktion für das Ziel gewährt (z. B. lambda:InvokeFunctionsns:Publish, odersqs:SendMessage).
Wenn für Lambda-, Amazon SNS- und Amazon SQS-Ziele keine IAM-Ausführungsrolle für das Ziel konfiguriert ist, wird auf ressourcenbasierte Berechtigungen für die EventBridge Zielressource zurückgegriffen.
Stellen Sie sicher, dass Ihre regionalen AWS STS Endpunkte aktiviert sind, damit sie sie verwenden EventBridge können, wenn Sie die von Ihnen angegebene IAM-Rolle übernehmen. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren AWS STS in einer AWS Region im IAM-Benutzerhandbuch.
Meine Regel verfügt über ein Ereignismuster, das einer Ressource entsprechen soll, aber es stimmen keine Ereignisse überein.
Die meisten Dienste AWS behandeln einen Doppelpunkt (:) oder Schrägstrich (/) als dasselbe Zeichen in Amazon-Ressourcennamen (ARNs). In den Ereignismustern und Regeln EventBridge wird jedoch eine exakte Übereinstimmung verwendet. Regeln bei Amazon EventBridge Verwenden Sie also die richtigen ARN-Zeichen zum Erstellen von Ereignismustern, sodass sie mit der ARN-Syntax in dem Ereignis übereinstimmen.
Bei einigen Ereignissen, wie z. B. AWS API-Aufrufereignissen von CloudTrail, ist im Ressourcenfeld nichts enthalten.
Die Bereitstellung meines Ereignisses an das Ziel verzögerte sich.
EventBridge versucht, ein Ereignis bis zu 24 Stunden lang an ein Ziel weiterzuleiten, außer in Szenarien, in denen Ihre Zielressource begrenzt ist. Der erste Versuch erfolgt, sobald das Ereignis im Ereignis-Stream eintrifft. Wenn der Zieldienst Probleme hat, verschiebt er EventBridge automatisch den Termin für eine weitere Lieferung. Wenn seit dem Eintreffen des Ereignisses 24 Stunden vergangen sind, EventBridge stoppt der Versuch, das Ereignis zuzustellen, und veröffentlicht die FailedInvocations Metrik in CloudWatch. Wir empfehlen, dass Sie eine Warteschlange für unzustellbare Nachrichten einrichten, um Ereignisse zu speichern, die nicht erfolgreich an ein Ziel übermittelt werden konnten. Weitere Informationen finden Sie unter Verwenden Sie Warteschlangen mit unzustellbaren Nachrichten zur Verarbeitung nicht zugestellter Ereignisse in EventBridge.
Einige Ereignisse wurden nie in mein Ziel ausgeliefert
Wenn das Ziel einer EventBridge Regel für einen längeren Zeitraum eingeschränkt ist, wird die Übermittlung EventBridge möglicherweise nicht erneut versucht. Wenn das Ziel beispielsweise nicht für die Verarbeitung des eingehenden Veranstaltungen bei Amazon EventBridge Ereignisdatenverkehrs eingerichtet ist und der Zieldienst Anfragen, die in Ihrem Namen gestellt werden, einschränkt, wird die EventBridge Zustellung möglicherweise nicht erneut EventBridge versucht.
Meine Regel wurde als Antwort auf ein Ereignis mehr als einmal ausgeführt.
In seltenen Fällen kann die gleiche Regel mehr als einmal für ein einzelnes Ereignis oder eine geplante Zeit ausgeführt werden, oder dasselbe Ziel kann für eine bestimmte ausgelöste Regel mehr als einmal aufgerufen werden.
Verhindern von Endlosschleifen
In ist es möglich EventBridge, eine Regel zu erstellen, die zu Endlosschleifen führt, in denen die Regel wiederholt ausgeführt wird. Wenn Sie über eine Regel verfügen, die eine Endlosschleife verursacht, schreiben Sie sie so um, dass die Aktionen, die die Regel ausführt, nicht derselben Regel entsprechen.
Beispielsweise verursacht eine Regel, die erkennt, dass sich ACLs in einem Amazon-S3-Bucket geändert haben, und dann Software ausführt, um sie in einen neuen Zustand zu versetzen, eine Endlosschleife. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Regel so umzuschreiben, dass sie nur mit ACLs übereinstimmt, die sich in einem fehlerhaften Zustand befinden.
Eine Endlosschleife kann schnell höhere Gebühren als erwartet verursachen. Wir empfehlen, dass Sie Budgetierung verwenden, um Warnungen zu erhalten, wenn die Gebühren das von Ihnen angegebene Limit überschreiten. Weitere Informationen finden Sie unter Verwalten der Kosten mit Budgets.
Meine Ereignisse werden nicht in die Amazon SQS-Zielwarteschlange ausgeliefert
Wenn Ihre Amazon-SQS-Warteschlange verschlüsselt ist, müssen Sie einen vom Kunden verwalteten KMS-Schlüssel erstellen und den folgenden Berechtigungsabschnitt in Ihre KMS-Schlüsselrichtlinie aufnehmen. Weitere Informationen finden Sie unter AWS KMS Berechtigungen konfigurieren.
{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
Meine Regel wird ausgeführt, aber mir werden keine im Amazon SNS-Thema veröffentlichten Nachrichten angezeigt.
Szenario 1
Sie benötigen die Berechtigung, Nachrichten im Amazon-SNS-Thema zu veröffentlichen. Verwenden Sie den folgenden Befehl mit dem AWS CLI, ersetzen Sie us-east-1 durch Ihre Region und verwenden Sie Ihren Themen-ARN.
aws sns get-topic-attributes --regionus-east-1--topic-arn "arn:aws:sns:us-east-1:123456789012:MyTopic"
Wenn Sie über die richtige Berechtigung verfügen möchten, müssen Ihre Richtlinienattribute den folgenden ähneln.
Wenn in Ihrer Richtlinie events.amazonaws.com mit Publish-Berechtigung nicht angezeigt wird, kopieren Sie zunächst die aktuelle Richtlinie und fügen Sie die folgende Anweisung zur Liste der Anweisungen hinzu.
{\"Sid\":\"Allow_Publish_Events\", \"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"}, \"Action\":\"sns:Publish\", \"Resource\":\"arn:aws:sns:us-east-1:123456789012:MyTopic\"}
Legen Sie dann die Themenattribute fest AWS CLI, indem Sie den folgenden Befehl verwenden.
aws sns set-topic-attributes --regionus-east-1--topic-arn "arn:aws:sns:us-east-1:123456789012:MyTopic" --attribute-name Policy --attribute-valueNEW_POLICY_STRING
Anmerkung
Wenn die Richtlinie falsch ist, können Sie die Regel auch in der EventBridge Konsole bearbeiten, indem Sie sie entfernen und dann wieder zur Regel hinzufügen. EventBridge legt die richtigen Berechtigungen für das Ziel fest.
Szenario 2
Wenn Ihr SNS-Thema verschlüsselt ist, müssen Sie den folgenden Abschnitt in Ihre KMS-Schlüsselrichtlinie aufnehmen.
{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
Für mein Amazon SNS-Thema gelten EventBridge auch dann noch Berechtigungen, wenn ich die mit dem Amazon SNS-Thema verknüpfte Regel gelöscht habe
Wenn Sie eine Regel mit Amazon SNS als Ziel erstellen, wird Ihrem Amazon SNS-Thema in Ihrem Namen eine Genehmigung EventBridge hinzugefügt. Wenn Sie die Regel kurz nach ihrer Erstellung löschen, wird die Genehmigung EventBridge möglicherweise nicht aus Ihrem Amazon SNS-Thema entfernt. Wenn dies geschieht, können Sie die Berechtigung aus dem Thema mithilfe des Befehls aws sns set-topic-attributes entfernen. Weitere Informationen zu ressourcenbasierten Berechtigungen für das Senden von Ereignissen finden Sie unter Verwendung ressourcenbasierter Richtlinien für Amazon EventBridge.
Welche IAM-Bedingungsschlüssel kann ich verwenden? EventBridge
EventBridge unterstützt die Bedingungsschlüssel von AWS-wide (siehe IAM- und AWS STS Bedingungskontextschlüssel im IAM-Benutzerhandbuch) sowie die unter aufgeführten Schlüssel. Verwendung der IAM-Richtlinienbedingungen in Amazon EventBridge
Woran erkenne ich, wenn EventBridge Regeln verletzt werden?
Sie können den folgenden Alarm verwenden, um Sie zu benachrichtigen, wenn Ihre EventBridge Regeln verletzt werden.
Um einen Alarm zu erstellen, der warnt, wenn Regeln nicht eingehalten werden,
-
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie Alarm erstellen aus. Wählen Sie im Bereich CloudWatch Metriken nach Kategorie die Option Event-Metriken aus.
-
Wählen Sie in der Liste der Metriken die Option aus FailedInvocations.
-
Wählen Sie über dem Diagramm Statistic und Sum aus.
-
Wählen Sie einen Wert für Period aus, z. B. 5 Minuten. Wählen Sie Weiter aus.
-
Geben Sie unter Alarm Threshold für Name einen eindeutigen Namen für den Alarm ein, zum Beispiel my FailedRules. Geben Sie für Beschreibung eine Beschreibung des Alarms ein. Beispiel: Regeln übermitteln keine Ereignisse an das Ziel.
-
Wählen Sie für is die Option >= und 1 aus. Geben Sie für for die Option 10 ein.
-
Wählen Sie unter Actions (Aktionen) für Whenever this alarm die Option State is ALARM (Status ist ALARM) aus.
-
Wählen Sie für Send notification to (Benachrichtigung senden an) ein vorhandenes Amazon SNS-Thema aus oder erstellen Sie ein neues. Um ein neues Thema zu erstellen, wählen Sie New list aus. Geben Sie einen Namen für das neue Amazon SNS-Thema ein, zum Beispiel: my FailedRules.
-
Geben Sie für Email list (E-Mail-Liste) eine durch Kommata getrennte Liste der E-Mail-Adressen ein, die benachrichtigt werden sollen, wenn der Alarm in den Status ALARM versetzt wird.
-
Wählen Sie Alarm erstellen aus.