

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.

# Bereitstellen und Testen der Beispielanwendung Amazon SNS Event Fork Pipelines
<a name="sns-deploy-test-fork-pipelines-sample-application"></a>

Um die Entwicklung Ihrer ereignisgesteuerten Anwendungen zu beschleunigen, können Sie Event-Handling-Pipelines — unterstützt von AWS Event Fork Pipelines — für Amazon SNS SNS-Themen abonnieren. AWS **Event Fork Pipelines ist eine Suite [verschachtelter Open-Source-Anwendungen](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html), die auf dem [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) (AWS SAM) basieren und die Sie direkt aus der [AWS Event Fork Pipelines Suite](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (wählen Sie Apps anzeigen, die benutzerdefinierte IAM-Rollen oder Ressourcenrichtlinien erstellen) in Ihrem Konto bereitstellen können.** AWS Weitere Informationen finden Sie unter [So funktionieren AWS Event Fork-Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

Auf dieser Seite wird gezeigt, wie Sie die Beispielanwendung Event Fork AWS-Managementkonsole Pipelines bereitstellen und testen können. AWS 

**Wichtig**  
Um zu vermeiden, dass Ihnen nach Abschluss der Bereitstellung der AWS Event Fork Pipelines-Beispielanwendung unerwünschte Kosten entstehen, löschen Sie den zugehörigen Stack. CloudFormation Weitere Informationen finden Sie unter [Löschen eines Stacks in der CloudFormation -Konsole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) im *AWS CloudFormation -Benutzerhandbuch*.

# AWS Anwendungsbeispiel für Event Fork Pipelines
<a name="example-sns-fork-use-case"></a>

Das folgende Szenario beschreibt eine ereignisgesteuerte, serverlose E-Commerce-Anwendung, die Event Fork-Pipelines verwendet AWS . Sie können diese [E-Commerce-Beispielanwendung](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-example-ecommerce-checkout-api) in der verwenden AWS Serverless Application Repository und sie dann AWS-Konto mithilfe der AWS Lambda Konsole bereitstellen, wo Sie sie testen und ihren Quellcode untersuchen können. GitHub

![\[Die Architektur einer serverlosen E-Commerce-Anwendung, die integriert AWS-Services werden kann. Es zeigt den Ablauf von E-Commerce-Benutzern, die Bestellungen über ein API Gateway aufgeben, bis hin zu verschiedenen Verarbeitungspipelines, einschließlich Auftragsspeicherung, Suchanalyse und Wiedergabe, und zeigt, wie Ereignisse über Amazon SNS, Lambda, Amazon SQS, DynamoDB und Kibana verwaltet und analysiert werden.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-fork-example-use-case.png)


Diese E-Commerce-Anwendung nimmt Bestellungen von Käufern über eine RESTful API entgegen, die von API Gateway gehostet und von der AWS Lambda Funktion unterstützt wird`CheckoutApiBackendFunction`. Diese Funktion veröffentlicht alle empfangenen Aufträge zu einem Amazon SNS-Thema mit dem Namen `CheckoutEventsTopic`, das seinerseits die Aufträge an vier unterschiedliche Pipelines weitergibt.

Die erste Pipeline ist die reguläre Checkout-Verarbeitungs-Pipeline, die vom Eigentümer der e-Commerce-Anwendung entworfen und implementiert wurde. Diese Pipeline hat die Amazon SQS SQS-Warteschlange`CheckoutQueue`, die alle eingegangenen Bestellungen zwischenspeichert, eine AWS Lambda Funktion namens, `CheckoutFunction` die die Warteschlange abfragt, um diese Bestellungen zu verarbeiten, und die DynamoDB-Tabelle, in der alle aufgegebenen Bestellungen `CheckoutTable` sicher gespeichert werden.

## Event AWS Fork-Pipelines anwenden
<a name="applying-sns-fork-pipelines"></a>

Die Komponenten der e-Commerce-Anwendung kümmern sich um die zentrale Geschäftslogik. Der Eigentümer der e-Commerce-Anwendung muss sich aber auch um Folgendes kümmern:
+ **Compliance** – sichere, komprimierte Backups, die im Ruhezustand verschlüsselt sind und die Bereinigung sensibler Informationen
+ **Ausfallsicherheit** – Wiederholung aktueller Bestellungen im Falle einer Unterbrechung des Fulfillment-Prozesses
+ **Durchsuchbarkeit** – Ausführen von Analytik und Generierung von Metriken für aufgegebene Aufträge

Anstatt diese Ereignisverarbeitungslogik zu implementieren, kann der Anwendungsbesitzer AWS Event Fork-Pipelines für das `CheckoutEventsTopic` Amazon SNS SNS-Thema abonnieren.
+ [Die Pipeline für die Speicherung und Sicherung von Ereignissen](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) ist für die Transformation von Daten konfiguriert, sodass Kreditkartendaten entfernt, Daten 60 Sekunden gepuffert, Daten mit GZIP komprimiert und mit dem verwalteten Standardschlüssel für Amazon S3 verschlüsselt werden. Dieser Schlüssel wird von AWS Key Management Service ()AWS KMS verwaltet AWS und unterstützt.

  Weitere Informationen finden [Sie unter Wählen Sie Amazon S3 für Ihr Ziel](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3), [Amazon Data Firehose Data Transformation](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html) und [Einstellungen konfigurieren](https://docs.aws.amazon.com/firehose/latest/dev/create-configure.html) im *Amazon Data Firehose Developer Guide*.
+ [Die Pipeline für die Suche und Analyse von Ereignissen](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) ist mit einer Index-Wiederholungsdauer von 30 Sekunden konfiguriert, sowie mit einem Bucket für die Speicherung von Aufträgen, die in der Suchdomäne nicht indiziert werden können, und einer Filterrichtlinie zur Einschränkung der indizierten Aufträge.

  Weitere Informationen finden [Sie unter Wählen Sie den OpenSearch Service für Ihr Ziel](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-elasticsearch) im *Amazon Data Firehose Developer Guide*.
+ [Die Pipeline für das Replay von Events](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) ist mit dem Amazon-SQS-Warteschlangenteil der normalen Auftragsverarbeitungspipeline konfiguriert, die von Eigentümer der e-Commerce-Anwendung entworfen und implementiert wurde.

  Weitere Informationen finden Sie unter [Name der Warteschlange und URL](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-general-identifiers.html#queue-name-url) im *Amazon Simple Queue Service Leitfaden für Entwickler*.

Die folgende JSON-Filterrichtlinie ist in der Konfiguration für die Ereignissuche- und Analysepipeline eingestellt. Sie gleicht nur eingehende Aufträge mit einem Gesamtbetrag von mindestens 100 USD ab. Weitere Informationen finden Sie unter [Amazon SNS Nachrichtenfilterung](sns-message-filtering.md).

```
{				
   "amount": [{ "numeric": [ ">=", 100 ] }]
}
```

Mithilfe des AWS Event Fork-Pipelines-Musters kann der Eigentümer der E-Commerce-Anwendung den Entwicklungsaufwand vermeiden, der häufig mit der Programmierung einer undifferenzierten Logik für die Ereignisbehandlung verbunden ist. Stattdessen kann sie AWS Event Fork-Pipelines direkt von ihr aus bereitstellen. AWS Serverless Application Repository AWS-Konto

# Schritt 1: Bereitstellen der Amazon SNS SNS-Beispielanwendung
<a name="deploy-sample-application"></a>

1. Melden Sie sich bei der [AWS Lambda -Konsole](https://console.aws.amazon.com/lambda/) an.

1. Wählen Sie im Navigationsbereich **Functions** (Funktionen) und dann **Create function** (Funktion erstellen) aus.

1. Gehen Sie auf der Seite **Create function** (Funktion erstellen) wie folgt vor:

   1. Wählen Sie **Browse serverless app repository** (Repository mit Serverless-Apps durchsuchen), **Public applications** (Öffentliche Anwendungen), **Show apps that create custom roles or resource policies** (Apps anzeigen, die benutzerdefinierte IAM-Rollen oder Ressourcenrichtlinien erstellen).

   1. Suchen Sie nach `fork-example-ecommerce-checkout-api` und wählen Sie dann die Anwendung aus.

1. Gehen Sie auf der **fork-example-ecommerce-checkout-api-Seite** wie folgt vor:

   1. Geben Sie im Abschnitt **Application settings** (Anwendungseinstellungen) einen **Application name** (Anwendungsname) ein (zum Beispiel `fork-example-ecommerce-my-app`).
**Anmerkung**  
Um Ihre Ressourcen später leichter finden zu können, behalten Sie das Präfix `fork-example-ecommerce`.
Für jede Bereitstellung muss der Anwendungsname eindeutig sein. Wenn Sie einen Anwendungsnamen wiederverwenden, aktualisiert die Bereitstellung nur den zuvor bereitgestellten CloudFormation Stack (anstatt einen neuen zu erstellen).

   1. (Optional) Geben Sie eine der folgenden **LogLevel**Einstellungen für die Ausführung der Lambda-Funktion Ihrer Anwendung ein:
      + `DEBUG`
      + `ERROR`
      + `INFO` (Standard)
      + `WARNING`

1. Wählen Sie **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (Ich bestätige, dass diese App benutzerdefinierte IAM-Rollen und Ressourcenrichtlinien erstellt und eingebettete Anwendungen bereitstellt)** und dann unten auf der Seite **Deploy (Bereitstellen)** aus.

Auf der *my-app* Seite **Bereitstellungsstatus für fork-example-ecommerce —** zeigt Lambda den Status **Ihre Anwendung wird bereitgestellt** an.

 CloudFormation Beginnt im Abschnitt **Ressourcen** mit der Erstellung des Stacks und zeigt den **CREATE\$1IN\$1PROGRESS-Status** für jede Ressource an. **Wenn der Vorgang abgeschlossen ist, wird der Status CREATE\$1COMPLETE CloudFormation angezeigt.**

**Anmerkung**  
Es kann 20 bis 30 Minuten dauern, bis alle Ressourcen bereitgestellt sind.

Wenn die Bereitstellung abgeschlossen ist, zeigt Lambda den Status **Your application has been deployed** (Ihre Anwendung wurde bereitgestellt) an.

# Schritt 2: Ausführen der mit SNS verknüpften Beispielanwendung
<a name="execute-sample-application"></a>

1. Wählen Sie in der AWS Lambda Konsole im Navigationsbereich **Applications** aus.

1. Suchen Sie auf der Seite **Applications (Anwendungen)** im Suchfeld nach `serverlessrepo-fork-example-ecommerce-my-app` und wählen Sie dann die Anwendung aus.

1. Gehen Sie im Abschnitt **Resources (Ressourcen)** wie folgt vor:

   1. Um die Ressource zu finden, deren Typ ist **ApiGatewayRestApi**, sortieren Sie die Ressourcen `ServerlessRestApi` beispielsweise nach **Typ** und erweitern Sie dann die Ressource.

   1. Es werden zwei verschachtelte Ressourcen der Typen **ApiGatewayDeployment** und **ApiGatewayStage** angezeigt.

   1. Kopieren Sie den Link **Prod API endpoint (Prod-API-Endpunkt)** und fügen Sie diesem `/checkout` an, z. B.: 

      ```
      https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
      ```

1. Kopieren Sie den folgenden JSON-Code in eine Datei mit dem Namen `test_event.json`.

   ```
   {
      "id": 15311,
      "date": "2019-03-25T23:41:11-08:00",
      "status": "confirmed",
      "customer": {
         "id": 65144,		
   	 "quantity": 2,
         "price": 25.00,
         "subtotal": 50.00
      }]
   }
   ```

1. Um eine HTTPS-Anfrage an Ihren API-Endpunkt zu senden, übergeben Sie die Nutzlast des Beispielereignisses als Eingabe, indem Sie einen `curl`-Befehl ausführen, zum Beispiel:

   ```
   curl -d "$(cat test_event.json)" https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
   ```

   Die API gibt die folgende leere Antwort unter Angabe einer erfolgreichen Ausführung zurück:

   ```
   { }
   ```

# Schritt 3: Überprüfen der Leistung der Amazon SNS SNS-Anwendung und -Pipeline
<a name="verify-sample-application-pipelines"></a>

## Schritt 1: Überprüfen der Ausführung der Muster-Checkout-Pipeline
<a name="verify-execution-checkout-pipeline"></a>

1. Melden Sie sich bei der [Amazon DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb/) an.

1. Wählen Sie im Navigationsbereich **Tables (Tabellen)** aus.

1. Suchen Sie nach `serverlessrepo-fork-example` und wählen Sie `CheckoutTable` aus.

1. Wählen Sie auf der Tabellendetailseite **Items (Elemente)** und dann das erstellte Element aus.

   Die gespeicherten Attribute werden angezeigt.

## Schritt 2: Überprüfen der Ausführung der Ereignisspeicher- und Backup-Pipeline
<a name="verify-execution-event-storage-backup-pipeline"></a>

1. Melden Sie sich bei der [Amazon S3-Konsole](https://console.aws.amazon.com/s3/) an.

1. Wählen Sie im Navigationsbereich **Buckets (Buckets)** aus.

1. Suchen Sie nach `serverlessrepo-fork-example` und wählen Sie dann `CheckoutBucket`.

1. Navigieren Sie durch die Verzeichnishierarchie, bis Sie eine Datei mit der Erweiterung finden `.gz`.

1. Um die Datei herunterzuladen, wählen Sie **Actions (Aktionen)**, **Open (Öffnen)**.

1. Die Pipeline ist mit einer Lambda-Funktion konfiguriert, die Kreditkarteninformationen aus Gründen der Compliance schützt.

   Um zu überprüfen, ob die gespeicherte JSON-Nutzlast Kreditkarteninformationen enthält, dekomprimieren Sie die Datei.

## Schritt 3: Überprüfen der Ausführung der Event-Such- und Analysepipeline
<a name="verify-execution-event-search-analytics-pipeline"></a>

1. Melden Sie sich bei der [OpenSearch Servicekonsole](https://console.aws.amazon.com/aos/) an.

1. Wählen Sie im Navigationsbereich in **My domains (Meine Domains)** die Domäne mit dem Präfix `serverl-analyt` aus.

1. Die Pipeline ist mit einer Amazon SNS-Abonnement-Filterrichtlinie konfiguriert, die eine numerische Abgleichbedingung einrichtet.

   ****Um zu überprüfen, ob das Ereignis indexiert ist, weil es sich auf eine Bestellung bezieht, deren Wert über 100 USD liegt, wählen Sie auf der *abcdefgh1ijk* Seite **serverl-analyst die Option Indices, checkout\$1events** aus.****

## Schritt 4: Überprüfen der Ausführung der Pipeline zur Ereigniswiedergabe
<a name="verify-execution-event-replay-pipeline"></a>

1. Melden Sie sich bei der [Amazon SQS-Konsole](https://console.aws.amazon.com/sqs/) an.

1. Suchen Sie in der Liste der Warteschlangen nach `serverlessrepo-fork-example` und wählen Sie `ReplayQueue` aus.

1. Wählen Sie **Nachrichten senden und empfangen**.

1. Wählen **Sie im *123ABCD4E5F6* Dialogfeld Nachrichten senden und empfangen in fork-example-ecommerce -*my-app*... ReplayP- ReplayQueue -** die Option **Umfrage für** Nachrichten. 

1. Um zu prüfen, ob sich das Ereignis in der Warteschlange befindet, wählen Sie **More Details (Weitere Einzelheiten)** neben der Nachricht, die in der Warteschlange angezeigt wird.

# Schritt 4: Simulieren eines Problems und Wiederholung der Ereignisse zur Wiederherstellung
<a name="simulate-issue-replay-events-for-recovery"></a>

## Schritt 1: Aktivieren Sie das simulierte Problem und senden Sie eine zweite API-Anfrage
<a name="enable-simulated-issue-send-second-api-request"></a>

1. Melden Sie sich bei der [AWS Lambda -Konsole](https://console.aws.amazon.com/lambda/) an.

1. Wählen Sie im Navigationsbereich **Functions (Funktionen)** aus.

1. Suchen Sie nach `serverlessrepo-fork-example`und wählen Sie `CheckoutFunction` aus.

1. Auf dem **fork-example-ecommerce- *my-app* - CheckoutFunction -*ABCDEF*...** **Setzen Sie auf der Seite im Abschnitt **Umgebungsvariablen** die Variable **BUG\$1ENABLED** auf **true** und wählen Sie dann Speichern.**

1. Kopieren Sie den folgenden JSON-Code in eine Datei mit dem Namen `test_event_2.json`.

   ```
   {
   	   "id": 9917,
   	   "date": "2019-03-26T21:11:10-08:00",
   	   "status": "confirmed",
   	   "customer": {
   	      "id": 56999,
   "quantity": 1,
   	      "price": 75.00,
   	      "subtotal": 75.00
   	   }]
   	}
   ```

1. Um eine HTTPS-Anfrage an Ihren API-Endpunkt zu senden, übergeben Sie die Nutzlast des Beispielereignisses als Eingabe, indem Sie einen `curl`-Befehl ausführen, zum Beispiel:

   ```
   curl -d "$(cat test_event_2.json)" https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
   ```

   Die API gibt die folgende leere Antwort unter Angabe einer erfolgreichen Ausführung zurück:

   ```
   { }
   ```

## Schritt 2: Überprüfen Sie die simulierte Datenbeschädigung
<a name="verify-simulated-data-corruption"></a>

1. Melden Sie sich bei der [Amazon DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb/) an.

1. Wählen Sie im Navigationsbereich **Tables (Tabellen)** aus.

1. Suchen Sie nach `serverlessrepo-fork-example` und wählen Sie `CheckoutTable` aus.

1. Wählen Sie auf der Tabellendetailseite **Items (Elemente)** und dann das erstellte Element aus.

   Die gespeicherten Attribute werden angezeigt, einige markiert als **CORRUPTED (BESCHÄDIGT\$1)**

## Schritt 3: Deaktivieren Sie das simulierte Problem
<a name="disable-simulated-issue"></a>

1. Melden Sie sich bei der [AWS Lambda -Konsole](https://console.aws.amazon.com/lambda/) an.

1. Wählen Sie im Navigationsbereich **Functions (Funktionen)** aus.

1. Suchen Sie nach `serverlessrepo-fork-example`und wählen Sie `CheckoutFunction` aus.

1. Auf dem **fork-example-ecommerce- *my-app* - CheckoutFunction -*ABCDEF*...** **Setzen Sie auf der Seite im Abschnitt **Umgebungsvariablen** die Variable **BUG\$1ENABLED** auf **false** und wählen Sie dann Speichern.**

## Schritt 4: Aktivieren Sie die Wiedergabefunktion, um das Problem zu beheben
<a name="enable-replay-recover-from-simulated-issue"></a>

1. Wählen Sie in der AWS Lambda Konsole im Navigationsbereich die Option **Funktionen** aus.

1. Suchen Sie nach `serverlessrepo-fork-example` und wählen Sie `ReplayFunction` aus.

1. Erweitern Sie den Abschnitt **Designer (Designer)**, wählen Sie das Feld **SQS (SQS)** und dann im Abschnitt **SQS (SQS)** **Enabled (Aktiviert)** aus.
**Anmerkung**  
Es dauert ca. 1 Minute, bis der Amazon SQS-Ereignisquellenauslöser aktiviert wird.

1. Wählen Sie **Speichern**.

1. Zur Anzeige der wiederhergestellten Attribute kehren Sie zur Amazon–DynamoDB-Konsole zurück.

1. Um die Wiedergabe zu deaktivieren, kehren Sie zur AWS Lambda Konsole zurück und deaktivieren Sie den Amazon SQS SQS-Ereignisquellenauslöser für. `ReplayFunction`