

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.

# Fanout von Amazon SNS SNS-Ereignissen in AWS Event Fork-Pipelines
<a name="sns-fork-pipeline-as-subscriber"></a>


|  | 
| --- |
| Für die Archivierung und Analyse von Ereignissen empfiehlt Amazon SNS jetzt, die native Integration mit Amazon Data Firehose zu verwenden. Sie können Firehose-Lieferstreams für SNS-Themen abonnieren, sodass Sie Benachrichtigungen an Archivierungs- und Analyseendpunkte wie Amazon Simple Storage Service (Amazon S3) -Buckets, Amazon Redshift Redshift-Tabellen, Amazon OpenSearch Service (OpenSearch Service) und mehr senden können. Die Verwendung von Amazon SNS mit Firehose Delivery Streams ist eine vollständig verwaltete und codelose Lösung, für die Sie keine Funktionen verwenden müssen. AWS Lambda Weitere Informationen finden Sie unter [Lieferstreams von Fanout nach Firehose](sns-firehose-as-subscriber.md). | 

Sie können Amazon SNS zum Entwickeln ereignisgesteuerter Anwendungen verwenden, die Abonnenten-Services für die automatische Ausführung von Aufgaben als Antwort auf von Herausgeber-Services ausgelöste Ereignisse verwenden. Dieses Architekturmuster kann eine bessere Wiederverwendbarkeit, Interoperabilität und Skalierbarkeit von Services unterstützen. Es kann jedoch arbeitsaufwändig sein, die Verarbeitung von Ereignissen auf Pipelines aufzuteilen, die gemeinsame Anforderungen an die Ereignisbehandlung erfüllen, wie Speicherung, Backup, Suche, Analytik und Replay von Events.

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 

Einen Anwendungsfall für AWS Event Fork Pipelines finden Sie unter. [Bereitstellen und Testen der Beispielanwendung Amazon SNS Event Fork Pipelines](sns-deploy-test-fork-pipelines-sample-application.md)

**Topics**
+ [So funktionieren AWS Event Fork-Pipelines](#how-sns-fork-works)
+ [Bereitstellung von AWS Event Fork-Pipelines](#deploying-sns-fork-pipelines)
+ [Bereitstellen und Testen der Beispielanwendung Amazon SNS Event Fork Pipelines](sns-deploy-test-fork-pipelines-sample-application.md)
+ [AWS Event Fork-Pipelines für ein Amazon SNS SNS-Thema abonnieren](sns-subscribe-event-fork-pipelines.md)

## So funktionieren AWS Event Fork-Pipelines
<a name="how-sns-fork-works"></a>

AWS Event Fork Pipelines ist ein serverloses Entwurfsmuster. Es handelt sich jedoch auch um eine Suite verschachtelter serverloser Anwendungen, die auf AWS SAM basieren (die Sie direkt vom AWS Serverless Application Repository (AWS SAR) auf Ihrem Computer bereitstellen können, um Ihre AWS-Konto ereignisgesteuerten Plattformen zu erweitern). Sie können diese verschachtelten Anwendungen einzeln bereitstellen wie von Ihrer Architektur gefordert.

**Topics**
+ [Die Pipeline für die Speicherung und Sicherung von Ereignissen](#sns-fork-event-storage-and-backup-pipeline)
+ [Die Pipeline für die Suche und Analyse von Ereignissen](#sns-fork-event-search-and-analytics-pipeline)
+ [Die Pipeline für das Replay von Events](#sns-fork-event-replay-pipeline)

Das folgende Diagramm zeigt eine AWS Event Fork Pipelines-Anwendung, die durch drei verschachtelte Anwendungen ergänzt wird. Sie können jede der Pipelines aus der AWS Event Fork Pipelines Suite unabhängig voneinander auf der AWS SAR bereitstellen, wie es Ihre Architektur erfordert.

![\[Die AWS Event Fork Pipelines Architektur, die zeigt, wie Ereignisse aus einem Amazon SNS SNS-Thema über drei verschiedene Pipelines gefiltert und verarbeitet werden: Event Storage and Backup, Event Search and Analytics und Event Replay. Diese Pipelines werden als vertikal gestapelte Boxen dargestellt, von denen jede unabhängig voneinander Ereignisse aus demselben Amazon SNS SNS-Thema parallel verarbeitet.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-fork-pipeline-as-subscriber-how-it-works.png)


Jede Pipeline hat dasselbe Amazon SNS-Thema abonniert, um Ereignisse parallel verarbeiten zu können, wenn diese Ereignisse zum Thema veröffentlicht werden. Jede Pipeline ist unabhängig und Sie können eine eigene [Abonnementfilterrichtlinie](sns-subscription-filter-policies.md) festlegen. So ist es möglich, dass eine Pipeline nur eine Teilmenge der Ereignisse verarbeitet - die von Interesse (anstelle aller zum Thema veröffentlichter Ereignisse).

**Anmerkung**  
Da Sie die drei AWS Event Fork-Pipelines neben Ihren regulären Event-Verarbeitungspipelines platzieren (möglicherweise haben Sie Ihr Amazon SNS SNS-Thema bereits abonniert), müssen Sie keinen Teil Ihres aktuellen Nachrichtenherausgebers ändern, um die AWS Event Fork-Pipelines in Ihren bestehenden Workloads zu nutzen.

### Die Pipeline für die Speicherung und Sicherung von Ereignissen
<a name="sns-fork-event-storage-and-backup-pipeline"></a>

Das folgende Diagramm zeigt die [Pipeline für die Speicherung und Sicherung von Ereignissen](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-storage-backup-pipeline). Sie können für diese Pipeline ein Abonnement Ihres Amazon SNS-Themas erstellen, um die Ereignisse in Ihrem System automatisch zu sichern.

Diese Pipeline besteht aus einer Amazon SQS SQS-Warteschlange, die die vom Amazon SNS SNS-Thema übermittelten Ereignisse zwischenspeichert, einer AWS Lambda Funktion, die automatisch nach diesen Ereignissen in der Warteschlange abfragt und sie in einen Stream überträgt, und einem Amazon S3 S3-Bucket, der die vom Stream geladenen Ereignisse dauerhaft sichert. 

![\[Die Fork-Event-Storage-Backup -Pipeline, die für die Verarbeitung und Sicherung von Ereignissen aus einem Amazon SNS SNS-Thema konzipiert ist. Der Ablauf beginnt mit einem Amazon SNS SNS-Thema, von dem Ereignisse in eine Amazon SQS-Warteschlange weitergeleitet werden. Diese gefilterten Ereignisse werden dann von einer Lambda-Funktion verarbeitet, die sie an eine Data Firehose weiterleitet. Der Firehose-Stream ist dafür verantwortlich, die Ereignisse zu puffern, zu transformieren und zu komprimieren, bevor sie in einen Amazon S3 S3-Backup-Bucket geladen werden. Schließlich kann Amazon Athena verwendet werden, um die gespeicherten Daten abzufragen. Das Diagramm verwendet eine Reihe von Symbolen und Pfeilen, um den Ablauf von einem Service zum nächsten zu veranschaulichen, wobei jede Komponente der Pipeline klar gekennzeichnet ist.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-fork-event-storage-and-backup-pipeline.png)


Um das Verhalten Ihres Firehose-Streams zu optimieren, können Sie ihn so konfigurieren, dass Ihre Ereignisse gepuffert, transformiert und komprimiert werden, bevor sie in den Bucket geladen werden. Während die Ereignisse geladen werden, können Sie Amazon Athena verwenden, um im Bucket SQL-Standardabfragen zu stellen. Sie können die Pipeline auch für die Wiederverwendung eines vorhandenen Amazon S3-Buckets konfigurieren oder einen neuen Bucket erstellen.

### Die Pipeline für die Suche und Analyse von Ereignissen
<a name="sns-fork-event-search-and-analytics-pipeline"></a>

Das folgende Diagramm zeigt die [Pipeline für die Suche und Analyse von Ereignissen](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-search-analytics-pipeline). Sie können für diese Pipeline ein Abonnement Ihres Amazon SNS-Themas erstellen, um die Ereignisse in Ihrem System in einer Suchdomäne zu indizieren und anschließend zu analysieren.

Diese Pipeline besteht aus einer Amazon SQS SQS-Warteschlange, die die vom Amazon SNS SNS-Thema übermittelten Ereignisse zwischenspeichert, einer AWS Lambda Funktion, die Ereignisse aus der Warteschlange abfragt und in einen Stream überträgt, einer Amazon OpenSearch Service-Domain, die die vom Firehose-Stream geladenen Ereignisse indexiert, und einem Amazon S3 S3-Bucket, der die Ereignisse speichert, die nicht in der Such-Domain indexiert werden können.

![\[Die Event-Such- und Analytics-Pipeline innerhalb einer Architektur. AWS Es beginnt auf der linken Seite mit dem Amazon SNS SNS-Thema, in dem alle Ereignisse empfangen werden. Diese Ereignisse werden dann durch eine gestrichelte Linie, die „ausgefächerte gefilterte Ereignisse“ darstellt, in eine Amazon SQS SQS-Warteschlange geleitet. Ereignisse aus der Warteschlange werden von einer Lambda-Funktion verarbeitet, die sie dann an einen Data Firehose-Stream weiterleitet. Die Data Firehose leitet die Ereignisse an zwei Ziele weiter: Eine Route führt zu einem Amazon Elasticsearch Service zur Indizierung, und die andere Route sendet Ereignisse, die nicht verarbeitet werden können oder nur unvollständige Buchstaben enthalten, an einen Amazon S3 S3-Dead-Letter-Bucket. Ganz rechts wird die Ausgabe des Elasticsearch Service zur Analyse und Visualisierung in ein Kibana-Dashboard eingespeist. Der gesamte Datenfluss ist horizontal angeordnet und jede Komponente ist durch Linien miteinander verbunden, die die Richtung des Datenflusses angeben.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-fork-event-search-and-analytics-pipeline.png)


Um Ihren Firehose-Stream in Bezug auf die Pufferung, Transformierung und Komprimierung von Ereignissen zu optimieren, können Sie diese Pipeline konfigurieren.

Sie können auch konfigurieren, ob die Pipeline eine bestehende OpenSearch Domain in Ihrer wiederverwenden AWS-Konto oder eine neue für Sie erstellen soll. Während der Indizierung von Ereignissen in der Suchdomäne können Sie mit Kibana Analysen für Ihre Ereignisse ausführen und visuelle Dashboards in Echtzeit aktualisieren. 

### Die Pipeline für das Replay von Events
<a name="sns-fork-event-replay-pipeline"></a>

Das folgende Diagramm zeigt die [Pipeline für das Replay von Events](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-replay-pipeline). Um die Ereignisse aufzuzeichnen, die von Ihrem System in den letzten 14 Tagen verarbeitet wurden (beispielsweise für den Fall, dass Ihre Plattform nach einem Fehler wiederhergestellt werden muss), können Sie für diese Pipeline ein Abonnement Ihres Amazon SNS-Themas erstellen und anschließend die Ereignisse neu verarbeiten.

Diese Pipeline besteht aus einer Amazon SQS SQS-Warteschlange, die die vom Amazon SNS SNS-Thema übermittelten Ereignisse zwischenspeichert, und einer AWS Lambda Funktion, die Ereignisse aus der Warteschlange abfragt und sie in Ihre reguläre Ereignisverarbeitungspipeline zurückleitet, die auch Ihr Thema abonniert hat.

![\[Die Event Replay Pipeline in einem Flussdiagrammformat. Von links nach rechts beginnt es mit einem Amazon SNS SNS-Thema, das gefilterte Ereignisse auf zwei parallel Prozesse verteilt. Der obere Flow stellt Ihre reguläre Ereignisverarbeitungspipeline dar, die eine Amazon SQS SQS-Warteschlange umfasst, die Ereignisse verarbeitet. Der untere Flow, der als "“ bezeichnet wirdfork-event-replay-pipeline, umfasst eine Amazon SQS SQS-Wiedergabewarteschlange, in der Ereignisse vorübergehend gespeichert werden, bevor sie von einer Lambda-Wiedergabefunktion verarbeitet werden. Diese Lambda-Funktion ist in der Lage, Ereignisse erneut in Ihre reguläre Ereignisverarbeitungspipeline zu übertragen oder sie für die Wiedergabe vorzuhalten, je nachdem, ob die Wiedergabefunktion aktiviert oder deaktiviert ist. Das Diagramm zeigt auch, dass die Bediener die Kontrolle über die Aktivierung oder Deaktivierung der Funktion zur Ereigniswiedergabe haben.\]](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-fork-event-replay-pipeline.png)


**Anmerkung**  
Standardmäßig ist die Funktion für das erneute Abspielen deaktiviert und schiebt Ihre Ereignisse nicht erneut in die reguläre Pipeline. Wenn Sie Ereignisse erneut verarbeiten müssen, müssen Sie die Amazon-SQS-Warteschlange für das erneute Abspielen als Ereignisquelle für die AWS Lambda -Funktion für das erneute Abspielen aktivieren.

## Bereitstellung von AWS Event Fork-Pipelines
<a name="deploying-sns-fork-pipelines"></a>

[Die [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**) ist als Gruppe von öffentlichen Anwendungen in der verfügbar AWS Serverless Application Repository, von wo aus Sie sie mithilfe der AWS Lambda Konsole manuell bereitstellen und testen können.](https://console.aws.amazon.com/lambda/) Informationen zur Bereitstellung von Pipelines mithilfe der AWS Lambda Konsole finden Sie unter. [AWS Event Fork-Pipelines für ein Amazon SNS SNS-Thema abonnieren](sns-subscribe-event-fork-pipelines.md)

In einem Produktionsszenario empfehlen wir, AWS Event Fork-Pipelines in die SAM-Vorlage Ihrer gesamten Anwendung einzubetten. AWS Mit der Funktion für verschachtelte Anwendungen können Sie dies tun, indem Sie die Ressource `[AWS::Serverless::Application](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template.html#serverless-sam-template-application)` zu Ihrer AWS SAM-Vorlage hinzufügen und dabei auf die AWS SAR `ApplicationId` und die der verschachtelten Anwendung verweisen. `SemanticVersion`

Sie können beispielsweise die Event Storage and Backup Pipeline als verschachtelte Anwendung verwenden, indem Sie dem `Resources` Abschnitt Ihrer SAM-Vorlage den folgenden YAML-Snippet hinzufügen. AWS 

```
Backup:   
    Type: AWS::Serverless::Application
  Properties:
    Location:
      ApplicationId: arn:aws:serverlessrepo:us-east-2:123456789012:applications/fork-event-storage-backup-pipeline
      SemanticVersion: 1.0.0
    Parameters: 
      #The ARN of the Amazon SNS topic whose messages should be backed up to the Amazon S3 bucket.
      TopicArn: !Ref MySNSTopic
```

Wenn Sie Parameterwerte angeben, können Sie AWS CloudFormation systeminterne Funktionen verwenden, um auf andere Ressourcen in Ihrer Vorlage zu verweisen. Im obigen YAML-Snippet verweist der `TopicArn` Parameter beispielsweise auf die `[AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)` Ressource, die an anderer Stelle in der Vorlage `MySNSTopic` definiert ist. AWS SAM Weitere Informationen finden Sie in der [Referenz für intrinsische Funktion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) im *AWS CloudFormation -Benutzerhandbuch*.

**Anmerkung**  
Die AWS Lambda Konsolenseite für Ihre AWS SAR-Anwendung enthält die Schaltfläche **Als SAM-Ressource kopieren**, mit der das für die Verschachtelung einer AWS SAR-Anwendung erforderliche YAML in die Zwischenablage kopiert wird.

# 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`

# AWS Event Fork-Pipelines für ein Amazon SNS SNS-Thema abonnieren
<a name="sns-subscribe-event-fork-pipelines"></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).

In diesem Abschnitt wird gezeigt, wie Sie die verwenden können AWS-Managementkonsole , um eine Pipeline bereitzustellen und anschließend AWS Event Fork-Pipelines für ein Amazon SNS SNS-Thema zu abonnieren. Bevor Sie beginnen, [erstellen Sie ein Amazon SNS-Thema](sns-create-topic.md).

Um die Ressourcen zu löschen, aus denen eine Pipeline besteht, suchen Sie die Pipeline auf der **Anwendungsseite** von in der AWS Lambda Konsole, erweitern Sie den **Abschnitt SAM-Vorlage**, wählen Sie **CloudFormationStack** und dann **Andere Aktionen**, Stack **löschen** aus.

# Bereitstellung und Abonnement der Event Storage and Backup Pipeline für Amazon SNS
<a name="deploy-event-storage-backup-pipeline"></a>


|  | 
| --- |
| Für die Archivierung und Analyse von Ereignissen empfiehlt Amazon SNS jetzt, die native Integration mit Amazon Data Firehose zu verwenden. Sie können Firehose-Lieferstreams für SNS-Themen abonnieren, sodass Sie Benachrichtigungen an Archivierungs- und Analyseendpunkte wie Amazon Simple Storage Service (Amazon S3) -Buckets, Amazon Redshift Redshift-Tabellen, Amazon OpenSearch Service (OpenSearch Service) und mehr senden können. Die Verwendung von Amazon SNS mit Firehose Delivery Streams ist eine vollständig verwaltete und codelose Lösung, für die Sie keine Funktionen verwenden müssen. AWS Lambda Weitere Informationen finden Sie unter [Lieferstreams von Fanout nach Firehose](sns-firehose-as-subscriber.md). | 

In diesem Tutorial wird gezeigt, wie Sie die [Event Storage Backup Pipeline](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) bereitstellen und ein Amazon-SNS-Thema abonnieren. Dieser Prozess wandelt die der Pipeline zugeordnete AWS SAM Vorlage automatisch in einen CloudFormation Stack um und stellt den Stack dann in Ihrem Stack bereit. AWS-Konto Dieser Prozess erstellt und konfiguriert außerdem eine Reihe von Ressourcen, den Ereignisspeicher und die Sicherungspipeline umfassen, darunter:
+ Amazon-SQS-Warteschlange
+ Lambda-Funktion
+ Firehose-Bereitstellungsdat
+ Amazon S3 Backup Bucket

Weitere Informationen zur Konfiguration eines Streams mit einem Amazon S3 S3-Bucket als Ziel finden Sie `[S3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html)` in der *Amazon Data Firehose API-Referenz.*

Weitere Informationen zur Transformation von Ereignissen und zur Konfiguration von Ereignispufferung, Ereigniskomprimierung und Ereignisverschlüsselung finden Sie unter [Creating an Delivery Stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) im *Amazon Data Firehose Developer Guide*.

Weitere Informationen zur Filterung von Ereignissen finden Sie unter [Filterrichtlinien für Amazon-SNS-Abonnements](sns-subscription-filter-policies.md) in diesem Leitfaden.

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-event-storage-backup-pipeline` und wählen Sie dann die Anwendung aus.

1. Gehen Sie auf der Seite **fork-event-storage-backup-pipeline** wie folgt vor:

   1. Geben Sie im Abschnitt **Application settings** (Anwendungseinstellungen) einen **Application name** (Anwendungsname) ein (zum Beispiel `my-app-backup`).
**Anmerkung**  
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 für **BucketArn**den ARN des Amazon S3 S3-Buckets ein, in den eingehende Ereignisse geladen werden. Wenn Sie keinen Wert eingeben, wird ein neuer Amazon S3 S3-Bucket in Ihrem AWS Konto erstellt.

   1. (Optional) Geben Sie für **DataTransformationFunctionArn**den ARN der Lambda-Funktion ein, über die die eingehenden Ereignisse transformiert werden. Wenn Sie keinen Wert eingeben, wird die Datentransformation deaktiviert.

   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. Geben Sie für **TopicArn**den ARN des Amazon SNS SNS-Themas ein, für das diese Instance der Fork-Pipeline abonniert werden soll.

   1. (Optional) Geben Sie für **StreamBufferingIntervalInSeconds**und **StreamBufferingSizeInMBs**die Werte für die Konfiguration der Pufferung eingehender Ereignisse ein. Wenn Sie keine Werte eingeben, 300 Sekunden und 5 MB verwendet.

   1. (Optional) Geben Sie eine der folgenden **StreamCompressionFormat**Einstellungen für die Komprimierung eingehender Ereignisse ein:
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (Standard)
      + `ZIP`

   1. (Optional) Geben Sie für das Zeichenkettenpräfix ein **StreamPrefix**, um Dateien zu benennen, die im Amazon S3 S3-Backup-Bucket gespeichert sind. Wenn Sie keinen Wert eingeben, wird kein Präfix verwendet.

   1. (Optional) Geben Sie für **SubscriptionFilterPolicy**die Amazon SNS SNS-Abonnementfilterrichtlinie im JSON-Format ein, die zum Filtern eingehender Ereignisse verwendet werden soll. Die Filterrichtlinie entscheidet, welche Ereignisse im OpenSearch Service-Index indexiert werden. Wenn Sie keinen Wert eingeben, wird keine Filterung verwendet wird (alle Ereignisse werden indiziert).

   1. (Optional) Geben Sie für die Zeichenfolge ein **SubscriptionFilterPolicyScope**, `MessageBody` oder `MessageAttributes` um die nutzlast- oder attributbasierte Nachrichtenfilterung zu aktivieren. 

   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 **Deploy (Bereitstellen)**.

Auf der *my-app* Seite **Bereitstellungsstatus für** 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.**

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

Zu Ihrem Amazon SNS SNS-Thema veröffentlichte Nachrichten werden im Amazon S3 S3-Backup-Bucket gespeichert, der von der Event Storage and Backup-Pipeline automatisch bereitgestellt wird.

# Bereitstellung und Abonnement der Event Search and Analytics-Pipeline für Amazon SNS
<a name="deploy-event-search-analytics-pipeline"></a>


|  | 
| --- |
| Für die Archivierung und Analyse von Ereignissen empfiehlt Amazon SNS jetzt, die native Integration mit Amazon Data Firehose zu verwenden. Sie können Firehose-Lieferstreams für SNS-Themen abonnieren, sodass Sie Benachrichtigungen an Archivierungs- und Analyseendpunkte wie Amazon Simple Storage Service (Amazon S3) -Buckets, Amazon Redshift Redshift-Tabellen, Amazon OpenSearch Service (OpenSearch Service) und mehr senden können. Die Verwendung von Amazon SNS mit Firehose Delivery Streams ist eine vollständig verwaltete und codelose Lösung, für die Sie keine Funktionen verwenden müssen. AWS Lambda Weitere Informationen finden Sie unter [Lieferstreams von Fanout nach Firehose](sns-firehose-as-subscriber.md). | 

In diesem Tutorial wird gezeigt, wie Sie die [Ereignissuche- und Analytik-Pipeline](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) bereitstellen und von diesen ein Amazon SNS-Thema abonnieren lassen. Dieser Prozess wandelt die der Pipeline zugeordnete AWS SAM Vorlage automatisch in einen CloudFormation Stack um und stellt den Stack dann in Ihrem Stack bereit. AWS-Konto Dieser Prozess erstellt und konfiguriert außerdem eine Reihe von Ressourcen, die die Ereignissuche und die Analysepipeline umfassen, darunter:
+ Amazon-SQS-Warteschlange
+ Lambda-Funktion
+ Firehose-Bereitstellungsdat
+ Amazon OpenSearch Service-Domäne
+ Amazon S3 Bucket für unzustellbare Nachrichten

Weitere Informationen zur Konfiguration eines Streams mit einem Index als Ziel finden Sie `[ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html)` in der *Amazon Data Firehose API-Referenz.*

Weitere Informationen zur Transformation von Ereignissen und zur Konfiguration von Ereignispufferung, Ereigniskomprimierung und Ereignisverschlüsselung finden Sie unter [Creating an Delivery Stream](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) im *Amazon Data Firehose Developer Guide*.

Weitere Informationen zur Filterung von Ereignissen finden Sie unter [Filterrichtlinien für Amazon-SNS-Abonnements](sns-subscription-filter-policies.md) in diesem Leitfaden.

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-event-search-analytics-pipeline` und wählen Sie dann die Anwendung aus.

1. Gehen Sie auf der Seite **fork-event-search-analytics-pipeline** wie folgt vor:

   1. Geben Sie im Abschnitt **Application settings** (Anwendungseinstellungen) einen **Application name** (Anwendungsname) ein (zum Beispiel `my-app-search`).
**Anmerkung**  
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 für den ARN der Lambda-Funktion ein **DataTransformationFunctionArn**, die für die Transformation eingehender Ereignisse verwendet wird. Wenn Sie keinen Wert eingeben, wird die Datentransformation deaktiviert.

   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. (Optional) Geben Sie für **SearchDomainArn**den ARN der OpenSearch Service-Domain ein, einen Cluster, der die benötigten Rechen- und Speicherfunktionen konfiguriert. Wenn Sie keinen Wert eingeben, wird eine neue Domäne mit der Standard-Konfiguration erstellt.

   1. Geben Sie für **TopicArn**den ARN des Amazon SNS SNS-Themas ein, für das diese Instance der Fork-Pipeline abonniert werden soll.

   1. Geben Sie für **SearchIndexName**den Namen des OpenSearch Service-Index für die Suche und Analyse von Ereignissen ein.
**Anmerkung**  
Die folgenden Kontingente gelten für Indexnamen:  
Sie dürfen keine Großbuchstaben enthalten.
Es dürfen keine der folgenden Zeichen enthalten sein: `\ / * ? " < > | ` , #`
Sie dürfen nicht mit den folgenden Zeichen beginnen: `- + _`
Sie dürfen nicht folgende Zeichen sein: `. ..`
Sie dürfen nicht mehr als 80 Zeichen enthalten.
Sie dürfen nicht mehr als 255 Bytes enthalten.
Darf keinen Doppelpunkt enthalten (ab OpenSearch Service 7.0)

   1. (Optional) Geben Sie eine der folgenden **SearchIndexRotationPeriod**Einstellungen für den Rotationszeitraum des OpenSearch Serviceindex ein:
      + `NoRotation` (Standard)
      + `OneDay`
      + `OneHour`
      + `OneMonth`
      + `OneWeek`

      Die Indexrotation hängt dem Indexnamen einen Zeitstempel an, was den Ablauf veralteter Daten ermöglicht. 

   1. Geben Sie für **SearchTypeName**den Namen des OpenSearch Servicetyps für die Organisation der Ereignisse in einem Index ein.
**Anmerkung**  
OpenSearch Namen von Servicetypen können ein beliebiges Zeichen (außer Null-Bytes) enthalten, dürfen aber nicht mit beginnen`_`.
Für OpenSearch Service 6.x kann es nur einen Typ pro Index geben. Wenn Sie einen neuen Typ für einen vorhandenen Index angeben, der bereits einen anderen Typ hat, gibt Firehose einen Laufzeitfehler zurück.

   1. (Optional) Geben Sie für **StreamBufferingIntervalInSeconds**und **StreamBufferingSizeInMBs**die Werte für die Konfiguration der Pufferung eingehender Ereignisse ein. Wenn Sie keine Werte eingeben, 300 Sekunden und 5 MB verwendet.

   1. (Optional) Geben Sie eine der folgenden **StreamCompressionFormat**Einstellungen für die Komprimierung eingehender Ereignisse ein:
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (Standard)
      + `ZIP`

   1. (Optional) Geben Sie für das Zeichenkettenpräfix ein **StreamPrefix**, um Dateien zu benennen, die im Amazon S3 S3-Dead-Letter-Bucket gespeichert sind. Wenn Sie keinen Wert eingeben, wird kein Präfix verwendet.

   1. (Optional) Geben Sie für die Wiederholungsdauer für Fälle ein **StreamRetryDurationInSecons**, in denen Firehose keine Ereignisse im OpenSearch Serviceindex indizieren kann. Wenn Sie keinen Wert eingeben, wird 300 Sekunden verwendet.

   1. (Optional) Geben Sie für **SubscriptionFilterPolicy**die Amazon SNS SNS-Abonnementfilterrichtlinie im JSON-Format ein, die zum Filtern eingehender Ereignisse verwendet werden soll. Die Filterrichtlinie entscheidet, welche Ereignisse im OpenSearch Service-Index indexiert werden. Wenn Sie keinen Wert eingeben, wird keine Filterung verwendet wird (alle Ereignisse werden indiziert).

   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 **Deploy (Bereitstellen)**.

Auf der *my-app-search* Seite **Bereitstellungsstatus für** 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.**

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

Nachrichten, die zu Ihrem Amazon SNS SNS-Thema veröffentlicht wurden, werden automatisch im OpenSearch Service-Index indexiert, der von der Event Search and Analytics-Pipeline bereitgestellt wird. Wenn die Pipeline ein Ereignis nicht indizieren kann, speichert sie es in einem Amazon S3 S3-Dead-Letter-Bucket.

# Bereitstellung der Event Replay Pipeline mit Amazon SNS SNS-Integration
<a name="deploy-event-replay-pipeline"></a>

In diesem Tutorial wird gezeigt, wie Sie die [Ereignis-Wiederholungspipeline](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) bereitstellen und von dieser ein Amazon-SNS-Thema abonnieren lassen. Dieser Prozess wandelt die der Pipeline zugeordnete AWS SAM Vorlage automatisch in einen CloudFormation Stack um und stellt den Stack dann in Ihrem bereit. AWS-Konto Dieser Prozess erstellt und konfiguriert außerdem eine Reihe von Ressourcen, die die Ereignis-Wiederholungs-Pipeline umfassen, darunter eine Amazon-SQS-Warteschlange und eine Lambda-Funktion.

Weitere Informationen zur Filterung von Ereignissen finden Sie unter [Filterrichtlinien für Amazon-SNS-Abonnements](sns-subscription-filter-policies.md) in diesem Leitfaden.

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-event-replay-pipeline` und wählen Sie dann die Anwendung aus.

1. Auf der**fork-event-replay-pipeline**-Seite, machen Sie das Folgende:

   1. Geben Sie im Abschnitt **Application settings** (Anwendungseinstellungen) einen **Application name** (Anwendungsname) ein (zum Beispiel `my-app-replay`).
**Anmerkung**  
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. (Optional) Geben Sie für **ReplayQueueRetentionPeriodInSeconds**den Zeitraum in Sekunden ein, für den die Amazon SQS SQS-Wiedergabewarteschlange die Nachricht aufbewahrt. Wenn Sie keinen Wert eingeben, wird 1.209.600 Sekunden (14 Tage) verwendet.

   1. Geben Sie für **TopicArn**den ARN des Amazon SNS SNS-Themas ein, für das diese Instance der Fork-Pipeline abonniert werden soll.

   1. Geben Sie für **DestinationQueueName**den Namen der Amazon SQS SQS-Warteschlange ein, an die die Lambda-Wiedergabefunktion Nachrichten weiterleitet.

   1. (Optional) Geben Sie für **SubscriptionFilterPolicy**die Amazon SNS SNS-Abonnementfilterrichtlinie im JSON-Format ein, die zum Filtern eingehender Ereignisse verwendet werden soll. Die Filterrichtlinie legt fest, welche Ereignisse für die Wiederholung gepuffert werden. Wenn Sie keinen Wert eingeben, wird keine Filterung verwendet wird (alle Ereignisse werden für die Wiederholung gepuffert).

   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 **Deploy** (Bereitstellen).

Auf der *my-app-replay* Seite **Bereitstellungsstatus für** 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.**

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

Für Ihr Amazon SNS-Thema veröffentlichte Nachrichten werden in der von der Ereignis-Wiederholungspipeline bereitgestellten Amazon SQS-Warteschlange automatisch gepuffert.

**Anmerkung**  
Standardmäßig ist die Wiederholung deaktiviert. Um die Wiederholung zu aktivieren, navigieren Sie zur Seite der Funktion in der Lambda-Konsole, erweitern Sie den Abschnitt **Designer**, wählen Sie das Feld **SQS** und dann im Abschnitt **SQS** die Option **Enabled** (Aktiviert).