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.
Sie können Regeln manuell in der EventBridge Konsole erstellen und testen, was den Entwicklungsprozess bei der Verfeinerung von Ereignismustern unterstützen kann. Sobald Sie jedoch bereit sind, Ihre Anwendung bereitzustellen, ist es einfacher, ein Framework wie AWS SAM zu verwenden, um beispielsweise all Ihre Serverless-Ressourcen konsistent zu starten.
Wir werden diese Beispielanwendung
Eine exemplarische Vorgehensweise für diese Beispielanwendung finden Sie unter Tutorial: Erstellen Sie eine EventBridge Amazon-Beispielanwendung.
Es gibt zwei Ansätze für die Verwendung von Vorlagen. EventBridge AWS SAM Für einfache Integrationen, bei denen eine Lambda-Funktion durch eine Regel aufgerufen wird, ist der Ansatz Kombinierte Vorlage empfohlen. Wenn Sie über eine komplexe Routing-Logik verfügen oder eine Verbindung zu Ressourcen außerhalb Ihrer AWS SAM Vorlage herstellen, ist der Ansatz mit getrennten Vorlagen die bessere Wahl.
Kombinierte Vorlage
Beim ersten Ansatz wird die Events
Eigenschaft verwendet, um die EventBridge Regel zu konfigurieren. Der folgende Beispielcode definiert ein Ereignis, das Ihre Lambda-Funktion aufruft.
Anmerkung
In diesem Beispiel wird die Regel automatisch auf dem Standardereignisbus erstellt, der in jedem AWS Konto vorhanden ist. Um die Regel einem benutzerdefinierten Event Bus zuzuordnen, können Sie den EventBusName
zur Vorlage hinzufügen.
atmConsumerCase3Fn:
Type: AWS::Serverless::Function
Properties:
CodeUri: atmConsumer/
Handler: handler.case3Handler
Runtime: nodejs12.x
Events:
Trigger:
Type: CloudWatchEvent
Properties:
Pattern:
source:
- custom.myATMapp
detail-type:
- transaction
detail:
result:
- "anything-but": "approved"
Dieser YAML-Code entspricht einem Ereignismuster in der EventBridge Konsole. In YAML müssen Sie nur das Ereignismuster definieren und AWS SAM automatisch eine IAM-Rolle mit den erforderlichen Berechtigungen erstellen.
Getrennte Vorlage
Beim zweiten Ansatz zur Definition einer EventBridge Konfiguration in AWS SAM werden die Ressourcen in der Vorlage klarer voneinander getrennt.
-
Zuerst definieren Sie die Lambda-Funktion:
atmConsumerCase1Fn: Type: AWS::Serverless::Function Properties: CodeUri: atmConsumer/ Handler: handler.case1Handler Runtime: nodejs12.x
-
Als Nächstes definieren Sie die Regel mithilfe einer
AWS::Events::Rule
-Ressource. Die Eigenschaften definieren das Ereignismuster und können auch Ziele angeben. Sie können mehrere Ziele explizit definieren.EventRuleCase1: Type: AWS::Events::Rule Properties: Description: "Approved transactions" EventPattern: source: - "custom.myATMapp" detail-type: - transaction detail: result: - "approved" State: "ENABLED" Targets: - Arn: Fn::GetAtt: - "atmConsumerCase1Fn" - "Arn" Id: "atmConsumerTarget1"
-
Definieren Sie abschließend eine
AWS::Lambda::Permission
Ressource, die die Berechtigung EventBridge zum Aufrufen des Ziels erteilt.PermissionForEventsToInvokeLambda: Type: AWS::Lambda::Permission Properties: FunctionName: Ref: "atmConsumerCase1Fn" Action: "lambda:InvokeFunction" Principal: "events.amazonaws.com" SourceArn: Fn::GetAtt: - "EventRuleCase1" - "Arn"