

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.

# Tutorial: Erstellen Sie eine EventBridge Amazon-Beispielanwendung
<a name="eb-tutorial-get-started"></a>

Sie können [Ereignisse](eb-events.md) mithilfe EventBridge von [Regeln](eb-rules.md) an bestimmte Lambda-Funktionen weiterleiten.

In diesem Tutorial verwenden Sie die AWS CLI Datei Node.js und den Code im [ GitHubRepository, um Folgendes](https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example) zu erstellen:
+ Eine [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)-Funktion, die Ereignisse für ATM-Banktransaktionen produziert.
+ Drei Lambda-Funktionen, die als [Ziele](eb-targets.md) einer EventBridge Regel verwendet werden sollen.
+ Und die Regel, die die erstellten Ereignisse auf der Grundlage eines [Ereignismusters](eb-event-patterns.md) an die richtige nachgelagerte Funktion weiterleitet.

In diesem Beispiel werden AWS SAM Vorlagen verwendet, um die EventBridge Regeln zu definieren. Weitere Informationen zur Verwendung von AWS SAM Vorlagen EventBridge finden Sie unter[Verwenden von AWS Serverless Application Model Vorlagen zur Bereitstellung von EventBridge Amazon-Ressourcen](eb-use-sam.md).

Im Repo enthält das Unterverzeichnis *atmProducer* das `handler.js`, das den ATM-Service darstellt, der Ereignisse produziert. Dieser Code ist ein Lambda-Handler, der in Node.js geschrieben wurde und Ereignisse mithilfe dieser JavaScript Codezeile EventBridge über das [AWS SDK](https://www.npmjs.com/package/aws-sdk) veröffentlicht.

```
const result = await eventbridge.putEvents(params).promise()
```

Dieses Verzeichnis enthält auch ein `events.js`, das mehrere Testtransaktionen in einem Antwort-Array auflistet. Ein einzelnes Ereignis ist JavaScript wie folgt definiert:

```
{
  // Event envelope fields
  Source: 'custom.myATMapp',
  EventBusName: 'default',
  DetailType: 'transaction',
  Time: new Date(),

  // Main event body
  Detail: JSON.stringify({
    action: 'withdrawal',
    location: 'MA-BOS-01',
    amount: 300,
    result: 'approved',
    transactionId: '123456',
    cardPresent: true,
    partnerBank: 'Example Bank',
    remainingFunds: 722.34
  })
}
```

Der Abschnitt *Details* des Ereignisses spezifiziert Transaktionsattribute. Dazu gehören der Standort des ATM, der Betrag, die Partnerbank und das Ergebnis der Transaktion.

Die `handler.js`-Datei im Unterverzeichnis *atmConsumer* enthält drei Funktionen:

```
exports.case1Handler = async (event) => {
  console.log('--- Approved transactions ---')
  console.log(JSON.stringify(event, null, 2))
}

exports.case2Handler = async (event) => {
  console.log('--- NY location transactions ---')
  console.log(JSON.stringify(event, null, 2))
}

exports.case3Handler = async (event) => {
  console.log('--- Unapproved transactions ---')
  console.log(JSON.stringify(event, null, 2))
}
```

Jede Funktion empfängt Transaktionsereignisse, die über die `console.log` Kontoauszüge in [Amazon CloudWatch Logs protokolliert](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html) werden. Die Konsumentenfunktionen arbeiten unabhängig vom Produzenten und sind sich der Quelle der Ereignisse nicht bewusst.

Die Routing-Logik ist in den EventBridge Regeln enthalten, die in der AWS SAM Vorlage der Anwendung bereitgestellt werden. Die Regeln werten den eingehenden Stream von Ereignissen aus und leiten übereinstimmende Ereignisse an die Lambda-Zielfunktionen weiter.

Die Regeln verwenden Ereignismuster, bei denen es sich um JSON-Objekte mit derselben Struktur wie die Ereignisse handelt, mit denen sie übereinstimmen. Hier ist das Ereignismuster für eine der Regeln.

```
{
  "detail-type": ["transaction"],
  "source": ["custom.myATMapp"],
  "detail": {
    "location": [{
      "prefix": "NY-"
    }]
  }
}
```

**Topics**
+ [Voraussetzungen](#eb-gs-prereqs)
+ [Schritt 1: Erstellen einer Anwendung](#eb-gs-create-application)
+ [Schritt 2: Ausführen einer Anwendung](#eb-gs-run-application)
+ [Schritt 3: Überprüfen der Protokolle und Funktionsfähigkeit der Anwendung](#eb-gs-check-logs)
+ [Schritt 4: Bereinigen Ihrer Ressourcen](#cleanup)

## Voraussetzungen
<a name="eb-gs-prereqs"></a>

Zum Durcharbeiten dieses Tutorials benötigen Sie die folgenden Ressourcen:
+ Ein AWS Konto. [Erstelle ein AWS Konto](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html), falls du noch keines hast.
+ AWS CLI installiert. Informationen zur AWS CLI Installation von finden Sie unter [Installation, Aktualisierung und Deinstallation der AWS CLI Version 2.](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
+ Installiertes Node.js 12.x Informationen zur Installation von Node.js finden Sie unter [Downloads](https://nodejs.org/en/download/).

## Schritt 1: Erstellen einer Anwendung
<a name="eb-gs-create-application"></a>

Um die Beispielanwendung einzurichten, verwenden Sie AWS CLI und Git, um die benötigten AWS Ressourcen zu erstellen.

**So erstellen Sie die Anwendung**

1. [Melden Sie sich bei AWS an](https://console.aws.amazon.com/console/home).

1. [Installieren Sie Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) und [installieren Sie die AWS Serverless Application Model CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) auf Ihrem lokalen Computer.

1. Erstellen Sie ein neues Verzeichnis und navigieren Sie dann in einem Terminal zu diesem Verzeichnis.

1. Geben Sie `git clone https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example` in die Befehlszeile ein.

1. Führen Sie in der Befehlszeile den folgenden Befehl aus:

   ```
   cd ./amazon-eventbridge-producer-consumer-example
   sam deploy --guided
   ```

1. Führen Sie die folgenden Schritte im Terminal aus:

   1. Geben Sie für `Stack Name` einen Namen für den Stack ein. Nennen Sie den Stack beispielsweise `Test`.

   1. Geben Sie für `AWS Region` die Region ein. Beispiel, `us-west-2`.

   1. Geben Sie unter `Confirm changes before deploy` den Wert `Y` ein.

   1. Geben Sie für `Allow SAM CLI IAM role creation` den Wert `Y` ein.

   1. Geben Sie für `Save arguments to configuration file` den Wert `Y` ein.

   1. Geben Sie unter `SAM configuration file` den Wert `samconfig.toml` ein.

   1. Geben Sie unter `SAM configuration environment` den Wert `default` ein.

## Schritt 2: Ausführen einer Anwendung
<a name="eb-gs-run-application"></a>

Nachdem die Ressourcen eingerichtet sind, verwenden Sie die Konsole, um die Funktionen zu testen.

**So führen Sie die Anwendung aus**

1. Öffnen Sie die [Lambda-Konsole](https://console.aws.amazon.com/lambda/) in derselben Region, in der Sie die AWS SAM Anwendung bereitgestellt haben.

1. Es gibt vier Lambda-Funktionen mit dem Präfix **atm-demo**. Wählen Sie die **atmProducerFn**Funktion und anschließend **Aktionen**, **Test** aus.

1. Geben Sie `Test` für den **Namen** ein.

1. Wählen Sie **Test** aus.

## Schritt 3: Überprüfen der Protokolle und Funktionsfähigkeit der Anwendung
<a name="eb-gs-check-logs"></a>

Nachdem Sie die Anwendung ausgeführt haben, verwenden Sie die Konsole, um die CloudWatch Protokolle zu überprüfen.

**So überprüfen Sie die Protokolle**

1. Öffnen Sie die [CloudWatch Konsole](https://console.aws.amazon.com/cloudwatch/) in derselben Region, in der Sie die AWS SAM Anwendung ausgeführt haben.

1. Wählen Sie **Logs** (Protokolle) und anschließend **Log groups** (Protokollgruppen) aus.

1. Wählen Sie die Protokollgruppe aus, die **atmConsumerCase1** enthält. Sie sehen zwei Streams, die die beiden vom ATM genehmigten Transaktionen darstellen. Wählen Sie einen Protokollstream aus, um die Ausgabe anzuzeigen.

1. Navigieren Sie zurück zur Liste der Protokollgruppen und wählen Sie dann die Protokollgruppe aus, die **atmConsumerCase2** enthält. Es werden zwei Streams angezeigt, die die beiden Transaktionen darstellen, die dem Standortfilter *New York* entsprechen.

1. Navigieren Sie zurück zur Liste der Protokollgruppen und wählen Sie die Protokollgruppe aus, die **atmConsumerCase3** enthält. Öffnen Sie den Stream, um die abgelehnten Transaktionen zu sehen.

## Schritt 4: Bereinigen Ihrer Ressourcen
<a name="cleanup"></a>

Sie können jetzt die Ressourcen, die Sie für dieses Tutorial erstellt haben, löschen, es sei denn, Sie möchten sie behalten. Indem Sie AWS Ressourcen löschen, die Sie nicht mehr verwenden, verhindern Sie, dass Ihr AWS Konto unnötig belastet wird.

**Um die EventBridge Regel (n) zu löschen**

1. Öffnen Sie die [Regelseite](https://console.aws.amazon.com/events/home#/rules) der EventBridge Konsole.

1. Wählen Sie die Regel(n) aus, die Sie erstellt haben.

1. Wählen Sie **Delete (Löschen)**.

1. Wählen Sie **Delete (Löschen)**.

**So löschen Sie die Lambda-Funktion(en)**

1. Öffnen Sie die Seite [Funktionen](https://console.aws.amazon.com/lambda/home#/functions) der Lambda-Konsole.

1. Wählen Sie die Funktion(en) aus, die Sie erstellt haben.

1. Wählen Sie **Aktionen**, **Löschen** aus.

1. Wählen Sie **Delete** (Löschen) aus.

**Um die CloudWatch Logs-Protokollgruppe (n) zu löschen**

1. Öffnen Sie die [CloudWatch-Konsole](https://console.aws.amazon.com/Cloudwatch/home).

1. Wählen Sie **Protokolle**, **Protokollgruppen** aus.

1. Wählen Sie die Protokollgruppe(n) aus, die in diesem Tutorial erstellt wurde(n).

1. Wählen Sie **Actions (Aktionen)**, **Delete log group(s) (Protokollgruppe(n) löschen)** aus.

1. Wählen Sie **Löschen**.