

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.

# Verwenden von AWS Serverless Application Model Vorlagen zur Bereitstellung von EventBridge Amazon-Ressourcen
<a name="eb-use-sam"></a>

Sie können [Regeln](eb-rules.md) manuell in der EventBridge Konsole erstellen und testen, was den Entwicklungsprozess bei der Verfeinerung von [Ereignismustern](eb-event-patterns.md) unterstützen kann. Sobald Sie jedoch bereit sind, Ihre Anwendung bereitzustellen, ist es einfacher, ein Framework wie [AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) zu verwenden, um beispielsweise all Ihre Serverless-Ressourcen konsistent zu starten.

Wir werden diese [Beispielanwendung](https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example) verwenden, um zu untersuchen, wie Sie AWS SAM Vorlagen zum Erstellen von EventBridge Ressourcen verwenden können. Die Datei template.yaml in diesem Beispiel ist eine AWS SAM Vorlage, die vier [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)Funktionen definiert und zwei verschiedene Möglichkeiten zur Integration der Lambda-Funktionen zeigt. EventBridge

Eine exemplarische Vorgehensweise für diese Beispielanwendung finden Sie unter [Tutorial: Erstellen Sie eine EventBridge Amazon-Beispielanwendung](eb-tutorial-get-started.md).

 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.

**Topics**
+ [Kombinierte Vorlage](#eb-combined-template)
+ [Getrennte Vorlage](#eb-separated-template)

## Kombinierte Vorlage
<a name="eb-combined-template"></a>

Beim ersten Ansatz wird die `Events` Eigenschaft verwendet, um die EventBridge Regel zu konfigurieren. Der folgende Beispielcode definiert ein [Ereignis](eb-events.md), das Ihre Lambda-Funktion aufruft.

**Anmerkung**  
In diesem Beispiel wird die Regel automatisch auf dem [Standardereignisbus](eb-event-bus.md) 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
<a name="eb-separated-template"></a>

Beim zweiten Ansatz zur Definition einer EventBridge Konfiguration in AWS SAM werden die Ressourcen in der Vorlage klarer voneinander getrennt. 

1. Zuerst definieren Sie die Lambda-Funktion:

   ```
   atmConsumerCase1Fn:
     Type: AWS::Serverless::Function
     Properties:
       CodeUri: atmConsumer/
       Handler: handler.case1Handler
       Runtime: nodejs12.x
   ```

1. Als Nächstes definieren Sie die Regel mithilfe einer `AWS::Events::Rule`-Ressource. Die Eigenschaften definieren das Ereignismuster und können auch [Ziele](eb-targets.md) 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"
   ```

1. 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"
   ```