Erste Schritte: Erstellen Sie eine Amazon EventBridge Event Bus-Regel - 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.

Erste Schritte: Erstellen Sie eine Amazon EventBridge Event Bus-Regel

Um uns mit EventBridge Regeln und ihren Funktionen vertraut zu machen, verwenden wir eine AWS CloudFormation Vorlage zum Einrichten einer Event-Bus-Regel und der zugehörigen Komponenten, einschließlich einer Ereignisquelle, eines Ereignismusters und eines Ziels. Anschließend können wir untersuchen, wie Regeln funktionieren, um die gewünschten Ereignisse auszuwählen.

Die Vorlage erstellt eine Regel für den Standard-Event-Bus. Diese Regel verwendet ein Ereignismuster, um nach Ereignissen aus einem bestimmten Amazon S3 S3-Bucket zu filtern. Die Regel sendet passende Ereignisse an das angegebene Ziel, ein Amazon SNS SNS-Thema. Jedes Mal, wenn ein Objekt im Bucket erstellt wird, sendet die Regel eine Benachrichtigung an das Thema, das dann eine E-Mail an Ihre angegebene E-Mail-Adresse sendet.

Die bereitgestellten Ressourcen bestehen aus:

  • Ein Amazon S3 S3-Bucket mit aktivierten EventBridge Benachrichtigungen, der als Ereignisquelle fungiert.

  • Ein Amazon SNS SNS-Thema und ein E-Mail-Abonnement als Ziel für Benachrichtigungen.

  • Eine Ausführungsrolle, die EventBridge die erforderlichen Berechtigungen für die Veröffentlichung im Amazon SNS SNS-Thema gewährt.

  • Die Regel selbst, die:

    • Definiert ein Ereignismuster, das nur Object Created Ereignissen aus dem spezifischen Amazon S3 S3-Bucket entspricht.

    • Gibt das Amazon SNS SNS-Thema als Ziel an, an das passende EventBridge Ereignisse gesendet werden.

Spezifische technische Details der Vorlage finden Sie unterEinzelheiten zur Vorlage.

Amazon S3 S3-Ereignisse werden dem Ereignismuster der Regel zugeordnet und an ein SNS-Thema gesendet, wenn sie übereinstimmen.

Bevor Sie beginnen

Um Amazon S3-Ereignisse empfangen zu können EventBridge, müssen Sie die Aktivierung EventBridge in Amazon S3 vornehmen. In diesem Thema EventBridge wird davon ausgegangen, dass es aktiviert ist. Weitere Informationen finden Sie unter Enabling EventBridge im Amazon S3 S3-Benutzerhandbuch.

Die Regel erstellen mit CloudFormation

Um die Regel und die zugehörigen Ressourcen zu erstellen, erstellen wir eine CloudFormation Vorlage und verwenden sie, um einen Stack zu erstellen, der eine Beispielregel mit Quelle und Ziel enthält.

Wichtig

Wenn Sie einen Stack anhand dieser Vorlage erstellen, werden Ihnen die verwendeten Amazon-Ressourcen in Rechnung gestellt.

Erstellen Sie zunächst die CloudFormation Vorlage.

  1. Klicken Sie in Vorlage diesem Abschnitt auf der Registerkarte JSON oder YAML auf das Kopiersymbol, um den Inhalt der Vorlage zu kopieren.

  2. Fügen Sie den Inhalt der Vorlage in eine neue Datei ein.

  3. Speichern Sie die Datei lokal.

Verwenden Sie als Nächstes die Vorlage, die Sie gespeichert haben, um einen CloudFormation Stack bereitzustellen.

Erstellen Sie den Stack mithilfe von CloudFormation (Konsole)
  1. Öffnen Sie die CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation/.

  2. Wählen Sie auf der Seite Stacks im Menü Stack erstellen die Option Mit neuen Ressourcen (Standard) aus.

  3. Geben Sie die Vorlage an:

    1. Wählen Sie unter Voraussetzung die Option Eine bestehende Vorlage auswählen aus.

    2. Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen aus.

    3. Wählen Sie Datei auswählen, navigieren Sie zur Vorlagendatei und wählen Sie sie aus.

    4. Wählen Sie Weiter aus.

  4. Geben Sie die Stack-Details an:

    1. Geben Sie einen Stack-Namen ein.

    2. Akzeptieren Sie für Parameter die Standardwerte für BucketName, SNSTopicDisplayName, SNSTopicName und RuleName, oder geben Sie Ihre eigenen ein.

    3. Geben Sie für EmailAddresseine gültige E-Mail-Adresse ein, an die Sie Benachrichtigungen erhalten möchten.

    4. Wählen Sie Weiter aus.

  5. Konfigurieren Sie die Stack-Optionen:

    1. Wählen Sie unter Optionen für Stack-Fehler die Option Alle neu erstellten Ressourcen löschen aus.

      Anmerkung

      Wenn Sie diese Option wählen, wird Ihnen möglicherweise verhindert, dass Ihnen Ressourcen in Rechnung gestellt werden, deren Löschrichtlinie vorsieht, dass sie auch dann beibehalten werden, wenn die Stack-Erstellung fehlschlägt. Weitere Informationen finden Sie unter DeletionPolicyAttribut im CloudFormation Benutzerhandbuch.

    2. Akzeptieren Sie alle anderen Standardwerte.

    3. Markieren Sie unter Funktionen das Kästchen, um zu bestätigen, dass CloudFormation dadurch IAM-Ressourcen in Ihrem Konto erstellt werden könnten.

    4. Wählen Sie Weiter aus.

  6. Überprüfen Sie die Stack-Details und wählen Sie Senden aus.

Erstellen Sie den Stack mit CloudFormation (AWS CLI)

Sie können den Stack auch verwenden AWS CLI , um den Stack zu erstellen.

  • Verwenden Sie den create-stack-Befehl.

    • Akzeptieren Sie die Standardwerte der Vorlagenparameter und geben Sie den Stacknamen und Ihre E-Mail-Adresse an. Verwenden Sie den template-body Parameter, um den Inhalt der Vorlage zu übergeben oder template-url um einen URL-Speicherort anzugeben.

      aws cloudformation create-stack \ --stack-name eventbridge-rule-tutorial \ --template-body template-contents \ --parameters ParameterKey=EmailAddress,ParameterValue=your.email@example.com \ --capabilities CAPABILITY_IAM
    • Überschreiben Sie die Standardwerte eines oder mehrerer Vorlagenparameter. Zum Beispiel:

      aws cloudformation create-stack \ --stack-name eventbridge-rule-tutorial \ ----template-body template-contents \ --parameters \ ParameterKey=EmailAddress,ParameterValue=your.email@example.com \ ParameterKey=BucketName,ParameterValue=my-custom-bucket-name \ ParameterKey=RuleName,ParameterValue=my-custom-rule-name \ --capabilities CAPABILITY_IAM

CloudFormation erstellt den Stapel. Sobald die Stack-Erstellung abgeschlossen ist, sind die Stack-Ressourcen einsatzbereit. Sie können den Tab Ressourcen auf der Stack-Detailseite verwenden, um die Ressourcen anzuzeigen, die in Ihrem Konto bereitgestellt wurden.

Nachdem der Stack erstellt wurde, erhalten Sie an die von Ihnen angegebene Adresse eine Bestätigungs-E-Mail für das Abonnement. Sie müssen dieses Abonnement bestätigen, um Benachrichtigungen zu erhalten.

Erkunden Sie die Funktionen von Regeln

Sobald die Regel erstellt wurde, können Sie die EventBridge Konsole verwenden, um den Regelbetrieb zu beobachten und die Übertragung von Testereignissen zu testen.

  1. Die EventBridge Konsole zu https://console.aws.amazon.com/events/Hause öffnen? #/Regeln.

  2. Wählen Sie die Regel aus, die Sie erstellt haben.

    Auf der Regeldetailseite werden im Abschnitt Regeldetails Informationen über die Regel angezeigt, einschließlich ihres Ereignismusters und ihrer Ziele.

Untersuchung des Ereignismusters

Bevor wir die Regeloperation testen, untersuchen wir das von uns angegebene Ereignismuster, um zu steuern, welche Ereignisse an das Ziel gesendet werden. Die Regel sendet nur Ereignisse an das Ziel, die den Musterkriterien entsprechen. In diesem Fall möchten wir nur das Ereignis, das Amazon S3 generiert, wenn ein Objekt in unserem speziellen Bucket erstellt wird.

  • Auf der Seite mit den Regeldetails können Sie unter Ereignismuster sehen, dass das Ereignismuster nur Ereignisse auswählt, bei denen:

    • Die Quelle ist der Amazon S3 S3-Service (aws.s3)

    • Der Detailtyp ist Object Created

    • Der Bucket-Name entspricht dem Namen des Buckets, den wir erstellt haben

    { "source": ["aws.s3"], "detail-type": ["Object Created"], "detail": { "bucket": { "name": ["eventbridge-rule-example-source"] } } }

Ereignisse werden über die Regel gesendet

Als Nächstes generieren wir Ereignisse in der Ereignisquelle, um zu testen, ob der Regelabgleich und die Regelzustellung korrekt funktionieren. Dazu laden wir ein Objekt in den S3-Bucket hoch, den wir als Ereignisquelle angegeben haben.

  1. Öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Bucket-Liste den Bucket aus, den Sie mit der Vorlage erstellt haben (Standardname:eventbridge-rule-example-source).

  3. Klicken Sie auf Upload.

  4. Laden Sie eine Testdatei hoch, um ein Object Created Ereignis zu generieren:

    1. Wählen Sie Dateien hinzufügen und wählen Sie eine Datei von Ihrem Computer aus.

    2. Klicken Sie auf Upload.

  5. Warten Sie einen Moment, bis das Ereignis bearbeitet EventBridge und die Benachrichtigung gesendet wurde.

  6. Suchen Sie in Ihrer E-Mail nach einer Benachrichtigung über das Ereignis zur Objekterstellung. Die E-Mail wird Details zum S3-Ereignis enthalten, einschließlich des Bucket-Namens und des Objektschlüssels.

Regelmetriken anzeigen

Sie können Metriken für Ihre Regel einsehen, um zu überprüfen, ob Ereignisse korrekt verarbeitet werden.

  1. Wählen Sie in der EventBridge Konsole Ihre Regel aus.

  2. Wählen Sie die Registerkarte Metriken aus.

  3. Sie können Metriken wie die folgenden anzeigen:

    • Aufrufe: die Häufigkeit, mit der die Regel ausgelöst wurde.

    • TriggeredRules: Die Anzahl der Regeln, die durch übereinstimmende Ereignisse ausgelöst wurden.

Aufräumen: Ressourcen löschen

Als letzten Schritt löschen wir den Stack und die darin enthaltenen Ressourcen.

Wichtig

Ihnen werden die im Stapel enthaltenen Amazon-Ressourcen in Rechnung gestellt, solange sie existieren.

  1. Öffnen Sie die CloudFormation Konsole unter. https://console.aws.amazon.com/cloudformation/

  2. Wählen Sie auf der Seite Stacks den aus der Vorlage erstellten Stack aus, wählen Sie Löschen und bestätigen Sie dann Löschen.

    CloudFormation initiiert das Löschen des Stacks und aller darin enthaltenen Ressourcen.

CloudFormation Details zur Vorlage

Diese Vorlage erstellt Ressourcen und gewährt Berechtigungen in Ihrem Konto.

Ressourcen

Mit der CloudFormation Vorlage für dieses Tutorial werden die folgenden Ressourcen in Ihrem Konto erstellt:

Wichtig

Wenn Sie einen Stack anhand dieser Vorlage erstellen, werden Ihnen die verwendeten Amazon-Ressourcen in Rechnung gestellt.

  • AWS::S3::Bucket: Ein Amazon S3 S3-Bucket, der als Ereignisquelle für die Regel fungiert und EventBridge Benachrichtigungen aktiviert hat.

  • AWS::SNS::Topic: Ein Amazon SNS SNS-Thema, das als Ziel für die Ereignisse dient, auf die die Regel zutrifft.

  • AWS::SNS::Subscription: Ein E-Mail-Abonnement für das SNS-Thema.

  • AWS::IAM::Role: Eine IAM-Ausführungsrolle, die Berechtigungen für den EventBridge Dienst in Ihrem Konto gewährt.

  • AWS::Events::Rule: Die Regel, die die Amazon S3 S3-Bucket-Ereignisse mit dem Amazon SNS SNS-Thema verbindet.

Berechtigungen

Die Vorlage enthält eine AWS::IAM::Role Ressource, die eine Ausführungsrolle darstellt. Diese Rolle gewährt dem EventBridge Dienst (events.amazonaws.com) die folgenden Berechtigungen in Ihrem Konto.

Die folgenden Berechtigungen werden über die verwaltete Richtlinie gewährtAmazonSNSFullAccess:

  • Voller Zugriff auf Ressourcen und Abläufe von Amazon SNS

CloudFormation Vorlage

Speichern Sie den folgenden YAML-Code als separate Datei, um ihn als CloudFormation Vorlage für dieses Tutorial zu verwenden.

YAML
AWSTemplateFormatVersion: '2010-09-09' Description: '[AWSDocs] EventBridge: event-bus-rule-get-started' Parameters: BucketName: Type: String Description: Name of the S3 bucket Default: eventbridge-rule-example-source SNSTopicDisplayName: Type: String Description: Display name for the SNS topic Default: eventbridge-rule-example-target SNSTopicName: Type: String Description: Name for the SNS topic Default: eventbridge-rule-example-target RuleName: Type: String Description: Name for the EventBridge rule Default: eventbridge-rule-example EmailAddress: Type: String Description: Email address to receive notifications AllowedPattern: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+[a-zA-Z0-9-]*(\\.[a-zA-Z0-9-]+)*$' Resources: # S3 Bucket with notifications enabled S3Bucket: Type: AWS::S3::Bucket Properties: BucketName: !Ref BucketName NotificationConfiguration: EventBridgeConfiguration: EventBridgeEnabled: true # SNS Topic for email notifications SNSTopic: Type: AWS::SNS::Topic Properties: DisplayName: !Ref SNSTopicDisplayName TopicName: !Ref SNSTopicName # SNS Subscription for email SNSSubscription: Type: AWS::SNS::Subscription Properties: Protocol: email Endpoint: !Ref EmailAddress TopicArn: !Ref SNSTopic # EventBridge Rule to match S3 object creation events and send them to the SNS topic EventBridgeRule: Type: AWS::Events::Rule Properties: Name: !Ref RuleName Description: "Rule to detect S3 object creation and send email notification" EventPattern: source: - aws.s3 detail-type: - "Object Created" detail: bucket: name: - !Ref BucketName State: ENABLED Targets: - Id: SendToSNS Arn: !Ref SNSTopic RoleArn: !GetAtt EventBridgeRole.Arn # IAM Role for EventBridge to publish to SNS EventBridgeRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: events.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSNSFullAccess Outputs: BucketName: Description: Name of the S3 bucket Value: !Ref S3Bucket SNSTopicARN: Description: ARN of the SNS topic Value: !Ref SNSTopic EmailSubscription: Description: Email address for notifications Value: !Ref EmailAddress
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "[AWSDocs] EventBridge: event-bus-rule-get-started", "Parameters": { "BucketName": { "Type": "String", "Description": "Name of the S3 bucket", "Default": "eventbridge-rule-example-source" }, "SNSTopicDisplayName": { "Type": "String", "Description": "Display name for the SNS topic", "Default": "eventbridge-rule-example-target" }, "SNSTopicName": { "Type": "String", "Description": "Name for the SNS topic", "Default": "eventbridge-rule-example-target" }, "RuleName": { "Type": "String", "Description": "Name for the EventBridge rule", "Default": "eventbridge-rule-example" }, "EmailAddress": { "Type": "String", "Description": "Email address to receive notifications", "AllowedPattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+[a-zA-Z0-9-]*(\\.[a-zA-Z0-9-]+)*$" } }, "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "BucketName": { "Ref": "BucketName" }, "NotificationConfiguration": { "EventBridgeConfiguration": { "EventBridgeEnabled": true } } } }, "SNSTopic": { "Type": "AWS::SNS::Topic", "Properties": { "DisplayName": { "Ref": "SNSTopicDisplayName" }, "TopicName": { "Ref": "SNSTopicName" } } }, "SNSSubscription": { "Type": "AWS::SNS::Subscription", "Properties": { "Protocol": "email", "Endpoint": { "Ref": "EmailAddress" }, "TopicArn": { "Ref": "SNSTopic" } } }, "EventBridgeRule": { "Type": "AWS::Events::Rule", "Properties": { "Name": { "Ref": "RuleName" }, "Description": "Rule to detect S3 object creation and send email notification", "EventPattern": { "source": [ "aws.s3" ], "detail-type": [ "Object Created" ], "detail": { "bucket": { "name": [ { "Ref": "BucketName" } ] } } }, "State": "ENABLED", "Targets": [ { "Id": "SendToSNS", "Arn": { "Ref": "SNSTopic" }, "RoleArn": { "Fn::GetAtt": [ "EventBridgeRole", "Arn" ] } } ] } }, "EventBridgeRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "ManagedPolicyArns": [ "arn:aws:iam::aws:policy/AmazonSNSFullAccess" ] } } }, "Outputs": { "BucketName": { "Description": "Name of the S3 bucket", "Value": { "Ref": "S3Bucket" } }, "SNSTopicARN": { "Description": "ARN of the SNS topic", "Value": { "Ref": "SNSTopic" } }, "EmailSubscription": { "Description": "Email address for notifications", "Value": { "Ref": "EmailAddress" } } } }