

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.

# MSK Connect verstehen
<a name="msk-connect"></a>

MSK Connect ist ein Feature von Amazon MSK, die es Entwicklern erleichtert, Daten zu und von ihren Apache-Kafka-Clustern zu streamen. MSK Connect verwendet die Kafka Connect-Versionen 2.7.1 oder 3.7.x, Open-Source-Frameworks für die Verbindung von Apache Kafka-Clustern mit externen Systemen wie Datenbanken, Suchindizes und Dateisystemen. Mit MSK Connect können Sie vollständig verwaltete Konnektoren bereitstellen, die für Kafka Connect entwickelt wurden und Daten in beliebte Datenspeicher wie Amazon S3 und Amazon OpenSearch Service verschieben oder Daten aus diesen abrufen. Sie können Konnektoren einsetzen, die von Drittanbietern wie Debezium entwickelt wurden, um Änderungsprotokolle aus Datenbanken in einen Apache-Kafka-Cluster zu streamen, oder einen vorhandenen Konnektor ohne Codeänderungen bereitstellen. Konnektoren skalieren automatisch, um sich an Laständerungen anzupassen. Sie zahlen nur für die tatsächlich genutzten Ressourcen.

Verwenden Sie Quell-Konnektoren, um Daten aus externen Systemen in Ihre Themen zu importieren. Mit Sink-Konnektoren können Sie Daten aus Ihren Themen in externe Systeme exportieren.

MSK Connect unterstützt Konnektoren für jeden Apache-Kafka-Cluster mit Konnektivität zu einer Amazon VPC, unabhängig davon, ob es sich um einen MSK-Cluster oder einen unabhängig gehosteten Apache-Kafka-Cluster handelt. 

MSK Connect überwacht kontinuierlich den Zustand und den Bereitstellungsstatus der Konnektoren, patcht und verwaltet die zugrunde liegende Hardware und skaliert die Konnektoren automatisch, um sie an Änderungen im Durchsatz anzupassen.

Die ersten Schritte mit MSK Connect finden Sie unter [Erste Schritte mit MSK Connect](msk-connect-getting-started.md). 

Informationen zu den AWS Ressourcen, die Sie mit MSK Connect erstellen können, finden Sie unter [Steckverbinder verstehen](msk-connect-connectors.md)[Erstellen Sie benutzerdefinierte Plugins](msk-connect-plugins.md), und[MSK Connect-Mitarbeiter verstehen](msk-connect-workers.md).

Informationen zur MSK-Connect-API finden Sie in der [Referenz zu Amazon MSK Connect API](https://docs.aws.amazon.com/MSKC/latest/mskc/Welcome.html). 

## Vorteile der Verwendung von Amazon MSK Connect
<a name="msk-connect-benefits"></a>

Apache Kafka ist eine der am weitesten verbreiteten Open-Source-Streaming-Plattformen für die Aufnahme und Verarbeitung von Echtzeit-Datenströmen. Mit Apache Kafka können Sie Ihre datenproduzierenden und datenverbrauchenden Anwendungen entkoppeln und unabhängig voneinander skalieren.

Kafka Connect ist eine wichtige Komponente beim Erstellen und Ausführen von Streaming-Anwendungen mit Apache Kafka. Kafka Connect bietet eine standardisierte Methode zum Verschieben von Daten zwischen Kafka und externen Systemen. Kafka Connect ist hochgradig skalierbar und kann große Datenmengen verarbeiten. Kafka Connect bietet leistungsstarke API-Operationen und Tools für die Konfiguration, Bereitstellung und Überwachung von Konnektoren, die Daten zwischen Kafka-Themen und externen Systemen übertragen. Sie können diese Tools verwenden, um die Funktionalität von Kafka Connect an die spezifischen Anforderungen Ihrer Streaming-Anwendung anzupassen und zu erweitern.

Sie können auf Probleme stoßen, wenn Sie Apache Kafka Connect-Cluster eigenständig betreiben oder wenn Sie versuchen, Open-Source-Apache Kafka Connect-Anwendungen zu migrieren. AWS Zu diesen Herausforderungen gehören der Zeitaufwand für die Einrichtung der Infrastruktur und die Bereitstellung von Anwendungen, technische Hindernisse bei der Einrichtung von selbstverwalteten Apache Kafka Connect-Clustern und der administrative Betriebsaufwand.

Um diesen Herausforderungen zu begegnen, empfehlen wir, Amazon Managed Streaming for Apache Kafka Connect (Amazon MSK Connect) zu verwenden, um Ihre Open-Source-Apache Kafka Connect-Anwendungen zu migrieren. AWS Amazon MSK Connect vereinfacht die Verwendung von Kafka Connect zum Streamen von und zu Apache Kafka-Clustern und externen Systemen wie Datenbanken, Suchindizes und Dateisystemen.

Hier sind einige der Vorteile einer Migration zu Amazon MSK Connect:
+ **Eliminierung des betrieblichen Overheads** — Amazon MSK Connect verringert den betrieblichen Aufwand, der mit dem Patchen, Bereitstellen und Skalieren von Apache Kafka Connect-Clustern verbunden ist. Amazon MSK Connect überwacht kontinuierlich den Zustand Ihrer Connect-Cluster und automatisiert Patches und Versions-Upgrades, ohne dass Ihre Workloads unterbrochen werden.
+ **Automatischer Neustart von Connect-Aufgaben — Amazon MSK Connect** kann fehlgeschlagene Aufgaben automatisch wiederherstellen, um Produktionsunterbrechungen zu reduzieren. Aufgabenausfälle können durch vorübergehende Fehler verursacht werden, z. B. durch das Überschreiten des TCP-Verbindungslimits für Kafka und durch eine Neuverteilung von Aufgaben, wenn neue Mitarbeiter der Nutzergruppe für Senk-Connectoren beitreten.
+ **Automatische horizontale und vertikale Skalierung** — Amazon MSK Connect ermöglicht es der Connector-Anwendung, automatisch zu skalieren, um höhere Durchsätze zu unterstützen. Amazon MSK Connect verwaltet die Skalierung für Sie. Sie müssen nur die Anzahl der Worker in der Auto Scaling-Gruppe und die Nutzungsschwellenwerte angeben. Sie können den Amazon MSK Connect `UpdateConnector` API-Vorgang verwenden, um das v CPUs zwischen 1 und 8 v vertikal nach oben oder unten zu skalieren, um einen variablen Durchsatz CPUs zu unterstützen.
+ **Private Netzwerkkonnektivität** — Amazon MSK Connect stellt über private DNS-Namen eine private Verbindung zu Quell AWS PrivateLink - und Senkensystemen her.

# Erste Schritte mit MSK Connect
<a name="msk-connect-getting-started"></a>

In diesem step-by-step Tutorial werden ein MSK-Cluster und ein Sink-Connector erstellt, der Daten vom Cluster an einen S3-Bucket sendet. AWS-Managementkonsole 

**Topics**
+ [Richten Sie die für MSK Connect erforderlichen Ressourcen ein](mkc-tutorial-setup.md)
+ [Benutzerdefiniertes Plugin erstellen](mkc-create-plugin.md)
+ [Client-Computer und Apache Kafka-Thema erstellen](mkc-create-topic.md)
+ [Konnektor erstellen](mkc-create-connector.md)
+ [Senden Sie Daten an den MSK-Cluster](mkc-send-data.md)

# Richten Sie die für MSK Connect erforderlichen Ressourcen ein
<a name="mkc-tutorial-setup"></a>

In diesem Schritt erstellen Sie die folgenden Ressourcen, die Sie für dieses Erste-Schritte-Szenario benötigen:
+ Ein Amazon S3 S3-Bucket, der als Ziel dient und Daten vom Connector empfängt.
+ Ein MSK-Cluster, an den Sie Daten senden werden. Der Konnektor liest dann die Daten aus diesem Cluster und sendet sie an den Ziel-S3-Bucket.
+ Eine IAM-Richtlinie, die die Berechtigungen zum Schreiben in den S3-Ziel-Bucket enthält.
+ Eine IAM-Rolle, die es dem Konnektor ermöglicht, in den S3-Ziel-Bucket zu schreiben. Sie fügen die IAM-Richtlinie, die Sie erstellen, zu dieser Rolle hinzu.
+ Ein Amazon-VPC-Endpunkt, der es ermöglicht, Daten von der Amazon-VPC, die den Cluster und den Konnektor enthält, an Amazon S3 zu senden.

**So erstellen Sie den S3-Bucket**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie **Create Bucket** (Bucket erstellen) aus.

1. Geben Sie für den Namen des Buckets einen beschreibenden Namen ein, z. B. `amzn-s3-demo-bucket-mkc-tutorial`.

1. Scrollen Sie nach unten und wählen Sie **Bucket erstellen**.

1. Wählen Sie in der Bucket-Liste den neu erstellten Bucket aus.

1. Wählen Sie **Create folder**.

1. Geben Sie `tutorial` für den Namen des Ordners ein, scrollen Sie dann nach unten und wählen Sie **Ordner erstellen**.

**So erstellen Sie den Cluster**

1. Die Amazon MSK-Konsole zu [https://console.aws.amazon.com/msk/Hause öffnen? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. Wählen Sie im linken Bereich unter **MSK-Cluster** die Option **Cluster**.

1. Wählen Sie **Cluster erstellen**.

1. **Wählen Sie unter Erstellungsmethode die Option Benutzerdefiniert aus**.****

1. Geben Sie für Cluster-Name **mkc-tutorial-cluster** ein.

1. Wählen Sie unter **Clustertyp** die Option **Bereitgestellt aus.**

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

1. Wählen Sie unter **Netzwerk** eine Amazon VPC aus. Wählen Sie dann die Availability Zones und Subnetze aus, die Sie verwenden möchten. Denken Sie IDs an die Amazon VPC und Subnetze, die Sie ausgewählt haben, da Sie sie später in diesem Tutorial benötigen.

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

1. Stellen Sie sicher, dass unter **Zugriffssteuerungs-Methoden** nur **Nicht authentifizierter Zugriff** ausgewählt ist.

1. Stellen Sie sicher, dass unter **Verschlüsselung** nur **Klartext** ausgewählt ist.

1. Fahren Sie mit dem Assistenten fort und wählen Sie dann **Cluster erstellen**. Dadurch gelangen Sie zur Detailseite für den Cluster. Suchen Sie auf dieser Seite unter **Angewendete Sicherheitsgruppen** nach der Sicherheitsgruppen-ID. Merken Sie sich diese ID, da Sie sie später in diesem Tutorial benötigen.

**Um eine IAM-Richtlinie mit Schreibberechtigungen in den S3-Bucket zu erstellen**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Richtlinien**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wählen Sie im **Richtlinieneditor** **JSON** aus und ersetzen Sie dann das JSON im Editorfenster durch das folgende JSON.

   Im folgenden Beispiel ersetzen Sie es *<amzn-s3-demo-bucket-my-tutorial>* durch den Namen Ihres S3-Buckets.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowListBucket",
         "Effect": "Allow",
         "Action": [
           "s3:ListBucket",
           "s3:GetBucketLocation"
         ],
         "Resource": "arn:aws:s3:::<amzn-s3-demo-bucket-my-tutorial>"
       },
       {
         "Sid": "AllowObjectActions",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:DeleteObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts",
           "s3:ListBucketMultipartUploads"
         ],
         "Resource": "arn:aws:s3:::<amzn-s3-demo-bucket-my-tutorial>/*"
       }
     ]
   }
   ```

------

   Anweisungen zum Schreiben sicherer Richtlinien finden Sie unter[IAM-Zugriffssteuerung](iam-access-control.md).

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

1. Gehen Sie auf der Seite **Überprüfen und erstellen** wie folgt vor:

   1. Geben Sie als **Richtlinienname** einen aussagekräftigen Namen ein, z. B. **mkc-tutorial-policy**

   1. Unter **In dieser Richtlinie definierte Berechtigungen** finden Sie weitere Informationen and/or zu den in Ihrer Richtlinie definierten Berechtigungen.

   1. (Optional) Um die Richtlinie leichter zu identifizieren, zu organisieren oder nach ihr zu suchen, wählen Sie **Neues Tag hinzufügen** aus, um Stichwörter als Schlüssel-Wert-Paare hinzuzufügen. Fügen Sie Ihrer Richtlinie beispielsweise ein Tag mit dem Schlüssel-Wert-Paar und hinzu. **Environment** **Test**

      Weitere Informationen zur Verwendung von Tags finden Sie unter [Tags für AWS Identity and Access Management Ressourcen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) im *IAM-Benutzerhandbuch*.

1. Wählen Sie **Richtlinie erstellen** aus.

**So erstellen Sie die IAM-Rolle, die in den Ziel-Bucket schreiben kann**

1. Wählen Sie im Navigationsbereich der IAM-Konsole **Rollen und anschließend Rolle** **erstellen** aus.

1. Gehen Sie auf der Seite **Select trusted entity** (Vertrauenswürdige Entität auswählen) wie folgt vor:

   1. Wählen Sie für **Vertrauenswürdige Entität** die Option **AWS-Service** aus.

   1. Wählen Sie für **Service oder Anwendungsfall** **S3** aus.

   1. Wählen **Sie unter Anwendungsfall** die Option **S3** aus.

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

1. Gehen Sie auf der Seite **Berechtigungen hinzufügen** wie folgt vor:

   1. Geben Sie im Suchfeld unter **Berechtigungsrichtlinien** den Namen der Richtlinie ein, die Sie zuvor für dieses Tutorial erstellt haben. Beispiel, **mkc-tutorial-policy**. Wählen Sie dann das Feld links neben dem Richtliniennamen aus.

   1. (Optional) Legen Sie eine [Berechtigungsgrenze](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) fest. Dies ist ein erweitertes Feature, das für Servicerollen verfügbar ist, aber nicht für servicegebundene Rollen. Informationen zum Festlegen einer Berechtigungsgrenze finden Sie unter [Rollen erstellen und Richtlinien anhängen (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html) im *IAM-Benutzerhandbuch*.

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

1. Gehen Sie auf der Seite **Name, review, and create** (Benennen, überprüfen und erstellen) wie folgt vor:

   1. Geben Sie **unter Rollenname** einen aussagekräftigen Namen ein, z. B. **mkc-tutorial-role**
**Wichtig**  
Beachten Sie beim Benennen einer Rolle Folgendes:  
Rollennamen müssen innerhalb Ihres AWS-Konto Unternehmens eindeutig sein und können nicht von Fall zu Fall eindeutig sein.  
Erstellen Sie beispielsweise keine Rollen mit dem Namen **PRODROLE** und **prodrole**. Wenn ein Rollenname in einer Richtlinie oder als Teil einer ARN verwendet wird, muss die Groß-/Kleinschreibung des Rollennamens beachtet werden. Wenn ein Rollenname den Kunden jedoch in der Konsole angezeigt wird, z. B. während des Anmeldevorgangs, wird die Groß-/Kleinschreibung des Rollennamens nicht beachtet.
Sie können den Namen der Rolle nach ihrer Erstellung nicht mehr bearbeiten, da andere Entitäten möglicherweise auf die Rolle verweisen.

   1. (Optional) Geben Sie unter **Beschreibung** eine Beschreibung für die neue Rolle ein.

   1. (Optional) Um die Anwendungsfälle und Berechtigungen für die Rolle zu bearbeiten, wählen Sie in **Schritt 1: Vertrauenswürdige Entitäten auswählen** oder **Schritt 2: Abschnitte mit Berechtigungen hinzufügen** die Option **Bearbeiten** aus.

   1. (Optional) Um die Rolle leichter zu identifizieren, zu organisieren oder nach ihr zu suchen, wählen Sie **Neues Tag hinzufügen** aus, um Tags als Schlüssel-Wert-Paare hinzuzufügen. Fügen Sie Ihrer Rolle beispielsweise ein Tag mit dem Schlüssel-Wert-Paar und hinzu. **ProductManager** **John**

      Weitere Informationen zur Verwendung von Tags finden Sie unter [Tags für AWS Identity and Access Management Ressourcen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) im *IAM-Benutzerhandbuch*.

1. Prüfen Sie die Rolle und klicken Sie dann auf **Create Role (Rolle erstellen)**.

**So erlauben Sie MSK Connect, die Rolle zu übernehmen**

1. Wählen Sie in der IAM-Konsole im linken Bereich unter **Zugriffsverwaltung** die Option **Rollen** aus.

1. Suchen Sie die `mkc-tutorial-role` und wählen Sie sie aus.

1. Wählen Sie unter der **Übersicht** der Rolle die Registerkarte **Vertrauensstellungen** aus.

1. Wählen Sie **Vertrauensstellung bearbeiten** aus.

1. Ersetzen Sie die vorhandene Vertrauensrichtlinie durch den folgenden JSON-Code.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "kafkaconnect.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Wählen Sie **Update Trust Policy** (Trust Policy aktualisieren).

**So erstellen Sie einen Amazon-VPC-Endpunkt von der Cluster-VPC zu Amazon S3**

1. Öffnen Sie die Amazon-VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie im linken Navigationsbereich **Endpunkte** aus.

1. Wählen Sie **Endpunkt erstellen** aus.

1. Wählen Sie unter **Service-Name** den Service **com.amazonaws.us-east-1.s3** und den **Gateway**-Typ aus.

1. Wählen Sie die VPC des Clusters und dann das Feld links neben der Routing-Tabelle aus, die den Subnetzen des Clusters zugeordnet ist.

1. Wählen Sie **Endpunkt erstellen** aus.

**Nächster Schritt**

[Benutzerdefiniertes Plugin erstellen](mkc-create-plugin.md)

# Benutzerdefiniertes Plugin erstellen
<a name="mkc-create-plugin"></a>

Ein Plugin enthält den Code, der die Logik des Konnektors definiert. In diesem Schritt erstellen Sie ein benutzerdefiniertes Plugin, das den Code für den Lenses Amazon S3 Sink Connector enthält. In einem späteren Schritt, wenn Sie den MSK-Konnektor erstellen, geben Sie an, dass sich sein Code in diesem benutzerdefinierten Plugin befindet. Sie können dasselbe Plugin verwenden, um mehrere MSK-Conectors mit unterschiedlichen Konfigurationen zu erstellen.

**So erstellen Sie das benutzerdefinierte Plugin**

1. Laden Sie den [S3-Konnektor](https://www.confluent.io/hub/confluentinc/kafka-connect-s3) herunter.

1. Laden Sie die ZIP-Datei in einen S3-Bucket hoch, auf den Sie Zugriff haben. Informationen zum Hochladen von Dateien auf Amazon S3 finden Sie unter [Hochladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) im Amazon-S3-Benutzerhandbuch.

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Erweitern Sie im linken Bereich **MSK Connect** und wählen Sie dann **Benutzerdefinierte Plugins**.

1. Wählen Sie **Benutzerdefiniertes Plugin erstellen**.

1. Wählen Sie **S3 durchsuchen**.

1. Suchen Sie in der Liste der Buckets den Bucket, in den Sie die ZIP-Datei hochgeladen haben, und wählen Sie diesen Bucket aus.

1. Wählen Sie in der Liste der Objekte im Bucket das Optionsfeld links neben der ZIP-Datei aus und klicken Sie dann auf die Schaltfläche mit der Bezeichnung **Auswählen**.

1. Geben Sie `mkc-tutorial-plugin` für den Namen des benutzerdefinierten Plugins ein und wählen Sie dann **Benutzerdefiniertes Plugin erstellen**.

Es kann AWS einige Minuten dauern, bis die Erstellung des benutzerdefinierten Plugins abgeschlossen ist. Wenn der Erstellungsvorgang abgeschlossen ist, sehen Sie die folgende Meldung in einem Banner oben im Browserfenster.

```
Custom plugin mkc-tutorial-plugin was successfully created
The custom plugin was created. You can now create a connector using this custom plugin.
```

**Nächster Schritt**

[Client-Computer und Apache Kafka-Thema erstellen](mkc-create-topic.md)

# Client-Computer und Apache Kafka-Thema erstellen
<a name="mkc-create-topic"></a>

In diesem Schritt erstellen Sie eine Amazon-EC2-Instance, die als Apache-Kafka-Client-Instance verwendet werden soll. Anschließend verwenden Sie diese Instance, um ein Thema im Cluster zu erstellen.

**Erstellen eines Client-Computers**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie **Launch Instances** aus.

1. Geben Sie einen **Namen** für Ihren Client-Computer ein, z. B. **mkc-tutorial-client**

1. Lassen Sie **Amazon Linux 2 AMI (HVM) – Kernel 5.10, SSD Volume Type** als **Amazon Machine Image (AMI)-Typ** ausgewählt.

1. Wählen Sie den Instance-Typ **t2.xlarge**.

1. Wählen Sie unter **Schlüsselpaar (Login)** die Option **Neues Schlüsselpaar erstellen**. Geben Sie **mkc-tutorial-key-pair** für den **Schlüsselpaar-Namen** ein und wählen Sie dann **Schlüsselpaar herunterladen**. Alternativ können Sie ein vorhandenes Schlüsselpaar verwenden.

1. Wählen Sie **Launch Instance (Instance starten)** aus.

1. Klicken Sie auf **View Instances (Instances anzeigen)**. Wählen Sie dann in der Spalte **Sicherheitsgruppen** die Sicherheitsgruppe, die Ihrer neuen Instance zugeordnet ist. Kopieren Sie die ID der Sicherheitsgruppe, und speichern Sie sie für später.

**So erlauben Sie es dem neu erstellten Client, Daten an den Cluster zu senden**

1. Öffnen Sie die Amazon-VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie im linken Bereich unter **SECURITY** die Option **Sicherheitsgruppen**. Suchen Sie in der Spalte **Sicherheitsgruppen-ID** die Sicherheitsgruppe des Clusters. Sie haben die ID dieser Sicherheitsgruppe gespeichert, als Sie den Cluster in [Richten Sie die für MSK Connect erforderlichen Ressourcen ein](mkc-tutorial-setup.md) erstellt haben. Wählen Sie diese Sicherheitsgruppe aus, indem Sie das Feld links neben der Zeile auswählen. Stellen Sie sicher, dass keine anderen Sicherheitsgruppen gleichzeitig ausgewählt sind.

1. Wählen Sie im unteren Bereich der Seite die Registerkarte **Regeln für eingehenden Datenverkehr**.

1. Wählen Sie **Edit inbound rules** (Regeln für eingehenden Datenverkehr bearbeiten) aus.

1. Wählen Sie unten links auf dem Bildschirm **Regel hinzufügen**.

1. Wählen Sie in der neuen Regel **All traffic (Gesamter Datenverkehr)** in der Spalte **Type (Typ)**. Geben Sie im Feld rechts neben der Spalte **Quelle** die ID der Sicherheitsgruppe des Client-Computers ein. Dies ist die Sicherheitsgruppen-ID, die Sie gespeichert haben, nachdem Sie den Client-Computer erstellt haben.

1. Wählen Sie **Regeln speichern** aus. Ihr MSK-Cluster akzeptiert jetzt den gesamten Datenverkehr von dem Client, den Sie im vorherigen Verfahren erstellt haben.

**Erstellen Sie ein Thema wie folgt**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie `mkc-tutorial-client` in der Instance-Tabelle.

1. Wählen Sie oben auf dem Bildschirm **Verbinden** aus und folgen Sie dann den Anweisungen, um eine Verbindung mit der Instance herzustellen.

1. Installieren Sie Java auf der Client-Instance, indem Sie den folgenden Befehl ausführen:

   ```
   sudo yum install java-1.8.0
   ```

1. Führen Sie den folgenden Befehl aus, um Apache Kafka herunterzuladen. 

   ```
   wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz
   ```
**Anmerkung**  
Wenn Sie eine andere als die in diesem Befehl verwendete Spiegelsite verwenden möchten, können Sie eine andere auf der [Apache](https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/kafka_2.11-1.1.1.tgz)-Website auswählen.

1. Führen Sie den folgenden Befehl in dem Verzeichnis aus, in das Sie im vorherigen Schritt die TAR-Datei heruntergeladen haben.

   ```
   tar -xzf kafka_2.12-2.2.1.tgz
   ```

1. Wechseln Sie zum Verzeichnis **kafka\$12.12-2.2.1**.

1. Die Amazon MSK-Konsole zu [https://console.aws.amazon.com/msk/Hause öffnen? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. Wählen Sie im linken Bereich **Cluster** und dann den Namen `mkc-tutorial-cluster`.

1. Wählen Sie **Client-Informationen anzeigen** aus.

1. Kopieren Sie die **Klartext**-Verbindungszeichenfolge.

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

1. Führen Sie den folgenden Befehl auf der Client-Instance (`mkc-tutorial-client`) aus und ersetzen *bootstrapServerString* Sie ihn durch den Wert, den Sie gespeichert haben, als Sie sich die Client-Informationen des Clusters angesehen haben.

   ```
   <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server bootstrapServerString --replication-factor 2 --partitions 1 --topic mkc-tutorial-topic
   ```

   Wenn der Befehl erfolgreich ist, wird die folgende Meldung angezeigt: `Created topic mkc-tutorial-topic.`

**Nächster Schritt**

[Konnektor erstellen](mkc-create-connector.md)

# Konnektor erstellen
<a name="mkc-create-connector"></a>

Dieses Verfahren beschreibt, wie Sie einen Konnektor mit dem erstellen AWS-Managementkonsole.

**So erstellen Sie den Konnektor**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon MSK-Konsole zu [https://console.aws.amazon.com/msk/Hause? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. Wählen Sie im linken Bereich unter **MSK Connect** die Option **Konnektoren**.

1. Wählen Sie **Konnektor erstellen**.

1. Wählen Sie in der Liste der Plugins die Option `mkc-tutorial-plugin` und anschließend **Weiter**.

1. Geben Sie als Namen des Konnektors `mkc-tutorial-connector` ein.

1. Wählen Sie in der Liste der Cluster `mkc-tutorial-cluster`.

1. Wählen Sie im Bereich **Connector-Netzwerkeinstellungen** eine der folgenden Optionen für den Netzwerktyp aus:
   + **IPv4**(Standard) — IPv4 Nur für Verbindungen zu Zielen über
   + **Dual-Stack** — Für Konnektivität zu Zielen über IPv4 sowohl als auch IPv6 (nur verfügbar, wenn Ihren Subnetzen IPv6 CIDR-Blöcke zugeordnet sind) IPv4 

1. Kopieren Sie die folgende Konfiguration und fügen Sie sie in das Feld für die Konnektor-Konfiguration ein.

   Stellen Sie sicher, dass Sie Region durch den Code der Region ersetzen, AWS-Region in der Sie den Connector erstellen. Ersetzen Sie im folgenden Beispiel außerdem den Amazon S3 S3-Bucket-Namen durch den Namen Ihres Buckets. *<amzn-s3-demo-bucket-my-tutorial>*

   ```
   connector.class=io.confluent.connect.s3.S3SinkConnector
   s3.region=us-east-1
   format.class=io.confluent.connect.s3.format.json.JsonFormat
   flush.size=1
   schema.compatibility=NONE
   tasks.max=2
   topics=mkc-tutorial-topic
   partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner
   storage.class=io.confluent.connect.s3.storage.S3Storage
   s3.bucket.name=<amzn-s3-demo-bucket-my-tutorial>
   topics.dir=tutorial
   ```

1. Wählen Sie unter **Zugriffsberechtigungen** die Option `mkc-tutorial-role`.

1. Wählen Sie **Weiter** aus. Wählen Sie auf der Seite **Sicherheit** erneut **Weiter**.

1. Wählen Sie auf der Seite **Protokolle** **Weiter**.

1. Überprüfen Sie auf der Seite **Überprüfen und erstellen** Ihre Connector-Konfiguration und wählen Sie **Connector erstellen** aus.

**Nächster Schritt**

[Senden Sie Daten an den MSK-Cluster](mkc-send-data.md)

# Senden Sie Daten an den MSK-Cluster
<a name="mkc-send-data"></a>

In diesem Schritt senden Sie Daten an das Apache-Kafka-Thema, das Sie zuvor erstellt haben, und suchen dann im Ziel-S3-Bucket nach denselben Daten.

**So senden Sie Daten an den MSK-Cluster**

1. Wenn Sie sich noch im `bin`-Ordner der Apache-Kafka-Installation auf der Client-Instance befinden, erstellen Sie eine Textdatei namens `client.properties` mit dem folgenden Inhalt.

   ```
   security.protocol=SASL_SSL
   sasl.mechanism=AWS_MSK_IAM
   ```

1. Führen Sie den folgenden Befehl aus, um einen Konsolenproduzenten zu erstellen. *BootstrapBrokerString*Ersetzen Sie ihn durch den Wert, den Sie bei der Ausführung des vorherigen Befehls erhalten haben.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerString --producer.config client.properties --topic mkc-tutorial-topic
   ```

1. Geben Sie eine beliebige Nachricht ein, und drücken Sie **Enter (Eingabetaste)**. Wiederholen Sie diesen Schritt zwei- oder dreimal. Jedes Mal, wenn Sie eine Zeile eingeben und **Enter (Eingabetaste)** drücken, wird diese Zeile als separate Nachricht an Ihren Apache Kafka-Cluster gesendet.

1. Suchen Sie im Amazon-S3-Ziel-Bucket nach den Nachrichten, die Sie im vorherigen Schritt gesendet haben.

# Steckverbinder verstehen
<a name="msk-connect-connectors"></a>

Ein Konnektor integriert externe Systeme und Amazon-Services mit Apache Kafka, indem er kontinuierlich Streaming-Daten aus einer Datenquelle in Ihren Apache-Kafka-Cluster kopiert oder kontinuierlich Daten aus Ihrem Cluster in einen Daten-Sink kopiert. Ein Konnektor kann auch einfache Logik wie Transformation, Formatkonvertierung oder Filterung von Daten ausführen, bevor die Daten an ein Ziel gesendet werden. Quell-Konnektoren rufen Daten aus einer Datenquelle ab und übertragen diese Daten in den Cluster, während Sink-Konnektoren Daten aus dem Cluster abrufen und diese Daten in einen Daten-Sink übertragen.

Das folgende Diagramm illustriert die Architektur eines Konnektors. Ein Worker ist ein virtueller Java-Maschine (JVM)-Prozess, der die Konnektor-Logik betreibt. Jeder Worker erstellt eine Reihe von Aufgaben, die in parallelen Threads ausgeführt werden und das Kopieren der Daten übernehmen. Aufgaben speichern keinen Status und können daher jederzeit gestartet, gestoppt oder neu gestartet werden, um eine stabile und skalierbare Datenpipeline bereitzustellen.

![\[Diagramm mit der Architektur eines Konnektor-Clusters.\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/images/mkc-worker-architecture.png)


# Verstehen Sie die Kapazität der Steckverbinder
<a name="msk-connect-capacity"></a>

Die Gesamtkapazität eines Connectors hängt von der Anzahl der Worker des Connectors sowie von der Anzahl der MSK Connect Units (MCUs) pro Worker ab. Jede MCU steht für 1 vCPU Rechenleistung und 4 GiB Arbeitsspeicher. Der MCU-Speicher bezieht sich auf den Gesamtspeicher einer Worker-Instance und nicht auf den verwendeten Heap-Speicher.

MSK Connect-Mitarbeiter verwenden IP-Adressen in den vom Kunden bereitgestellten Subnetzen. Jeder Mitarbeiter verwendet eine IP-Adresse aus einem der vom Kunden bereitgestellten Subnetze. Sie sollten sicherstellen, dass in den Subnetzen, die für eine CreateConnector Anfrage bereitgestellt werden, genügend IP-Adressen verfügbar sind, um deren angegebene Kapazität zu berücksichtigen, insbesondere bei der automatischen Skalierung von Connectoren, bei denen die Anzahl der Worker schwanken kann.

Um einen Konnektor zu erstellen, müssen Sie zwischen einem der folgenden beiden Kapazitätsmodi wählen.
+ *Bereitgestellt* – Wählen Sie diesen Modus, wenn Sie die Kapazitätsanforderungen für Ihren Konnektor kennen. Sie geben zwei Werte an:
  + Die Anzahl der Worker.
  + Die Anzahl von pro Mitarbeiter. MCUs 
+ *Automatisch skaliert* – Wählen Sie diesen Modus, wenn die Kapazitätsanforderungen für Ihren Konnektor variabel sind oder wenn Sie sie nicht im Voraus kennen. Wenn Sie den Modus für automatische Skalierung verwenden, überschreibt Amazon MSK Connect die `tasks.max` Eigenschaft Ihres Connectors mit einem Wert, der proportional zur Anzahl der Worker ist, die im Connector laufen, und zur Anzahl der Worker pro Worker. MCUs 

  Sie geben drei Wertesätze an:
  + Die minimale und maximale Anzahl von Workers.
  + Die Prozentsätze des Ab- und Aufskalierens der CPU-Auslastung, die durch die Metrik `CpuUtilization` bestimmt werden. Wenn die `CpuUtilization`-Metrik für den Konnektor den Aufskalier-Prozentsatz überschreitet, erhöht MSK Connect die Anzahl der Worker, die im Konnektor laufen. Wenn die `CpuUtilization`-Metrik unter den Abskalierungsprozentsatz fällt, verringert MSK Connect die Anzahl der Worker. Die Anzahl der Worker bleibt immer innerhalb der Mindest- und Höchstwerte, die Sie bei der Erstellung des Konnektors angeben.
  + Die Anzahl von pro Mitarbeiter. MCUs 
  + (Optional) *Maximale Anzahl von Autoscaling-Aufgaben* — Die maximale Anzahl von Aufgaben, die dem Connector bei Autoscaling-Vorgängen zugewiesen wurden. Mit diesem Parameter können Sie eine Obergrenze für die Aufgabenerstellung festlegen, sodass Sie mehr Kontrolle über die Ressourcennutzung und Parallelität in Bezug auf Ihre Kafka-Themenpartitionen haben.

Weitere Informationen zu Workern finden [MSK Connect-Mitarbeiter verstehen](msk-connect-workers.md) Sie unter. Weitere Informationen zur maximalen Anzahl von Autoscaling-Aufgaben finden Sie unter. [Machen Sie sich mit der maximalen Anzahl an Autoscaling-Aufgaben vertraut](msk-connect-max-autoscaling-task-count.md) Weitere Informationen zu MSK-Connect-Metriken finden Sie unter [Überwachung von Amazon MSK Connect](mkc-monitoring-overview.md).

# Machen Sie sich mit der maximalen Anzahl an Autoscaling-Aufgaben vertraut
<a name="msk-connect-max-autoscaling-task-count"></a>

Der `maxAutoscalingTaskCount` Parameter ist ein optionales Kapazitätsfeld, das für Autoscaling-Konnektoren in Amazon MSK Connect verfügbar ist. Mit diesem Parameter können Sie eine Obergrenze für die maximale Anzahl von Aufgaben festlegen, die während der automatischen Skalierung von Konnektoren erstellt werden können, wodurch eine bessere Kontrolle über die Ressourcennutzung und Leistung ermöglicht wird.

Wenn Sie den Modus für automatisch skalierte Kapazität verwenden, überschreibt Amazon MSK Connect automatisch die `tasks.max` Eigenschaft Ihres Connectors mit einem Wert, der proportional zur Anzahl der Mitarbeiter und pro Mitarbeiter ist. MCUs Der `maxAutoscalingTaskCount` Parameter bietet eine zusätzliche konfigurierbare Option, um die maximale Anzahl von Aufgaben zu begrenzen, die für Ihren Connector erstellt werden.

Diese Funktion ist besonders nützlich, wenn Sie den Grad der Parallelität in Bezug auf die Anzahl der Themenpartitionen in Ihrem Kafka-Cluster steuern möchten. Durch die Festlegung dieses Grenzwerts können Sie die Leistung optimieren und eine ineffiziente Aufgabenverteilung verhindern, die auftreten kann, wenn die automatisch berechnete Anzahl von Aufgaben Ihre Workload-Anforderungen übersteigt.

## Konfigurationsanforderungen
<a name="msk-connect-max-autoscaling-task-count-requirements"></a>

Der `maxAutoscalingTaskCount` Parameter muss die folgende Anforderung erfüllen:

```
maxAutoscalingTaskCount ≥ maxWorkerCount
```

Diese Anforderung gewährleistet eine effiziente Nutzung der Ressourcen, indem mindestens eine Aufgabe pro Mitarbeiter verwaltet wird. Das System erzwingt dieses Minimum, um die Funktionalität der Konnektoren zu optimieren.

Wenn Sie dies angeben`maxAutoscalingTaskCount`, wird das Limit sofort nach der Erstellung des Connectors und bei allen nachfolgenden Skalierungsereignissen angewendet. Wenn die Anzahl der Mitarbeiter bei Autoscaling-Vorgängen zu- oder abnimmt, hält sich das System weiterhin an diesen Grenzwert. Der `tasks.max` Wert passt sich proportional zur Anzahl der Mitarbeiter und MCUs pro Mitarbeiter an, überschreitet jedoch nie den konfigurierten Wert. `maxAutoscalingTaskCount`

Wenn Sie diesen Parameter nicht angeben, verwendet der Konnektor die Standardberechnung ohne Einschränkungen: `tasks.max = workerCount × mcuCount × tasksPerMcu` (wo 2 tasksPerMcu ist). 

## Wann sollte maxAutoscalingTask Count verwendet werden
<a name="msk-connect-max-autoscaling-task-count-when-to-use"></a>

Erwägen Sie die Verwendung `maxAutoscalingTaskCount` in den folgenden Szenarien:
+ *Begrenzte Partitionsanzahl*: Wenn Ihre Kafka-Themen eine feste Anzahl von Partitionen haben, die unter der automatisch berechneten Anzahl von Aufgaben liegt, verhindert die Festlegung eines Grenzwerts, dass Aufgaben im Leerlauf erstellt werden, ohne dass noch etwas erledigt werden muss.
+ *Leistungsoptimierung*: Wenn Sie festgestellt haben, dass eine bestimmte Anzahl von Aufgaben den optimalen Durchsatz für Ihre Arbeitslast bietet, können Sie die maximale Anzahl an Aufgaben begrenzen, um eine gleichbleibende Leistung zu gewährleisten.
+ *Ressourcenmanagement*: Wenn Sie die maximale Parallelität und den maximalen Ressourcenverbrauch Ihres Connectors kontrollieren möchten, unabhängig davon, wie viele Worker im Einsatz sind.

## Beispiel
<a name="msk-connect-max-autoscaling-task-count-example"></a>

Für einen Connector mit der folgenden Konfiguration:

```
minWorkerCount: 1
maxWorkerCount: 4
mcuCount: 8
maxAutoscalingTaskCount: 15
```

Ohne `maxAutoscalingTaskCount` würde der Konnektor bei einer Skalierung auf 4 Worker 64 Aufgaben erstellen (4 Worker × 8 MCUs × 2 Aufgaben pro MCU). Wenn dieser `maxAutoscalingTaskCount` Wert auf 15 gesetzt ist, erstellt der Connector nur 15 Aufgaben. Dies ist möglicherweise besser geeignet, wenn Ihr Kafka-Thema 15 oder weniger Partitionen hat.

# Konfigurieren Sie den Dual-Stack-Netzwerktyp
<a name="msk-connect-dual-stack"></a>

Amazon MSK Connect unterstützt den Dual-Stack-Netzwerktyp für neue Konnektoren. Mit Dual-Stack-Netzwerken können Ihre Konnektoren sowohl als auch eine Verbindung zu Zielen herstellen. IPv4 IPv6 Beachten Sie, dass IPv6 Konnektivität nur im Dual-Stack-Modus (IPv4 \$1 IPv6) verfügbar ist. IPv6 Nur Netzwerke werden nicht unterstützt.

Standardmäßig verwenden neue Konnektoren den IPv4 Netzwerktyp. Um einen Connector mit Dual-Stack-Netzwerktyp zu erstellen, stellen Sie sicher, dass Sie die im folgenden Abschnitt beschriebenen Voraussetzungen erfüllt haben. Beachten Sie, dass Sie, nachdem Sie einen Connector mit dem Dual-Stack-Netzwerktyp erstellt haben, seinen Netzwerktyp nicht mehr ändern können. Um den Netzwerktyp zu ändern, müssen Sie den Connector löschen und neu erstellen.

Amazon MSK Connect unterstützt auch Service-API-Endpunktkonnektivität IPv6 sowohl IPv4 über als auch. Um IPv6 Konnektivität für API-Aufrufe zu verwenden, müssen Sie die Dual-Stack-Endpunkte verwenden. Weitere Informationen zu MSK Connect-Serviceendpunkten finden Sie unter [Amazon MSK Connect-Endpunkte](https://docs.aws.amazon.com/general/latest/gr/msk-connect.html) und Kontingente.

## Voraussetzungen für die Verwendung des Dual-Stack-Netzwerktyps
<a name="dual-stack-prerequisites"></a>

Bevor Sie den Dual-Stack-Netzwerktyp für Ihre Connectors konfigurieren, stellen Sie sicher, dass allen Subnetzen, die Sie bei der Connectorerstellung angeben, sowohl CIDR-Blöcke als auch IPv4 CIDR-Blöcke IPv6 zugewiesen sind.

## Überlegungen zur Verwendung des Dual-Stack-Netzwerktyps
<a name="dual-stack-considerations"></a>
+ IPv6 Unterstützung ist derzeit nur im Dual-Stack-Modus (IPv4 \$1 IPv6) verfügbar, nicht nur im Modus -only IPv6
+ Konnektoren mit aktiviertem Dual-Stack können sowohl über MSK IPv4 - IPv6 als auch Sink- oder Quelldatensysteme verbunden werden
+ Der Netzwerktyp kann nach der Erstellung des Connectors nicht geändert werden. Sie müssen den Connector löschen und neu erstellen, um den Netzwerktyp zu ändern
+ Alle bei der Connectorerstellung angegebenen Subnetze müssen Dual-Stack unterstützen, damit die Connectorerstellung mit dem Dual-Stack-Netzwerktyp erfolgreich ist
+ Wenn Dual-Stack-Subnetze verwendet werden, aber kein Netzwerktyp angegeben wurde, verwendet der Connector aus Gründen der Abwärtskompatibilität standardmäßig -only IPv4
+ Bei vorhandenen Connectoren können Sie den Netzwerktyp nicht aktualisieren. Sie müssen den Connector löschen und neu erstellen, um den Netzwerktyp zu ändern
+ Die Verwendung von Dual-Stack-Netzwerken verursacht keine zusätzlichen Kosten

# Erstellen eines Connectors von
<a name="mkc-create-connector-intro"></a>

Dieses Verfahren beschreibt, wie Sie einen Connector mit dem erstellen. AWS-Managementkonsole

**Erstellen eines Connectors mit dem AWS-Managementkonsole**

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Wählen Sie im linken Bereich unter **MSK Connect** die Option **Konnektoren**.

1. Wählen Sie **Konnektor erstellen)**.

1. Sie können wählen, ob Sie ein vorhandenes benutzerdefiniertes Plugin verwenden möchten, um den Konnektor zu erstellen, oder ob Sie zuerst ein neues benutzerdefiniertes Plugin erstellen möchten. Informationen zu benutzerdefinierten Plugins und deren Erstellung finden Sie unter [Erstellen Sie benutzerdefinierte Plugins](msk-connect-plugins.md). Gehen wir bei diesem Verfahren davon aus, dass Sie über ein benutzerdefiniertes Plugin verfügen, das Sie verwenden möchten. Suchen Sie in der Liste der benutzerdefinierten Plugins nach dem Plugin, das Sie verwenden möchten, wählen Sie das Kästchen links davon aus und dann **Weiter**.

1. Geben Sie einen Namen und optional eine Beschreibung ein.

1. Wählen Sie den Cluster, zu dem Sie eine Verbindung herstellen möchten.

1. Wählen Sie im Abschnitt **Connector-Netzwerkeinstellungen** eine der folgenden Optionen für den Netzwerktyp aus:
   + **IPv4**(Standard) — IPv4 Nur für Verbindungen zu Zielen über
   + **Dual-Stack** — Für Konnektivität zu Zielen über IPv4 sowohl als auch IPv6 (nur verfügbar, wenn Ihren Subnetzen IPv6 CIDR-Blöcke zugeordnet sind) IPv4 

1. Geben Sie die Konnektor-Konfiguration an. Die Konfigurationsparameter, die Sie angeben müssen, hängen vom Typ des Konnektors ab, den Sie erstellen möchten. Einige Parameter sind jedoch allen Konnektoren gemeinsam, z. B. die Parameter `connector.class` und `tasks.max`. Im Folgenden finden Sie eine Beispielkonfiguration für den [Confluent Amazon S3 Sink Connector](https://www.confluent.io/hub/confluentinc/kafka-connect-s3).

   ```
   connector.class=io.confluent.connect.s3.S3SinkConnector
   tasks.max=2
   topics=my-example-topic
   s3.region=us-east-1
   s3.bucket.name=amzn-s3-demo-bucket
   flush.size=1
   storage.class=io.confluent.connect.s3.storage.S3Storage
   format.class=io.confluent.connect.s3.format.json.JsonFormat
   partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner
   key.converter=org.apache.kafka.connect.storage.StringConverter
   value.converter=org.apache.kafka.connect.storage.StringConverter
   schema.compatibility=NONE
   ```

1. Als Nächstes konfigurieren Sie die Kapazität Ihres Konnektors. Sie können zwischen zwei Kapazitätsmodi wählen: bereitgestellt und automatisch skaliert. Weitere Informationen zu diesen beiden Optionen finden Sie unter [Verstehen Sie die Kapazität der Steckverbinder](msk-connect-capacity.md).

1. (Optional) Verwenden Sie im Abschnitt **Maximale Anzahl von Autoscaling-Aufgaben das Feld Maximale Anzahl** von Autoscaling-Aufgaben, um die maximale Anzahl von Aufgaben einzugeben, die Sie dem Connector bei Autoscaling-Vorgängen zuweisen möchten. Der Wert muss mindestens Ihrer maximalen Mitarbeiterzahl entsprechen. Wenn Sie keinen Wert angeben, verwendet der Konnektor die Standardberechnung ohne Einschränkungen. Weitere Informationen finden Sie unter [Machen Sie sich mit der maximalen Anzahl an Autoscaling-Aufgaben vertraut](msk-connect-max-autoscaling-task-count.md).

1. Wählen Sie entweder die Standard-Worker-Konfiguration oder eine benutzerdefinierte Worker-Konfiguration. Weitere Informationen zum Erstellen von benutzerdefinierten Worker-Konfigurationen finden Sie unter [MSK Connect-Mitarbeiter verstehen](msk-connect-workers.md).

1. Geben Sie als nächstes die Service-Ausführungsrolle an. Dies muss eine IAM-Rolle sein, die MSK Connect übernehmen kann und die dem Connector alle Berechtigungen gewährt, die er für den Zugriff auf die erforderlichen AWS Ressourcen benötigt. Diese Berechtigungen hängen von der Logik des Konnektors ab. Weitere Informationen zum Erstellen dieser Rolle finden Sie unter [Verstehen Sie die Rolle der Serviceausführung](msk-connect-service-execution-role.md).

1. Wählen Sie **Weiter**, überprüfen Sie die Sicherheitsinformationen und wählen Sie dann erneut **Weiter**.

1. Geben Sie die gewünschten Protokollierungs-Optionen an und wählen Sie dann **Weiter**. Weitere Informationen zur Protokollierung finden Sie unter [Protokollierung für MSK Connect](msk-connect-logging.md).

1. Überprüfen Sie auf der Seite **Überprüfen und erstellen** Ihre Connector-Konfiguration und wählen Sie Connector **erstellen** aus.

Informationen zur Verwendung der MSK Connect-API zum Erstellen eines Connectors finden Sie unter [CreateConnector](https://docs.aws.amazon.com/MSKC/latest/mskc/API_CreateConnector.html). 

Sie können die `UpdateConnector` API verwenden, um die Konfiguration des Connectors zu ändern. Weitere Informationen finden Sie unter [Aktualisieren Sie einen Konnektor](mkc-update-connector.md).

# Aktualisieren Sie einen Konnektor
<a name="mkc-update-connector"></a>

Dieses Verfahren beschreibt, wie Sie die Konfiguration eines vorhandenen MSK Connect-Connectors mithilfe des AWS-Managementkonsole aktualisieren.

**Aktualisierung der Connectorkonfiguration mit dem AWS-Managementkonsole**

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Wählen Sie im linken Bereich unter **MSK Connect** die Option **Konnektoren**.

1. Wählen Sie einen vorhandenen Konnektor aus.

1. Wählen Sie **Konnektorkonfiguration bearbeiten**.

1. Aktualisieren Sie die Konnektorkonfiguration. Sie können die `connector.class` Verwendung von nicht überschreiben UpdateConnector. Das folgende Beispiel zeigt eine Beispielkonfiguration für den Confluent Amazon S3 Sink Connector. 

   ```
   connector.class=io.confluent.connect.s3.S3SinkConnector
   tasks.max=2
   topics=my-example-topic
   s3.region=us-east-1
   s3.bucket.name=amzn-s3-demo-bucket
   flush.size=1
   storage.class=io.confluent.connect.s3.storage.S3Storage
   format.class=io.confluent.connect.s3.format.json.JsonFormat
   partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner
   key.converter=org.apache.kafka.connect.storage.StringConverter
   value.converter=org.apache.kafka.connect.storage.StringConverter
   schema.compatibility=NONE
   ```

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

1. Sie können dann den aktuellen Status des Vorgangs auf der Registerkarte **Operationen des Connectors** überwachen. 

Informationen zur Verwendung der MSK Connect-API zum Aktualisieren der Konfiguration eines Connectors finden Sie unter [UpdateConnector](https://docs.aws.amazon.com/MSKC/latest/mskc/API_UpdateConnector.html).

# Verbindung über Konnektoren herstellen
<a name="msk-connect-from-connectors"></a>

Die folgenden bewährten Methoden können die Leistung Ihrer Konnektivität mit Amazon MSK Connect verbessern.

## Überschneide dich IPs nicht mit Amazon VPC Peering oder Transit Gateway
<a name="CIDR-ip-ranges"></a>

Wenn Sie Amazon VPC-Peering oder Transit Gateway mit Amazon MSK Connect verwenden, konfigurieren Sie Ihren Connector nicht so, dass er die gepeerten VPC-Ressourcen mit IPs folgenden CIDR-Bereichen erreicht:
+ „10.99.0.0/16“
+ „192.168.0.0/16“
+ „172.21.0.0/16“

# Erstellen Sie benutzerdefinierte Plugins
<a name="msk-connect-plugins"></a>

Ein Plugin ist eine AWS Ressource, die den Code enthält, der Ihre Konnektorlogik definiert. Sie laden eine JAR-Datei (oder eine ZIP-Datei, die eine oder mehrere JAR-Dateien enthält) in einen S3-Bucket hoch und geben den Speicherort des Buckets an, wenn Sie das Plugin erstellen. Wenn das Plugin erstellt wird, kopiert MSK Connect den Inhalt des S3-Objekts zu diesem Zeitpunkt. Es behält keinen Link zum S3-Objekt bei, sodass sich nachfolgende Änderungen am Objekt nicht auf das Plugin oder seine Konnektoren auswirken. Wenn Sie einen Konnektor erstellen, geben Sie das Plugin an, das MSK Connect dafür verwenden soll. Das Verhältnis von Plugins zu Konnektoren ist one-to-many: Sie können einen oder mehrere Konnektoren aus demselben Plugin erstellen.

**Anmerkung**  
Benutzerdefinierte Plugins können nicht an Ort und Stelle aktualisiert werden. Um eine neue Version Ihres Plugin-Codes zu verwenden, löschen Sie alle Konnektoren, die auf das Plugin verweisen, löschen Sie das Plugin und erstellen Sie es anschließend neu.

**Paketierung von Abhängigkeiten für benutzerdefinierte Plugins**  
Wir empfehlen, dass Sie alle erforderlichen JAR-Dateien und Abhängigkeiten für Ihr Plugin angeben. Package Sie Ihren Connector wie folgt:  
Eine ZIP-Datei, die alle erforderlichen JAR-Dateien und Abhängigkeiten für das Plugin enthält.
Eine einzige Uber-JAR, die alle Klassendateien für das Plugin und seine Abhängigkeiten enthält.
Wenn Sie Ihre Plugin-Abhängigkeiten nicht bündeln, kann dies die Verfügbarkeit oder Kompatibilität in der Laufzeitumgebung beeinträchtigen und zu unerwarteten Fehlern führen.

Informationen zur Entwicklung des Codes für einen Konnektor finden Sie im [Konnektor-Entwicklerleitfaden](https://kafka.apache.org/documentation/#connect_development) in der Apache-Kafka-Dokumentation.

**Erstellen eines benutzerdefinierten Plugins mit dem AWS-Managementkonsole**

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Wählen Sie im linken Bereich unter **MSK Connect** die Option **Benutzerdefinierte Plugins**.

1. Wählen Sie **Benutzerdefiniertes Plugin erstellen**.

1. Wählen Sie **S3 durchsuchen**.

1. Wählen Sie in der Liste der S3-Buckets den Bucket aus, der die JAR- oder ZIP-Datei für das Plugin enthält.

1. Aktivieren Sie in der Objektliste das Kontrollkästchen links neben der JAR- oder ZIP-Datei für das Plug-in und wählen Sie dann **Auswählen**.

1. Wählen Sie **Benutzerdefiniertes Plugin erstellen**.

Informationen zur Verwendung der MSK Connect-API zum Erstellen eines benutzerdefinierten Plug-ins finden Sie unter [CreateCustomPlugin](https://docs.aws.amazon.com/MSKC/latest/mskc/API_CreateCustomPlugin.html).

# MSK Connect-Mitarbeiter verstehen
<a name="msk-connect-workers"></a>

Ein Worker ist ein virtueller Java-Maschine (JVM)-Prozess, der die Konnektor-Logik betreibt. Jeder Worker erstellt eine Reihe von Aufgaben, die in parallelen Threads ausgeführt werden und das Kopieren der Daten übernehmen. Aufgaben speichern keinen Status und können daher jederzeit gestartet, gestoppt oder neu gestartet werden, um eine stabile und skalierbare Datenpipeline bereitzustellen. Änderungen an der Anzahl der Worker, unabhängig davon, ob sie auf ein Skalierungsereignis oder auf unerwartete Ausfälle zurückzuführen sind, werden von den verbleibenden Workern automatisch erkannt. Sie koordinieren, um die Aufgaben auf die Gruppe der verbleibenden Worker neu auszurichten. Connect-Worker nutzen die Verbrauchergruppen von Apache Kafka, um sich zu koordinieren und das Gleichgewicht wiederherzustellen.

Wenn die Kapazitätsanforderungen Ihres Konnektors variabel oder schwer abzuschätzen sind, können Sie MSK Connect die Anzahl der Worker nach Bedarf zwischen einer von Ihnen angegebenen Untergrenze und einer Obergrenze skalieren lassen. Sie können auch die genaue Anzahl von Workern angeben, die die Konnektor-Logik betreiben sollen. Weitere Informationen finden Sie unter [Verstehen Sie die Kapazität der Steckverbinder](msk-connect-capacity.md).

**MSK Connect-Mitarbeiter verbrauchen IP-Adressen**  
MSK Connect-Mitarbeiter verwenden IP-Adressen in den vom Kunden bereitgestellten Subnetzen. Jeder Mitarbeiter verwendet eine IP-Adresse aus einem der vom Kunden bereitgestellten Subnetze. Sie sollten sicherstellen, dass in den Subnetzen, die für eine CreateConnector Anfrage bereitgestellt werden, genügend IP-Adressen verfügbar sind, um deren angegebene Kapazität zu berücksichtigen, insbesondere bei der automatischen Skalierung von Connectoren, bei denen die Anzahl der Worker schwanken kann.

## Standard-Worker-Konfiguration
<a name="msk-connect-default-worker-config"></a>

MSK Connect bietet die folgende Standard-Worker-Konfiguration:

```
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.storage.StringConverter
```

# Unterstützte Worker-Konfigurationseigenschaften
<a name="msk-connect-supported-worker-config-properties"></a>

MSK Connect bietet eine Standard-Worker-Konfiguration. Sie haben auch die Möglichkeit, eine benutzerdefinierte Worker-Konfiguration zur Verwendung mit Ihren Konnektoren zu erstellen. Die folgende Liste enthält Informationen zu den Worker-Konfigurationseigenschaften, die Amazon MSK Connect unterstützt oder nicht unterstützt.
+ Es werden die Eigenschaften `key.converter` und `value.converter` benötigt.
+ MSK Connect unterstützt die folgenden `producer.`-Konfigurationseigenschaften.

  ```
  producer.acks
  producer.batch.size
  producer.buffer.memory
  producer.compression.type
  producer.enable.idempotence
  producer.key.serializer
  producer.linger.ms
  producer.max.request.size
  producer.metadata.max.age.ms
  producer.metadata.max.idle.ms
  producer.partitioner.class
  producer.reconnect.backoff.max.ms
  producer.reconnect.backoff.ms
  producer.request.timeout.ms
  producer.retry.backoff.ms
  producer.value.serializer
  ```
+ MSK Connect unterstützt die folgenden `consumer.`-Konfigurationseigenschaften.

  ```
  consumer.allow.auto.create.topics
  consumer.auto.offset.reset
  consumer.check.crcs
  consumer.fetch.max.bytes
  consumer.fetch.max.wait.ms
  consumer.fetch.min.bytes
  consumer.heartbeat.interval.ms
  consumer.key.deserializer
  consumer.max.partition.fetch.bytes
  consumer.max.poll.interval.ms
  consumer.max.poll.records
  consumer.metadata.max.age.ms
  consumer.partition.assignment.strategy
  consumer.reconnect.backoff.max.ms
  consumer.reconnect.backoff.ms
  consumer.request.timeout.ms
  consumer.retry.backoff.ms
  consumer.session.timeout.ms
  consumer.value.deserializer
  ```
+ Alle anderen Konfigurationseigenschaften, die nicht mit den Präfixen `producer.` oder `consumer.` beginnen, werden unterstützt, mit *Ausnahme* der folgenden Eigenschaften. 

  ```
  access.control.
  admin.
  admin.listeners.https.
  client.
  connect.
  inter.worker.
  internal.
  listeners.https.
  metrics.
  metrics.context.
  rest.
  sasl.
  security.
  socket.
  ssl.
  topic.tracking.
  worker.
  bootstrap.servers
  config.storage.topic
  connections.max.idle.ms
  connector.client.config.override.policy
  group.id
  listeners
  metric.reporters
  plugin.path
  receive.buffer.bytes
  response.http.headers.config
  scheduled.rebalance.max.delay.ms
  send.buffer.bytes
  status.storage.topic
  ```

Weitere Informationen zu Worker-Konfigurationen und was sie bedeuten, finden Sie unter [Kafka Connect Configs](https://kafka.apache.org/documentation/#connectconfigs) in der Apache-Kafka-Dokumentation.

# Erstellen Sie eine benutzerdefinierte Worker-Konfiguration
<a name="msk-connect-create-custom-worker-config"></a>

Dieses Verfahren beschreibt, wie Sie eine benutzerdefinierte Worker-Konfiguration mit dem erstellen AWS-Managementkonsole.

**Erstellen einer benutzerdefinierten Worker-Konfiguration mit dem AWS-Managementkonsole**

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Wählen Sie im linken Bereich unter **MSK Connect** die Option **Worker-Konfigurationen**.

1. Wählen Sie **Worker-Konfiguration erstellen**.

1. Geben Sie einen Namen und eine optionale Beschreibung ein und fügen Sie dann die Eigenschaften und Werte hinzu, auf die Sie diese festlegen möchten.

1. Wählen Sie **Worker-Konfiguration erstellen**.

Informationen zur Verwendung der MSK Connect-API zum Erstellen einer Worker-Konfiguration finden Sie unter [CreateWorkerConfiguration](https://docs.aws.amazon.com/MSKC/latest/mskc/API_CreateWorkerConfiguration.html).

# Verwalten Sie die Offsets von Quellkonnektoren mit `offset.storage.topic`
<a name="msk-connect-manage-connector-offsets"></a>

In diesem Abschnitt finden Sie Informationen zur Verwaltung von Quell-Konnektor-Offsets mithilfe des *Offset-Speicherthemas*. Das Offset-Speicherthema ist ein internes Thema, das Kafka Connect verwendet, um Offsets der Konnektor- und Aufgaben-Konfiguration zu speichern.

## Überlegungen
<a name="msk-connect-manage-connector-offsets-considerations"></a>

Beachten Sie Folgendes, wenn Sie die Quell-Konnektor-Offsets verwalten.
+ Um ein Offset-Speicherthema anzugeben, geben Sie den Namen des Kafka-Themas, in dem Konnektor-Offsets gespeichert werden, als Wert für `offset.storage.topic` in Ihrer Worker-Konfiguration an.
+ Seien Sie vorsichtig, wenn Sie Änderungen an einer Konnektor-Konfiguration vornehmen. Das Ändern von Konfigurationswerten kann zu unbeabsichtigtem Verhalten des Konnektors führen, wenn ein Quell-Konnektor Werte aus der Konfiguration für wichtige Offset-Datensätze verwendet. Wir empfehlen Ihnen, in der Dokumentation Ihres Plugins nach Anleitungen zu suchen.
+ **Anpassen der Standardanzahl von Partitionen** – Sie können nicht nur die Worker-Konfiguration durch Hinzufügen von `offset.storage.topic` anpassen, sondern auch die Anzahl der Partitionen für die Offset- und Status-Speicherthemen anpassen. Die Standardpartitionen für interne Themen lauten wie folgt.
  + `config.storage.topic`: 1, nicht konfigurierbar, muss ein Thema mit einer einzigen Partition sein
  + `offset.storage.topic`: 25, konfigurierbar durch Bereitstellung von `offset.storage.partitions`
  + `status.storage.topic`: 5, konfigurierbar durch Bereitstellung von `status.storage.partitions`
+ **Manuelles Löschen von Themen** – Amazon MSK Connect erstellt bei jeder Bereitstellung von Konnektoren neue interne Kafka-Connect-Themen (der Themenname beginnt mit `__amazon_msk_connect`). Alte Themen, die an gelöschte Konnektoren angehängt sind, werden nicht automatisch entfernt, da interne Themen, wie z. B. `offset.storage.topic`, zwischen Konnektoren wiederverwendet werden können. Sie können jedoch nicht verwendete interne Themen, die von MSK Connect erstellt wurden, manuell löschen. Die internen Themen sind nach dem Format `__amazon_msk_connect_<offsets|status|configs>_connector_name_connector_id` benannt.

  Der reguläre Ausdruck `__amazon_msk_connect_<offsets|status|configs>_connector_name_connector_id` kann verwendet werden, um die internen Themen zu löschen. Sie sollten kein internes Thema löschen, das derzeit von einem laufenden Konnektor verwendet wird.
+ **Den selben Namen für die von MSK Connect erstellten internen Themen** – Wenn Sie das Offset-Speicherthema wiederverwenden möchten, um Offsets von einem zuvor erstellten Konnektor zu verwenden, müssen Sie dem neuen Konnektor denselben Namen wie dem alten Konnektor geben. Die `offset.storage.topic` Eigenschaft kann mithilfe der Worker-Konfiguration festgelegt werden, um dem `offset.storage.topic` denselben Namen zuzuweisen, und zwischen verschiedenen Konnektoren wiederverwendet werden. Diese Konfiguration wird unter [Konnektor-Offsets verwalten](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-workers.html#msk-connect-create-custom-worker-config) beschrieben. MSK Connect erlaubt nicht, dass verschiedene Konnektoren `config.storage.topic` und `status.storage.topic` gemeinsam nutzen. Diese Themen werden jedes Mal erstellt, wenn Sie einen neuen Konnektor in MSKC erstellen. Sie werden automatisch nach dem Format `__amazon_msk_connect_<status|configs>_connector_name_connector_id` benannt und unterscheiden sich daher bei den verschiedenen Konnektoren, die Sie erstellen.

# Verwenden Sie das Standardthema Offset-Storage
<a name="msk-connect-default-offset-storage-topic"></a>

Standardmäßig generiert Amazon MSK Connect für jeden Konnektor, den Sie erstellen, ein neues Offset-Speicherthema in Ihrem Kafka-Cluster. MSK erstellt den Standard-Themennamen unter Verwendung von Teilen des Konnektor-ARN. Beispiel, `__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-4abc-8be8-c657f7e4ff32-2`. 

# Benutzerdefiniertes Offset-Storage-Thema verwenden
<a name="msk-connect-set-offset-storage-topic"></a>

Um die Offset-Kontinuität zwischen den Quell-Konnektoren zu gewährleisten, können Sie anstelle des Standardthemas ein Offset-Speicherthema Ihrer Wahl verwenden. Wenn Sie ein Offset-Speicherthema angeben, können Sie Aufgaben wie das Erstellen eines Quell-Konnektors erledigen, der den Lesevorgang vom letzten Offset eines vorherigen Konnektors aus wieder aufnimmt.

Um ein Offset-Speicherthema anzugeben, geben Sie einen Wert für die Eigenschaft `offset.storage.topic` in Ihrer Worker-Konfiguration ein, bevor Sie einen Konnektor erstellen. Wenn Sie das Offset-Speicherthema wiederverwenden möchten, um Offsets von einem zuvor erstellten Konnektor zu verwenden, müssen Sie dem neuen Konnektor denselben Namen wie dem alten Konnektor geben. Wenn Sie ein benutzerdefiniertes Offset-Speicherthema erstellen, müssen Sie [https://kafka.apache.org/27/documentation.html#topicconfigs_cleanup.policy](https://kafka.apache.org/27/documentation.html#topicconfigs_cleanup.policy) in Ihrer Themenkonfiguration auf `compact` einstellen.

**Anmerkung**  
Wenn Sie beim Erstellen eines *Sink*-Konnektors ein Offset-Speicherthema angeben, erstellt MSK Connect das Thema, sofern es noch nicht vorhanden ist. Das Thema wird jedoch nicht zum Speichern von Konnektor-Offsets verwendet.   
Sink-Konnektor-Offsets werden stattdessen mithilfe des Kafka-Verbrauchergruppen-Protokolls verwaltet. Jeder Sink-Konnektor erstellt eine Gruppe mit dem Namen `connect-{CONNECTOR_NAME}`. Solange die Verbrauchergruppe existiert, werden alle aufeinanderfolgenden Sink-Konnektoren, die Sie mit demselben Wert für `CONNECTOR_NAME` erstellen, ab dem letzten festgeschriebenen Offset fortgesetzt.

**Wichtig**  
Wenn Sie eine bestehende Connectorkonfiguration aktualisieren und gleichzeitig die Offset-Kontinuität beibehalten möchten, verwenden Sie die UpdateConnector API. Weitere Informationen finden Sie unter [Aktualisieren Sie einen Konnektor](mkc-update-connector.md).

**Example : Angabe eines Offset-Speicherthemas bei der Neuerstellung eines Quell-Connectors**  
Wenn Sie einen Konnektor löschen und neu erstellen und dabei die Offset-Kontinuität beibehalten müssen, können Sie in Ihrer Worker-Konfiguration ein Offset-Storage-Thema angeben. Nehmen wir beispielsweise an, Sie haben einen CDC-Connector (Change Data Capture) und möchten ihn neu erstellen, ohne Ihren Platz im CDC-Stream zu verlieren. In den folgenden Schritten wird gezeigt, wie Sie diese Aufgabe erfüllen.  

1. Führen Sie auf Ihrem Client-Computer den folgenden Befehl aus, um den Namen des Offset-Speicherthemas Ihres Konnektors zu ermitteln. Ersetzen Sie `<bootstrapBrokerString>` durch den Bootstrap-Broker-String Ihres Clusters. Anleitungen zum Abrufen des Bootstrap-Broker-Strings finden Sie unter [Holen Sie sich die Bootstrap-Broker für einen Amazon MSK-Cluster](msk-get-bootstrap-brokers.md).

   ```
   <path-to-your-kafka-installation>/bin/kafka-topics.sh --list --bootstrap-server <bootstrapBrokerString>
   ```

   Die folgende Ausgabe zeigt eine Liste aller Cluster-Themen, einschließlich aller standardmäßigen internen Konnektor-Themen. In diesem Beispiel verwendet der vorhandene CDC-Konnektor das von MSK Connect erstellte [Standard-Offset-Speicherthema](msk-connect-default-offset-storage-topic.md). Aus diesem Grund wird das Offset-Speicherthema `__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-4abc-8be8-c657f7e4ff32-2` genannt.

   ```
   __consumer_offsets
   __amazon_msk_canary
   __amazon_msk_connect_configs_my-mskc-connector_12345678-09e7-4abc-8be8-c657f7e4ff32-2
   __amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-4abc-8be8-c657f7e4ff32-2
   __amazon_msk_connect_status_my-mskc-connector_12345678-09e7-4abc-8be8-c657f7e4ff32-2
   my-msk-topic-1
   my-msk-topic-2
   ```

1. Öffnen Sie die Amazon-MSK-Konsole unter [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk).

1. Wählen Sie Ihren Konnektor aus der **Konnektoren**-Liste aus. Kopieren und speichern Sie den Inhalt des Felds **Konnektor-Konfiguration**, sodass Sie ihn ändern und zum Erstellen des neuen Konnektors verwenden können.

1. Wählen Sie **Löschen**, um den Konnektor zu löschen. Geben Sie dann den Konnektor-Namen in das Texteingabefeld ein, um den Löschvorgang zu bestätigen.

1. Erstellen Sie eine benutzerdefinierte Worker-Konfiguration mit Werten, die zu Ihrem Szenario passen. Detaillierte Anweisungen finden Sie unter [Erstellen Sie eine benutzerdefinierte Worker-Konfiguration](msk-connect-create-custom-worker-config.md).

   In Ihrer Worker-Konfiguration müssen Sie den Namen des Offset-Speicherthemas, das Sie zuvor abgerufen haben, als Wert für `offset.storage.topic` angeben, wie in der folgenden Konfiguration. 

   ```
   config.providers.secretManager.param.aws.region=eu-west-3
   key.converter=<org.apache.kafka.connect.storage.StringConverter>
   value.converter=<org.apache.kafka.connect.storage.StringConverter>
   config.providers.secretManager.class=com.github.jcustenborder.kafka.config.aws.SecretsManagerConfigProvider
   config.providers=secretManager
   offset.storage.topic=__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-4abc-8be8-c657f7e4ff32-2
   ```

1. 
**Wichtig**  
Sie müssen dem neuen Konnektor denselben Namen wie dem alten Konnektor geben.

   Erstellen Sie einen neuen Konnektor mit der Worker-Konfiguration, die Sie im vorherigen Schritt eingerichtet haben. Detaillierte Anweisungen finden Sie unter [Erstellen eines Connectors von](mkc-create-connector-intro.md).

# Tutorial: Externalisierung vertraulicher Informationen mithilfe von Konfigurationsanbietern
<a name="msk-connect-config-provider"></a>

Dieses Beispiel zeigt, wie vertrauliche Informationen für Amazon MSK Connect mithilfe eines Open-Source-Konfigurationsanbieters externalisiert werden. Mit einem Konfigurationsanbieter können Sie Variablen anstelle von Klartext in einer Konnektor- oder Worker-Konfiguration angeben, und Worker, die im Konnektor ausgeführt werden, lösen diese Variablen zur Laufzeit auf. Dadurch wird verhindert, dass Anmeldeinformationen und andere Secrets im Klartext gespeichert werden. Der Konfigurationsanbieter im Beispiel unterstützt das Abrufen von Konfigurationsparametern von AWS Secrets Manager, Amazon S3 und Systems Manager (SSM). In [Schritt 2](#msk-connect-config-providers) erfahren Sie, wie Sie das Speichern und Abrufen vertraulicher Informationen für den Service einrichten, den Sie konfigurieren möchten.

## Überlegungen
<a name="msk-connect-config-providers-considerations"></a>

Beachten Sie bei der Verwendung des MSK-Konfigurationsanbieters mit Amazon MSK Connect Folgendes:
+ Weisen Sie der IAM-Service-Ausführungsrolle die entsprechenden Berechtigungen zu, wenn Sie die Konfigurationsanbieter verwenden.
+ Definieren Sie die Konfigurationsanbieter in Worker-Konfigurationen und ihre Implementierung in der Konnektor-Konfiguration.
+ Vertrauliche Konfigurationswerte können in Konnektor-Protokollen erscheinen, wenn ein Plugin diese Werte nicht als Secret definiert. Kafka Connect behandelt undefinierte Konfigurationswerte genauso wie jeden anderen Klartext-Wert. Weitere Informationen hierzu finden Sie unter [Verhindern, dass Secrets in Konnektor-Protokollen erscheinen](msk-connect-logging.md#msk-connect-logging-secrets).
+ Standardmäßig startet MSK Connect einen Konnektor häufig neu, wenn der Konnektor einen Konfigurationsanbieter verwendet. Um dieses Neustartverhalten zu deaktivieren, können Sie in der Konnektor-Konfiguration den Wert `config.action.reload` auf `none` festlegen.

## Erstellen Sie ein benutzerdefiniertes Plugin und laden Sie es auf S3 hoch
<a name="msk-connect-config-providers-create-custom-plugin"></a>

 Um ein benutzerdefiniertes Plugin zu erstellen, erstellen Sie eine Zip-Datei, die den Connector und das enthält, msk-config-provider indem Sie die folgenden Befehle auf Ihrem lokalen Computer ausführen.

**So erstellen Sie ein benutzerdefiniertes Plugin mit einem Terminalfenster und Debezium als Konnektor**

Verwenden Sie die AWS CLI, um Befehle als Superuser mit Anmeldeinformationen auszuführen, mit denen Sie auf Ihren AWS S3-Bucket zugreifen können. Informationen zur Installation und Einrichtung der AWS CLI finden Sie unter [Erste Schritte mit der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) im *AWS Command Line Interface Benutzerhandbuch*. Informationen zur Verwendung der AWS CLI mit Amazon S3 finden Sie [unter Verwenden von Amazon S3 mit der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3.html) im *AWS Command Line Interface Benutzerhandbuch*.

1. Erstellen Sie in einem Terminal-Fenster mit dem folgenden Befehl einen Ordner mit dem Namen `custom-plugin` in Ihrem Workspace.

   ```
   mkdir custom-plugin && cd custom-plugin
   ```

1. Laden Sie die neueste stabile Version des **MySQL-Konnektor-Plugins** mit dem folgenden Befehl von der [Debezium-Website](https://debezium.io/releases/) herunter.

   ```
   wget https://repo1.maven.org/maven2/io/debezium/debezium-connectormysql/
   2.2.0.Final/debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
   ```

   Extrahieren Sie die heruntergeladene GZIP-Datei mit dem folgenden Befehl in den Ordner `custom-plugin`.

   ```
   tar xzf debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
   ```

1. Laden Sie die [ZIP-Datei des MSK-Konfigurationsanbieters](https://github.com/aws-samples/msk-config-providers/releases/download/r0.4.0/msk-config-providers-0.4.0-with-dependencies.zip) mit dem folgenden Befehl herunter.

   ```
   wget https://github.com/aws-samples/msk-config-providers/releases/download/r0.4.0/msk-config-providers-0.4.0-with-dependencies.zip
   ```

   Extrahieren Sie die heruntergeladene GZIP-Datei mit dem folgenden Befehl in den Ordner `custom-plugin`.

   ```
   unzip msk-config-providers-0.4.0-with-dependencies.zip
   ```

1. Komprimieren Sie den Inhalt des MSK-Konfigurationsanbieters aus dem obigen Schritt und den benutzerdefinierten Konnektor in einer einzigen Datei mit dem Namen `custom-plugin.zip`.

   ```
   zip -r ../custom-plugin.zip * 
   ```

1. Laden Sie die Datei auf S3 hoch, damit sie später referenziert werden kann.

   ```
   aws s3 cp ../custom-plugin.zip s3:<S3_URI_BUCKET_LOCATION>
   ```

1. Wählen Sie in der Amazon MSK-Konsole im Bereich **MSK Connect** die Option Benutzerdefiniertes Plugin und dann **Benutzerdefiniertes Plugin** **erstellen** aus. Durchsuchen Sie den **s3: < *S3\$1URI\$1BUCKET\$1LOCATION* >** S3-Bucket, um die benutzerdefinierte Plugin-ZIP-Datei auszuwählen, die Sie gerade hochgeladen haben.  
![\[Amazon S3 bucket interface showing a single custom-plugin.zip file in the debezium folder.\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/images/s3-object-browser.png)

1. Geben Sie für den Namen des Plugins **debezium-custom-plugin** ein. Geben Sie optional eine Beschreibung ein und wählen Sie **Benutzerdefiniertes Plugin erstellen**.  
![\[Amazon S3 bucket interface showing a single custom-plugin.zip file in the debezium folder.\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/images/create-custom-plugin.png)

## Konfigurieren Sie Parameter und Berechtigungen für verschiedene Anbieter
<a name="msk-connect-config-providers"></a>

Sie können Parameterwerte in diesen drei Services konfigurieren:
+ Secrets Manager
+ Systems Manager Parameter Store
+ S3 - Simple Storage Service

Wählen Sie eine der folgenden Registerkarten, um Anweisungen zur Einrichtung von Parametern und relevanten Berechtigungen für diesen Dienst zu erhalten.

------
#### [ Configure in Secrets Manager ]

**So konfigurieren Sie Parameterwerte in Secrets Manager**

1. Öffnen Sie die [Secrets Manager-Konsole](https://console.aws.amazon.com/secretsmanager/).

1. Erstellen Sie ein neues Secret, um Ihre Anmeldeinformationen oder Secrets zu speichern. Anweisungen finden Sie im *AWS Secrets Manager Benutzerhandbuch* unter [Create an AWS Secrets Manager Secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

1. Kopieren Sie den ARN Ihres Secrets.

1. Fügen Sie die Secrets-Manager-Berechtigungen aus der folgenden Beispielrichtlinie zu der [Service-Ausführungsrolle](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-service-execution-role.html) hinzu. Ersetzen Sie den Beispiel-ARN`arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecret-1234`,, durch den ARN Ihres Geheimnisses.

1. Fügen Sie Worker-Konfiguration und Konnektor-Anweisungen hinzu.  
****  

   ```
   {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Effect": "Allow",
                   "Action": [
                       "secretsmanager:GetResourcePolicy",
                       "secretsmanager:GetSecretValue",
                       "secretsmanager:DescribeSecret",
                       "secretsmanager:ListSecretVersionIds"
                   ],
                   "Resource": [
                   "arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecret-1234"
                   ]
               }
           ]
       }
   ```

1. Um den Secrets-Manager-Konfigurationsanbieter zu verwenden, kopieren Sie die folgenden Code-Zeilen in das Worker-Konfigurations-Textfeld in Schritt 3:

   ```
   # define name of config provider:
   
   config.providers = secretsmanager
   
   # provide implementation classes for secrets manager:
   
   config.providers.secretsmanager.class = com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider
   
   # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located:
   
   config.providers.secretsmanager.param.region = us-east-1
   ```

1. Kopieren Sie für den Secrets-Manager-Konfigurationsanbieter die folgenden Code-Zeilen in die Konnektor-Konfiguration in Schritt 4.

   ```
   #Example implementation for secrets manager variable
   database.user=${secretsmanager:MSKAuroraDBCredentials:username}
   database.password=${secretsmanager:MSKAuroraDBCredentials:password}
   ```

Sie können den obigen Schritt auch mit weiteren Konfigurationsanbietern verwenden.

------
#### [ Configure in Systems Manager Parameter Store ]

**So konfigurieren Sie Parameterwerte im Systems Manager Parameter Store**

1. Öffnen Sie die [Systems Manager-Konsole](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Parameter Store (Parameterspeicher)** aus.

1. Erstellen Sie einen neuen Parameter, der im Systems Manager gespeichert werden soll. Anweisungen finden Sie im AWS Systems Manager Benutzerhandbuch unter [Erstellen eines Systems Manager Manager-Parameters (Konsole)](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-create-console.html).

1. Kopieren Sie den ARN Ihres Parameters.

1. Fügen Sie die Systems-Manager-Berechtigungen aus der folgenden Beispielrichtlinie zu der [Service-Ausführungsrolle](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-service-execution-role.html) hinzu. *<arn:aws:ssm:us-east-1:123456789000:parameter/MyParameterName>*Ersetzen Sie durch den ARN Ihres Parameters.  
****  

   ```
   {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "VisualEditor0",
                   "Effect": "Allow",
                   "Action": [
                       "ssm:GetParameterHistory",
                       "ssm:GetParametersByPath",
                       "ssm:GetParameters",
                       "ssm:GetParameter"
                   ],
                   "Resource": "arn:aws:ssm:us-east-1:123456789000:parameter/MyParameterName"
               }
           ]
       }
   ```

1. Um den Parameterspeicher-Konfigurationsanbieter zu verwenden, kopieren Sie die folgenden Code-Zeilen in das Worker-Konfigurations-Textfeld in Schritt 3:

   ```
   # define name of config provider:
   
   config.providers = ssm
   
   # provide implementation classes for parameter store:
   
   config.providers.ssm.class = com.amazonaws.kafka.config.providers.SsmParamStoreConfigProvider
   
   # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located:
   
   config.providers.ssm.param.region = us-east-1
   ```

1. Kopieren Sie für den Parameterspeicher-Konfigurationsanbieter die folgenden Code-Zeilen in die Konnektor-Konfiguration in Schritt 5.

   ```
   #Example implementation for parameter store variable
   schema.history.internal.kafka.bootstrap.servers=${ssm::MSKBootstrapServerAddress}
   ```

   Sie können den obigen Schritt auch mit weiteren Konfigurationsanbietern bündeln.

------
#### [ Configure in Amazon S3 ]

**Zur Konfiguration objects/files in Amazon S3**

1. Öffnen Sie die [Amazon S3-Konsole](https://console.aws.amazon.com/s3/).

1. Laden Sie Ihr Objekt in einen Bucket in S3 hoch. Eine Anleitung finden Sie unter [Hochladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).

1. Kopieren Sie den ARN Ihres Objekts.

1. Fügen Sie die Amazon-S3-Objekt-Leseberechtigungen aus der folgenden Beispielrichtlinie zu der [Service-Ausführungsrolle](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-service-execution-role.html) hinzu. Ersetzen Sie den Beispiel-ARN`arn:aws:s3:::<MY_S3_BUCKET/path/to/custom-plugin.zip>`,, durch den ARN Ihres Objekts.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
               {
                   "Sid": "VisualEditor0",
                   "Effect": "Allow",
                   "Action": "s3:GetObject",
                   "Resource": "arn:aws:s3:::<MY_S3_BUCKET/path/to/custom-plugin.zip>"
               }
           ]
       }
   ```

1. Um den Amazon-S3-Konfigurationsanbieter zu verwenden, kopieren Sie die folgenden Code-Zeilen in das Worker-Konfigurations-Textfeld in Schritt 3:

   ```
   # define name of config provider:
   
   config.providers = s3import
   # provide implementation classes for S3:
   
   config.providers.s3import.class = com.amazonaws.kafka.config.providers.S3ImportConfigProvider
   ```

1. Kopieren Sie für den Amazon-S3-Konfigurationsanbieter die folgenden Code-Zeilen in die Konnektor-Konfiguration in Schritt 4.

   ```
   #Example implementation for S3 object
   
   database.ssl.truststore.location = ${s3import:us-west-2:my_cert_bucket/path/to/trustore_unique_filename.jks}
   ```

   Sie können die obigen zwei Schritte auch mit weiteren Konfigurationsanbietern bündeln.

------

## Eine benutzerdefinierte Worker-Konfiguration mit Informationen zu Ihrem Konfigurationsanbieter erstellen
<a name="msk-connect-config-providers-create-custom-config"></a>

1. Wählen Sie im Abschnitt **Amazon MSK Connect** die Option **Worker-Konfigurationen**.

1. Wählen Sie **Worker-Konfiguration erstellen**.

1. Geben Sie `SourceDebeziumCustomConfig` in das Textfeld für den Namen der Worker-Konfiguration ein. Die Beschreibung ist optional.

1. Kopieren Sie den entsprechenden Konfigurations-Code basierend auf den gewünschten Anbietern und fügen Sie ihn in das Textfeld **Worker-Konfiguration** ein.

1. Dies ist ein Beispiel der Worker-Konfiguration für alle drei Anbieter:

   ```
   key.converter=org.apache.kafka.connect.storage.StringConverter
   key.converter.schemas.enable=false
   value.converter=org.apache.kafka.connect.json.JsonConverter
   value.converter.schemas.enable=false
   offset.storage.topic=offsets_my_debezium_source_connector
   
   # define names of config providers:
   
   config.providers=secretsmanager,ssm,s3import
   
   # provide implementation classes for each provider:
   
   config.providers.secretsmanager.class    = com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider
   config.providers.ssm.class               = com.amazonaws.kafka.config.providers.SsmParamStoreConfigProvider
   config.providers.s3import.class          = com.amazonaws.kafka.config.providers.S3ImportConfigProvider
   
   # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located:
   
   
   config.providers.secretsmanager.param.region = us-east-1
   config.providers.ssm.param.region = us-east-1
   ```

1. Wählen Sie Worker-Konfiguration erstellen.

## Erstellen Sie den Konnektor
<a name="msk-connect-config-providers-create-connector"></a>

1. Erstellen Sie einen neuen Konnektor anhand der Anweisungen unter [Neuen Konnektor erstellen](https://docs.aws.amazon.com/msk/latest/developerguide/mkc-create-connector.html).

1. Wählen Sie die `custom-plugin.zip`-Datei, die Sie in [Erstellen Sie ein benutzerdefiniertes Plugin und laden Sie es auf S3 hoch](#msk-connect-config-providers-create-custom-plugin) als Quelle für das benutzerdefinierte Plugin in Ihren S3-Bucket hochgeladen haben.

1. Kopieren Sie den entsprechenden Konfigurations-Code basierend auf den gewünschten Anbietern und fügen Sie ihn in das Feld Konnektor-Konfiguration ein.

1. Dies ist ein Beispiel für die Konnektor-Konfiguration für alle drei Anbieter:

   ```
   #Example implementation for parameter store variable
   schema.history.internal.kafka.bootstrap.servers=${ssm::MSKBootstrapServerAddress}
   
   #Example implementation for secrets manager variable
   database.user=${secretsmanager:MSKAuroraDBCredentials:username}
   database.password=${secretsmanager:MSKAuroraDBCredentials:password}
   
   #Example implementation for Amazon S3 file/object
   database.ssl.truststore.location = ${s3import:us-west-2:my_cert_bucket/path/to/trustore_unique_filename.jks}
   ```

1. Wählen Sie **Benutzerdefinierte Konfiguration verwenden und wählen Sie eine** Option **SourceDebeziumCustomConfig**aus der Dropdownliste **Worker-Konfiguration** aus.

1. Folgen Sie den weiteren Schritten aus den Anweisungen unter [Konnektor erstellen](https://docs.aws.amazon.com/msk/latest/developerguide/mkc-create-connector.html).

# IAM-Rollen und -Richtlinien für MSK Connect
<a name="msk-connect-iam"></a>

In diesem Abschnitt können Sie die entsprechenden IAM-Richtlinien und -Rollen einrichten, um Amazon MSK Connect sicher in Ihrer AWS Umgebung bereitzustellen und zu verwalten. In den folgenden Abschnitten wird die Dienstausführungsrolle erläutert, die mit MSK Connect verwendet werden muss, einschließlich der erforderlichen Vertrauensrichtlinie und zusätzlicher Berechtigungen, die für die Verbindung mit einem IAM-authentifizierten MSK-Cluster erforderlich sind. Die Seite enthält auch Beispiele für umfassende IAM-Richtlinien, um vollen Zugriff auf die MSK Connect-Funktionalität zu gewähren, sowie Einzelheiten zu AWS verwalteten Richtlinien, die für den Service verfügbar sind. 

**Topics**
+ [Verstehen Sie die Rolle der Serviceausführung](msk-connect-service-execution-role.md)
+ [Beispiel für eine IAM-Richtlinie für MSK Connect](mkc-iam-policy-examples.md)
+ [Vermeiden Sie dienstübergreifende Probleme mit verwirrten Stellvertretern](cross-service-confused-deputy-prevention.md)
+ [AWS verwaltete Richtlinien für MSK Connect](mkc-security-iam-awsmanpol.md)
+ [Verwenden Sie serviceverknüpfte Rollen für MSK Connect](mkc-using-service-linked-roles.md)

# Verstehen Sie die Rolle der Serviceausführung
<a name="msk-connect-service-execution-role"></a>

**Anmerkung**  
Amazon MSK Connect unterstützt nicht die Verwendung der [serviceverknüpften Rolle](mkc-using-service-linked-roles.md) als Service-Ausführungsrolle. Sie müssen eine separate Service-Ausführungsrolle erstellen. Anweisungen zum Erstellen einer benutzerdefinierten IAM-Rolle finden Sie unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS Dienst](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*.

Wenn Sie einen Connector mit MSK Connect erstellen, müssen Sie eine AWS Identity and Access Management (IAM-) Rolle angeben, die damit verwendet werden soll. Ihre Service-Ausführungsrolle muss die folgende Vertrauensrichtlinie haben, damit MSK Connect sie übernehmen kann. Weitere Informationen zu Bedingungskontextschlüsseln finden Sie unter [Vermeiden Sie dienstübergreifende Probleme mit verwirrten Stellvertretern](cross-service-confused-deputy-prevention.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "kafkaconnect.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:kafkaconnect:us-east-1:123456789012:connector/myConnector/abc12345-abcd-4444-a8b9-123456f513ed-2"
        }
      }
    }   
  ]
}
```

------

Wenn es sich bei dem Amazon-MSK-Cluster, den Sie mit Ihrem Konnektor verwenden möchten, um einen Cluster handelt, der die IAM-Authentifizierung verwendet, müssen Sie der Service-Ausführungsrolle des Konnektors die folgende Berechtigungsrichtlinie hinzufügen. Informationen darüber, wie Sie die UUID Ihres Clusters finden und wie Sie ein Thema erstellen, finden Sie unter. ARNs [Ressourcen für Autorisierungsrichtlinien](kafka-actions.md#msk-iam-resources)

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:DescribeCluster"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:000000000001:cluster/testClusterName/300d0000-0000-0005-000f-00000000000b-1"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopic"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:topic/myCluster/300a0000-0000-0003-000a-00000000000b-6/__amazon_msk_connect_read"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:WriteData",
                "kafka-cluster:DescribeTopic"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:topic/testCluster/300f0000-0000-0008-000d-00000000000m-7/__amazon_msk_connect_write"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:CreateTopic",
                "kafka-cluster:WriteData",
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopic"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:topic/testCluster/300f0000-0000-0008-000d-00000000000m-7/__amazon_msk_connect_*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:us-east-1:123456789012:group/testCluster/300d0000-0000-0005-000f-00000000000b-1/__amazon_msk_connect_*",
                "arn:aws:kafka:us-east-1:123456789012:group/testCluster/300d0000-0000-0005-000f-00000000000b-1/connect-*"
            ]
        }
    ]
}
```

------

Je nach Art des Connectors müssen Sie der Dienstausführungsrolle möglicherweise auch eine Berechtigungsrichtlinie hinzufügen, die ihr den Zugriff auf AWS Ressourcen ermöglicht. Wenn Ihr Konnektor beispielsweise Daten an einen S3-Bucket senden muss, muss die Service-Ausführungsrolle über eine Berechtigungsrichtlinie verfügen, welche die Erlaubnis erteilt, in diesen Bucket zu schreiben. Zu Testzwecken können Sie eine der vorgefertigten IAM-Richtlinien verwenden, die vollen Zugriff gewähren, z. B. `arn:aws:iam::aws:policy/AmazonS3FullAccess`. Aus Sicherheitsgründen empfehlen wir jedoch, die restriktivste Richtlinie zu verwenden, die es Ihrem Connector ermöglicht, von der AWS Quelle zu lesen oder in die AWS Senke zu schreiben.

# Beispiel für eine IAM-Richtlinie für MSK Connect
<a name="mkc-iam-policy-examples"></a>

Um einem Benutzer ohne Administratorrechte vollen Zugriff auf alle MSK-Connect-Funktionen zu gewähren, fügen Sie der IAM-Rolle des Benutzers eine Richtlinie wie die folgende hinzu.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "MSKConnectFullAccess",
      "Effect": "Allow",
      "Action": [
        "kafkaconnect:CreateConnector",
        "kafkaconnect:DeleteConnector",
        "kafkaconnect:DescribeConnector",
        "kafkaconnect:ListConnectors",
        "kafkaconnect:UpdateConnector",
        "kafkaconnect:CreateCustomPlugin",
        "kafkaconnect:DeleteCustomPlugin",
        "kafkaconnect:DescribeCustomPlugin",
        "kafkaconnect:ListCustomPlugins",
        "kafkaconnect:CreateWorkerConfiguration",
        "kafkaconnect:DeleteWorkerConfiguration",
        "kafkaconnect:DescribeWorkerConfiguration",
        "kafkaconnect:ListWorkerConfigurations"
      ],
      "Resource": "*"
    },
    {
      "Sid": "IAMPassRole",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/MSKConnectServiceRole",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "kafkaconnect.amazonaws.com"
        }
      }
    },
    {
      "Sid": "EC2NetworkAccess",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DeleteNetworkInterface",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
    },
    {
      "Sid": "MSKClusterAccess",
      "Effect": "Allow",
      "Action": [
        "kafka:DescribeCluster",
        "kafka:DescribeClusterV2",
        "kafka:GetBootstrapBrokers"
      ],
      "Resource": "arn:aws:kafka:us-east-1:123456789012:cluster/myCluster/"
    },
    {
      "Sid": "MSKLogGroupAccess",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:us-east-1:123456789012:log-group:/aws/msk-connect/*"
      ]
    },
    {
      "Sid": "S3PluginAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1-custom-plugins",
        "arn:aws:s3:::amzn-s3-demo-bucket1-custom-plugins/*"
      ]
    }
  ]
}
```

------

# Vermeiden Sie dienstübergreifende Probleme mit verwirrten Stellvertretern
<a name="cross-service-confused-deputy-prevention"></a>

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. In der AWS Tat kann ein dienstübergreifendes Identitätswechsels zu einem Problem mit dem verwirrten Stellvertreter führen. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der *Anruf-Dienst*) einen anderen Dienst anruft (den *aufgerufenen Dienst*). Der aufrufende Service kann manipuliert werden, um seine Berechtigungen zu verwenden, um Aktionen auf die Ressourcen eines anderen Kunden auszuführen, für die er sonst keine Zugriffsberechtigung haben sollte. Um dies zu verhindern, bietet AWS Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben. 

Wir empfehlen die Verwendung der globalen Bedingungskontext-Schlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) und [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) in ressourcenbasierten Richtlinien, um die Berechtigungen, die MSK Connect einem anderen Service erteilt, auf die Ressource zu beschränken. Wenn der `aws:SourceArn`-Wert nicht die Konto-ID enthält (z. B. ein Amazon-S3-Bucket-ARN enthält nicht die Konto-ID), müssen Sie beide globale Bedingungskontext-Schlüssel verwenden, um Berechtigungen einzuschränken. Wenn Sie beide globale Bedingungskontextschlüssel verwenden und der `aws:SourceArn`-Wert die Konto-ID enthält, müssen der `aws:SourceAccount`-Wert und das Konto im `aws:SourceArn`-Wert dieselbe Konto-ID verwenden, wenn sie in der gleichen Richtlinienanweisung verwendet wird. Verwenden Sie `aws:SourceArn`, wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten. Verwenden Sie `aws:SourceAccount`, wenn Sie zulassen möchten, dass Ressourcen in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft werden.

Im Fall von MSK Connect muss der Wert von `aws:SourceArn` ein MSK-Konnektor sein.

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontext-Schlüssels `aws:SourceArn` mit dem vollständigen ARN der Ressource. Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Bedingungskontext-Schlüssel `aws:SourceArn` mit Platzhaltern (`*`) für die unbekannten Teile des ARN. Stellt beispielsweise alle Konnektoren *arn:aws:kafkaconnect:us-east-1:123456789012:connector/\$1* dar, die zu dem Konto mit der ID 123456789012 in der Region USA Ost (Nord-Virginia) gehören.

Das folgende Beispiel zeigt, wie Sie die globalen Bedingungskontext-Schlüssel `aws:SourceArn` und `aws:SourceAccount` in MSK Connect verwenden können, um das Confused-Deputy-Problem zu vermeiden. Ersetzen Sie *123456789012* und arn:aws:kafkaconnect: ::connector//durch Ihre Verbindungsinformationen und. *us-east-1* *123456789012* *my-S3-Sink-Connector* *abcd1234-5678-90ab-cdef-1234567890ab* AWS-Konto 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": " kafkaconnect.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
        "aws:SourceArn": "arn:aws:kafkaconnect:us-east-1:123456789012:connector/my-S3-Sink-Connector/abcd1234-5678-90ab-cdef-1234567890ab"
        }
      }
    }   
  ]
}
```

------

# AWS verwaltete Richtlinien für MSK Connect
<a name="mkc-security-iam-awsmanpol"></a>

Eine AWS verwaltete Richtlinie ist eine eigenständige Richtlinie, die von erstellt und verwaltet AWS wird. AWS Verwaltete Richtlinien sind so konzipiert, dass sie Berechtigungen für viele gängige Anwendungsfälle bereitstellen, sodass Sie damit beginnen können, Benutzern, Gruppen und Rollen Berechtigungen zuzuweisen.

Beachten Sie, dass AWS verwaltete Richtlinien für Ihre speziellen Anwendungsfälle möglicherweise keine Berechtigungen mit den geringsten Rechten gewähren, da sie allen AWS Kunden zur Verfügung stehen. Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie [vom Kunden verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind.

Sie können die in AWS verwalteten Richtlinien definierten Berechtigungen nicht ändern. Wenn die in einer AWS verwalteten Richtlinie definierten Berechtigungen AWS aktualisiert werden, wirkt sich das Update auf alle Prinzidentitäten (Benutzer, Gruppen und Rollen) aus, denen die Richtlinie zugeordnet ist. AWS aktualisiert eine AWS verwaltete Richtlinie höchstwahrscheinlich, wenn eine neue Richtlinie eingeführt AWS-Service wird oder neue API-Operationen für bestehende Dienste verfügbar werden.

Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) im *IAM-Benutzerhandbuch*.

## AWS verwaltete Richtlinie: Amazon MSKConnect ReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonMSKConnectReadOnlyAccess"></a>

Diese Richtlinie gewährt dem Benutzer die Berechtigungen, die zum Auflisten und Beschreiben von MSK-Connect-Ressourcen erforderlich sind.

Sie können die `AmazonMSKConnectReadOnlyAccess`-Richtlinie an Ihre IAM-Identitäten anfügen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:ListConnectors",
                "kafkaconnect:ListCustomPlugins",
                "kafkaconnect:ListWorkerConfigurations"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:DescribeConnector"
            ],
            "Resource": [
                "arn:aws:kafkaconnect:*:*:connector/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:DescribeCustomPlugin"
            ],
            "Resource": [
                "arn:aws:kafkaconnect:*:*:custom-plugin/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:DescribeWorkerConfiguration"
            ],
            "Resource": [
                "arn:aws:kafkaconnect:*:*:worker-configuration/*"
            ]
        }
    ]
}
```

------

## AWS verwaltete Richtlinie: KafkaConnectServiceRolePolicy
<a name="security-iam-awsmanpol-KafkaConnectServiceRolePolicy"></a>

Diese Richtlinie gewährt dem MSK-Connect-Service die Berechtigungen, die zum Erstellen und Verwalten von Netzwerkschnittstellen mit dem Tag `AmazonMSKConnectManaged:true` erforderlich sind. Diese Netzwerkschnittstellen ermöglichen MSK Connect Netzwerkzugriff auf Ressourcen in Ihrer Amazon VPC, wie z. B. einen Apache-Kafka-Cluster oder eine Quelle oder einen Sink.

Sie können keine Verbindungen KafkaConnectServiceRolePolicy zu Ihren IAM-Entitäten herstellen. Diese Richtlinie ist an eine serviceverknüpfte Rolle angehängt, die MSK Connect die Durchführung von Aktionen in Ihrem Namen erlaubt.

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"aws:RequestTag/AmazonMSKConnectManaged": "true"
				},
				"ForAllValues:StringEquals": {
					"aws:TagKeys": "AmazonMSKConnectManaged"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": [
				"arn:aws:ec2:*:*:subnet/*",
				"arn:aws:ec2:*:*:security-group/*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:CreateAction": "CreateNetworkInterface"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeNetworkInterfaces",
				"ec2:CreateNetworkInterfacePermission",
				"ec2:AttachNetworkInterface",
				"ec2:DetachNetworkInterface",
				"ec2:DeleteNetworkInterface"
			],
			"Resource": "arn:aws:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:ResourceTag/AmazonMSKConnectManaged": "true"
				}
			}
		}
	]
}
```

------

## MSK Connect-Updates für AWS verwaltete Richtlinien
<a name="security-iam-awsmanpol-updates"></a>

Sehen Sie sich Details zu Aktualisierungen der AWS verwalteten Richtlinien für MSK Connect an, seit dieser Dienst begonnen hat, diese Änderungen zu verfolgen.


| Änderungen | Beschreibung | Date | 
| --- | --- | --- | 
|  MSK Connect hat die schreibgeschützte Richtlinie aktualisiert  |  MSK Connect hat die MSKConnect ReadOnlyAccess Amazon-Richtlinie aktualisiert, um die Einschränkungen bei der Angebotserstellung aufzuheben.  | 13. Oktober 2021 | 
|  MSK Connect hat mit der Nachverfolgung von Änderungen begonnen  |  MSK Connect begann, Änderungen für seine AWS verwalteten Richtlinien zu verfolgen.  | 14. September 2021 | 

# Verwenden Sie serviceverknüpfte Rollen für MSK Connect
<a name="mkc-using-service-linked-roles"></a>

Amazon MSK Connect verwendet AWS Identity and Access Management (IAM) [serviceverknüpfte](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Rollen. Eine serviceverknüpfte Rolle ist ein spezieller Typ von IAM-Rolle, die direkt mit MSK Connect verknüpft ist. Dienstbezogene Rollen sind von MSK Connect vordefiniert und enthalten alle Berechtigungen, die der Dienst benötigt, um andere AWS Dienste in Ihrem Namen aufzurufen. 

Eine serviceverknüpfte Rolle vereinfacht die Einrichtung von MSK Connect, da Sie die erforderlichen Berechtigungen nicht manuell hinzufügen müssen. MSK Connect definiert die Berechtigungen seiner serviceverknüpften Rollen. Sofern nicht anders festgelegt, kann nur MSK Connect die Rollen übernehmen. Die definierten Berechtigungen umfassen die Vertrauens- und Berechtigungsrichtlinie. Diese Berechtigungsrichtlinie kann keinen anderen IAM-Entitäten zugewiesen werden.

Informationen zu anderen Services, die serviceverknüpften Rollen unterstützen, finden Sie unter [AWS -Services, die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Suchen Sie nach den Services, für die **Ja** in der Spalte **Serviceverknüpfte Rolle** angegeben ist. Wählen Sie über einen Link **Ja** aus, um die Dokumentation zu einer serviceverknüpften Rolle für diesen Service anzuzeigen.

## Serviceverknüpfte Rollenberechtigungen für MSK Connect
<a name="slr-permissions"></a>

MSK Connect verwendet die serviceverknüpfte Rolle mit dem Namen **AWSServiceRoleForKafkaConnect**— Erlaubt Amazon MSK Connect, in Ihrem Namen auf Amazon-Ressourcen zuzugreifen.

Die AWSService RoleForKafkaConnect dienstbezogene Rolle vertraut darauf, dass der `kafkaconnect.amazonaws.com` Service die Rolle übernimmt.

Weitere Informationen über die Berechtigungsrichtlinie, die die Rolle verwendet, finden Sie unter [AWS verwaltete Richtlinie: KafkaConnectServiceRolePolicy](mkc-security-iam-awsmanpol.md#security-iam-awsmanpol-KafkaConnectServiceRolePolicy).

Sie müssen Berechtigungen konfigurieren, damit eine juristische Stelle von IAM (z. B. Benutzer, Gruppe oder Rolle) eine serviceverknüpfte Rolle erstellen, bearbeiten oder löschen kann. Weitere Informationen finden Sie unter [serviceverknüpfte Rollenberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) im *IAM-Benutzerhandbuch*.

## Erstellen einer serviceverknüpften Rolle für MSK Connect
<a name="create-slr"></a>

Sie müssen eine serviceverknüpfte Rolle nicht manuell erstellen. Wenn Sie einen Connector in der AWS-Managementkonsole, der oder der AWS API erstellen AWS CLI, erstellt MSK Connect die serviceverknüpfte Rolle für Sie. 

Wenn Sie diese serviceverknüpfte Rolle löschen und sie dann erneut erstellen müssen, können Sie dasselbe Verfahren anwenden, um die Rolle in Ihrem Konto neu anzulegen. Wenn Sie einen Konnektor erstellen, erstellt MSK Connect wieder die serviceverknüpfte Rolle für Sie. 

## Bearbeiten einer serviceverknüpften Rolle für MSK Connect
<a name="edit-slr"></a>

MSK Connect erlaubt es Ihnen nicht, die AWSService RoleForKafkaConnect dienstverknüpfte Rolle zu bearbeiten. Da möglicherweise verschiedene Entitäten auf die Rolle verweisen, kann der Rollenname nach der Erstellung einer serviceverknüpften Rolle nicht bearbeitet werden. Sie können jedoch die Beschreibung der Rolle mit IAM bearbeiten. Weitere Informationen finden Sie unter [Bearbeiten einer serviceverknüpften Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) im *IAM-Benutzerhandbuch*.

## Löschen einer serviceverknüpften Rolle für MSK Connect
<a name="delete-slr"></a>

Sie können die IAM-Konsole, die AWS CLI oder die AWS API verwenden, um die serviceverknüpfte Rolle manuell zu löschen. Dazu müssen Sie zunächst alle MSK-Connect-Konnektoren manuell löschen und dann können Sie die Rolle manuell löschen. Weitere Informationen finden Sie unter [Löschen einer serviceverknüpften Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) im *IAM-Leitfaden*.

## Unterstützte Regionen für serviceverknüpfte MSK-Connect-Rollen
<a name="slr-regions"></a>

MSK Connect unterstützt die Verwendung von serviceverknüpften Rollen in allen Regionen, in denen der Service verfügbar ist. Weitere Informationen finden Sie unter [AWS Regionen und Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html).

# Internetzugang für Amazon MSK Connect aktivieren
<a name="msk-connect-internet-access"></a>

Wenn Ihr Connector für Amazon MSK Connect Zugriff auf das Internet benötigt, empfehlen wir Ihnen, die folgenden Amazon Virtual Private Cloud (VPC-) Einstellungen zu verwenden, um diesen Zugriff zu aktivieren.
+ Konfigurieren Sie Ihren Konnektor mit privaten Subnetzen.
+ Erstellen Sie ein öffentliches [NAT-Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) oder eine [NAT-Instance](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html) für Ihre VPC in einem öffentlichen Subnetz. Weitere Informationen finden Sie auf der Seite [Subnetze VPCs mithilfe von NAT-Geräten mit dem Internet oder anderen Connect](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) im *Amazon Virtual Private Cloud**Benutzerhandbuch*. 
+ Erlauben Sie ausgehenden Datenverkehr von Ihren privaten Subnetzen zu Ihrem NAT-Gateway oder Ihrer NAT-Instance.

# Ein NAT-Gateway für Amazon MSK Connect einrichten
<a name="msk-connect-internet-access-private-subnets-example"></a>

In den folgenden Schritten wird gezeigt, wie Sie ein NAT-Gateway einrichten, um den Internetzugang für einen Konnektor zu ermöglichen. Sie müssen diese Schritte ausführen, bevor Sie einen Konnektor in einem privaten Subnetz erstellen.

## Vollständige Voraussetzungen für die Einrichtung eines NAT-Gateways
<a name="msk-connect-internet-access-private-subnets-prereq"></a>

Stellen Sie sicher, dass Sie über Folgendes verfügen.
+ Die ID der Amazon Virtual Private Cloud (VPC), die Ihrem Cluster zugeordnet ist. Zum Beispiel *vpc-123456ab*.
+ Die IDs privaten Subnetze in Ihrer VPC. Zum Beispiel *subnet-a1b2c3de*, *subnet-f4g5h6ij* usw. Sie müssen Ihren Konnektor mit privaten Subnetzen konfigurieren.

## Schritte zum Aktivieren des Internetzugangs für Ihren Connector
<a name="msk-connect-internet-access-private-subnets-steps"></a>

**Internetzugang für Ihren Konnektor aktivieren**

1. Öffnen Sie die Amazon Virtual Private Cloud Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Erstellen Sie ein öffentliches Subnetz für Ihr NAT-Gateway mit einem aussagekräftigen Namen und notieren Sie sich die Subnetz-ID. Detaillierte Anweisungen finden Sie unter [Erstellen eines Subnetzes in Ihrer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet).

1. Erstellen Sie ein Internet-Gateway, damit Ihre VPC mit dem Internet kommunizieren kann, und notieren Sie sich die Gateway-ID. Anfügen eines Internet-Gateways zu Ihrer VPC. Anweisungen finden Sie unter [Erstellen und Anfügen eines Internet-Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway).

1. Stellen Sie ein öffentliches NAT-Gateway bereit, damit Hosts in Ihren privaten Subnetzen Ihr öffentliches Subnetz erreichen können. Wenn Sie das NAT-Gateway erstellen, wählen Sie das öffentliche Subnetz aus, das Sie zuvor erstellt haben. Detaillierte Anweisungen finden Sie unter [Erstellen eines NAT-Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating).

1. Konfigurieren Sie Ihre Routing-Tabellen. Sie benötigen insgesamt zwei Routing-Tabellen, um diese Einrichtung abzuschließen. Sie sollten bereits über eine Haupt-Routing-Tabelle verfügen, die automatisch zur gleichen Zeit wie Ihre VPC erstellt wurde. In diesem Schritt erstellen Sie eine zusätzliche Routing-Tabelle für Ihr öffentliches Subnetz.

   1. Verwenden Sie die folgenden Einstellungen, um die Haupt-Routing-Tabelle Ihrer VPC so zu ändern, dass Ihre privaten Subnetze den Verkehr an Ihr NAT-Gateway weiterleiten. Anweisungen finden Sie im *Benutzerhandbuch* für *Amazon Virtual Private Cloud* unter [Arbeiten mit Routing-Tabellen](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html).  
**Private MSKC-Routing-Tabelle**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/msk-connect-internet-access-private-subnets-example.html)

   1. Folgen Sie den Anweisungen unter [Erstellen einer benutzerdefinierten Routing-Tabelle](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Routing), um eine Routing-Tabelle für Ihr öffentliches Subnetz zu erstellen. Geben Sie beim Erstellen der Tabelle einen aussagekräftigen Namen in das Feld **Namens-Tag** ein, damit Sie leichter erkennen können, mit welchem Subnetz die Tabelle verknüpft ist. Zum Beispiel **Public MSKC**.

   1. Konfigurieren Sie Ihre **Public MSKC**-Routing-Tabelle mit den folgenden Einstellungen.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/msk-connect-internet-access-private-subnets-example.html)

# Verstehen Sie private DNS-Hostnamen
<a name="msk-connect-dns"></a>

Mit der Unterstützung für private DNS-Hostnamen in MSK Connect können Sie Konnektoren so konfigurieren, dass sie auf öffentliche oder private Domainnamen verweisen. Die Unterstützung hängt von den DNS-Servern ab, die im *DHCP-Optionssatz* der VPC angegeben sind.

Ein DHCP-Optionssatz ist eine Gruppe von Netzwerkkonfigurationen, mit deren Hilfe EC2-Instances in einer VPC über Ihr virtuelles Netzwerk kommunizieren. Jede VPC weist einen standardmäßigen DHCP-Optionssatz auf. Sie können jedoch einen benutzerdefinierten DHCP-Optionssatz erstellen, etwa wenn die Instances in Ihrer VPC anstelle des Amazon-DNS-Servers einen anderen DNS-Server für die Auflösung von Domainnamen verwenden sollen. Siehe [DHCP-Optionssätze in Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html).

Bevor die private DNS-Auflösung in MSK Connect enthalten capability/feature war, verwendeten Connectoren die Service-VPC-DNS-Resolver für DNS-Abfragen von einem Kundenconnector. Konnektoren verwendeten nicht die DNS-Server, die in den VPC-DHCP-Optionssätzen des Kunden für die DNS-Auflösung definiert sind.

Konnektoren konnten nur in Konnektor-Konfigurationen oder Plugins des Kunden, die öffentlich auflösbar waren, auf Hostnamen verweisen. Sie konnten keine privaten Hostnamen auflösen, die in einer privat gehosteten Zone definiert waren, oder DNS-Server in einem anderen Kundennetzwerk verwenden.

Ohne Private DNS konnten Kunden, die sich dafür entschieden hatten, ihre Datenbanken, Data Warehouses und Systeme wie den Secrets Manager in ihrer eigenen VPC für das Internet unzugänglich zu machen, nicht mit MSK-Konnektoren arbeiten. Kunden verwenden häufig private DNS-Hostnamen, um die Sicherheitsvorkehrungen des Unternehmens einzuhalten.

# Konfigurieren Sie einen VPC-DHCP-Optionssatz für Ihren Connector
<a name="msk-connect-dns-config-dhcp"></a>

Konnektoren verwenden automatisch die DNS-Server, die in ihrem VPC-DHCP-Optionssatz definiert sind, wenn der Konnektor erstellt wird. Bevor Sie einen Konnektor erstellen, stellen Sie sicher, dass Sie den VPC-DHCP-Optionssatz für die DNS-Hostnamen-Auflösungsanforderungen Ihres Konnektors konfigurieren.

Konnektoren, die Sie erstellt haben, bevor das Private-DNS-Hostname-Feature in MSK Connect verfügbar war, verwenden weiterhin die vorherige DNS-Auflösungskonfiguration, ohne dass Änderungen erforderlich sind.

Wenn Sie in Ihrem Konnektor nur eine öffentlich auflösbare DNS-Hostname-Auflösung benötigen, empfehlen wir zur einfacheren Einrichtung, bei der Erstellung des Konnektors die Standard-VPC Ihres Kontos zu verwenden. Weitere Informationen zum von Amazon bereitgestellten DNS-Server oder Amazon Route 53 Resolver finden Sie unter [Amazon DNS Server](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#AmazonDNS) im *Amazon-VPC-Benutzerhandbuch*.

Wenn Sie private DNS-Hostnamen auflösen müssen, stellen Sie sicher, dass der DHCP-Optionssatz der VPC, die bei der Erstellung des Konnektors übergeben wird, korrekt konfiguriert ist. Weitere Informationen finden Sie unter [Arbeiten mit DHCP-Optionssätzen](https://docs.aws.amazon.com/vpc/latest/userguide/DHCPOptionSet.html) im *Amazon-VPC-Benutzerhandbuch*.

Wenn Sie einen DHCP-Optionssatz für die Auflösung privater DNS-Hostnamen konfigurieren, stellen Sie sicher, dass der Konnektor die benutzerdefinierten DNS-Server erreichen kann, die Sie im DHCP-Optionssatz konfigurieren. Andernfalls schlägt die Erstellung des Konnektors fehl.

Nachdem Sie den VPC-DHCP-Optionssatz angepasst haben, verwenden Konnektoren, die anschließend in dieser VPC erstellt wurden, die DNS-Server, die Sie im Optionssatz angegeben haben. Wenn Sie den Optionssatz ändern, nachdem Sie einen Konnektor erstellt haben, übernimmt der Konnektor innerhalb weniger Minuten die Einstellungen im neuen Optionssatz.

# DNS-Attribute für Ihre VPC konfigurieren
<a name="msk-connect-dns-attributes"></a>

Stellen Sie sicher, dass Sie die VPC-DNS-Attribute korrekt konfiguriert haben, wie unter [DNS-Attribute in Ihrer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) und [DNS-Hostnamen](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-hostnames) im *Amazon-VPC-Benutzerhandbuch* beschrieben.

Informationen [zur Verwendung von Resolver-Endpunkten für eingehende VPCs und ausgehende Verbindungen, um andere Netzwerke mit Ihrer VPC zu verbinden, um mit Ihrem Connector zu arbeiten, finden Sie unter Auflösen von DNS-Abfragen zwischen und Ihrem Netzwerk](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) im *Amazon Route 53-Entwicklerhandbuch*.

# Behandeln Sie Fehler bei der Connector-Erstellung
<a name="msk-connect-dns-failure-handling"></a>

Dieser Abschnitt beschreibt mögliche Fehler bei der Konnektor-Erstellung im Zusammenhang mit der DNS-Auflösung und empfohlene Maßnahmen zur Behebung der Probleme.


| Fehler | Vorgeschlagene Aktion | 
| --- | --- | 
|  Die Konnektor-Erstellung schlägt fehl, wenn eine DNS-Auflösungsabfrage fehlschlägt oder wenn DNS-Server vom Konnektor aus nicht erreichbar sind.  |  Wenn Sie diese Protokolle für Ihren Connector konfiguriert haben, können Sie in Ihren CloudWatch Protokollen Fehler bei der Connectorerstellung sehen, die auf erfolglose DNS-Auflösungsabfragen zurückzuführen sind. Überprüfen Sie die DNS-Serverkonfigurationen und stellen Sie die Netzwerkkonnektivität zu den DNS-Servern vom Konnektor aus sicher.  | 
|  Wenn Sie die DNS-Serverkonfiguration in Ihrem VPC-DHCP-Optionssatz ändern, während ein Konnektor läuft, können DNS-Auflösungsabfragen vom Konnektor fehlschlagen. Wenn die DNS-Auflösung fehlschlägt, können einige der Konnektor-Aufgaben in den Status „Fehlgeschlagen“ übergehen.  |  Wenn Sie diese Protokolle für Ihren Connector konfiguriert haben, können Sie in Ihren CloudWatch Protokollen Fehler bei der Connectorerstellung sehen, die auf erfolglose DNS-Auflösungsanfragen zurückzuführen sind. Die fehlgeschlagenen Aufgaben sollten automatisch neu gestartet werden, damit der Konnektor wieder betriebsbereit ist. Geschieht dies nicht, können Sie sich an den Support wenden, um die fehlgeschlagenen Aufgaben für den jeweiligen Konnektor neu zu starten, oder Sie können den Konnektor neu erstellen.  | 

# Sicherheit für MSK Connect
<a name="msk-connect-security"></a>

Sie können einen Interface VPC Endpoint, powered by, verwenden, um zu verhindern AWS PrivateLink, dass der Datenverkehr zwischen Ihrer Amazon VPC und Amazon MSK-Connect Compatible APIs das Amazon-Netzwerk verlässt. Schnittstellen-VPC-Endpunkte benötigen kein Internet-Gateway, kein NAT-Gerät, keine VPN-Verbindung oder AWS Direct Connect Verbindung. Weitere Informationen finden Sie unter [Verwenden Sie Amazon MSK APIs mit Interface VPC-Endpunkten](privatelink-vpc-endpoints.md).

# Protokollierung für MSK Connect
<a name="msk-connect-logging"></a>

MSK Connect kann Protokollereignisse schreiben, die Sie zum Debuggen Ihres Konnektors verwenden können. Wenn Sie einen Konnektor erstellen, können Sie null oder mehr der folgenden Protokollziele angeben:
+ Amazon CloudWatch Logs: Sie geben die Protokollgruppe an, an die MSK Connect die Protokollereignisse Ihres Connectors senden soll. Informationen zum Erstellen einer Protokollgruppe finden Sie unter [Erstellen einer Protokollgruppe](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#Create-Log-Group) im *CloudWatch Logs-Benutzerhandbuch*.
+ Amazon S3: Sie geben den S3-Bucket an, an den MSK Connect die Protokollereignisse Ihres Konnektors senden soll. Weitere Informationen zum Erstellen eines S3-Buckets finden Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) im *Benutzerhandbuch für Amazon S3*.
+ Amazon Data Firehose: Sie geben den Lieferstream an, an den MSK Connect die Protokollereignisse Ihres Connectors senden soll. Informationen zum Erstellen eines Lieferdatenstroms finden Sie unter [Erstellen eines Amazon Data Firehose-Lieferdatenstroms](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) im *Firehose-Benutzerhandbuch*.

Weitere Informationen zum Einrichten der Protokollierung finden Sie unter [Aktivieren der Protokollierung von AWS -Services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) im *Amazon CloudWatch Logs -Benutzerhandbuch*.

MSK Connect gibt die folgenden Arten von Protokollereignissen aus:


****  

| Level | Description | 
| --- | --- | 
| INFO | Interessante Laufzeitereignisse beim Startup und Herunterfahren. | 
| WARN | Laufzeitsituationen, die keine Fehler sind, aber unerwünscht oder unerwartet sind. | 
| FATAL | Schwerwiegende Fehler, die zu einer vorzeitigen Beendigung führen. | 
| ERROR | Unerwartete Bedingungen und Laufzeitfehler, die nicht schwerwiegend sind. | 

Im Folgenden finden Sie ein Beispiel für ein Protokollereignis, das an Logs gesendet CloudWatch wurde:

```
[Worker-0bb8afa0b01391c41] [2021-09-06 16:02:54,151] WARN [Producer clientId=producer-1] Connection to node 1 (b-1.my-test-cluster.twwhtj.c2.kafka.us-east-1.amazonaws.com/INTERNAL_IP) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient:782)
```

## Verhindern, dass Secrets in Konnektor-Protokollen erscheinen
<a name="msk-connect-logging-secrets"></a>

**Anmerkung**  
Vertrauliche Konfigurationswerte können in Konnektor-Protokollen erscheinen, wenn ein Plugin diese Werte nicht als Secret definiert. Kafka Connect behandelt undefinierte Konfigurationswerte genauso wie jeden anderen Klartext-Wert.

Wenn Ihr Plugin eine Eigenschaft als Secret definiert, redigiert Kafka Connect den Wert der Eigenschaft aus den Konnektor-Protokollen. Die folgenden Konnektor-Protokolle zeigen beispielsweise, dass, wenn ein Plugin `aws.secret.key` als `PASSWORD` Typ definiert, sein Wert durch `[hidden]` ersetzt wird.

```
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] [2022-01-11 15:18:55,150] INFO SecretsManagerConfigProviderConfig values:
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] aws.access.key = my_access_key
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] aws.region = us-east-1
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] aws.secret.key = [hidden]
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] secret.prefix =
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] secret.ttl.ms = 300000
    2022-01-11T15:18:55.000+00:00    [Worker-05e6586a48b5f331b] (com.github.jcustenborder.kafka.config.aws.SecretsManagerConfigProviderConfig:361)
```

Um zu verhindern, dass Secrets in Konnektor-Protokolldateien auftauchen, muss ein Plugin-Entwickler die Enum-Konstante [https://kafka.apache.org/27/javadoc/org/apache/kafka/common/config/ConfigDef.Type.html#PASSWORD](https://kafka.apache.org/27/javadoc/org/apache/kafka/common/config/ConfigDef.Type.html#PASSWORD) von Kafka Connect verwenden, um sensible Eigenschaften zu definieren. Wenn eine Eigenschaft vom Typ `ConfigDef.Type.PASSWORD` ist, schließt Kafka Connect ihren Wert aus den Konnektor-Protokollen aus, auch wenn der Wert als Klartext gesendet wird. 

# Überwachung von Amazon MSK Connect
<a name="mkc-monitoring-overview"></a>

Die Überwachung ist ein wichtiger Bestandteil der Aufrechterhaltung der Zuverlässigkeit, Verfügbarkeit und Leistung von MSK Connect und Ihren anderen AWS Lösungen. Amazon CloudWatch überwacht Ihre AWS Ressourcen und die Anwendungen, auf denen Sie laufen, AWS in Echtzeit. Sie können Kennzahlen erfassen und verfolgen, benutzerdefinierte Dashboards erstellen und Alarme festlegen, die Sie benachrichtigen oder Maßnahmen ergreifen, wenn eine bestimmte Metrik einen von Ihnen festgelegten Schwellenwert erreicht. Sie können beispielsweise die CPU-Auslastung oder andere Messwerte Ihres Connectors CloudWatch verfolgen, sodass Sie dessen Kapazität bei Bedarf erhöhen können. Weitere Informationen finden Sie im [ CloudWatch Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

Sie können die folgenden API-Operationen verwenden:
+ `DescribeConnectorOperation`: Überwachen Sie den Status der Konnektor-Aktualisierungsvorgänge.
+ `ListConnectorOperations`: Verfolgen Sie frühere Updates, die auf Ihrem Connector ausgeführt wurden.

Die folgende Tabelle zeigt die Metriken, an die MSK Connect CloudWatch unter der `ConnectorName` Dimension sendet. MSK Connect liefert diese Metriken standardmäßig und ohne zusätzliche Kosten. CloudWatch speichert diese Metriken 15 Monate lang, sodass Sie auf historische Informationen zugreifen und sich einen besseren Überblick über die Leistung Ihrer Konnektoren verschaffen können. Sie können auch Alarme einrichten, die auf bestimmte Grenzwerte achten und Benachrichtigungen senden oder Aktivitäten auslösen, wenn diese Grenzwerte erreicht werden. Weitere Informationen finden Sie im [ CloudWatch Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).


| Metrikname | Description | 
| --- | --- | 
| CpuUtilization | Der prozentuale Anteil des CPU-Verbrauchs nach System und Benutzer. | 
| ErroredTaskCount | Die Anzahl von fehlerhaften Aufgaben. | 
| MemoryUtilization | Der Prozentsatz des Gesamtspeichers auf einer Worker-Instance, nicht nur der Heap-Speicher der Java Virtual Machine (JVM), der derzeit verwendet wird. JVM gibt normalerweise keinen Speicher an das Betriebssystem zurück. Daher beginnt die JVM-Heap-Größe (MemoryUtilization) normalerweise mit einer minimalen Heap-Größe, die schrittweise auf ein stabiles Maximum von etwa 80-90% ansteigt. Die JVM-Heap-Nutzung kann zunehmen oder abnehmen, wenn sich die tatsächliche Speicherauslastung des Konnektors ändert. | 
| RebalanceCompletedTotal | Die Gesamtzahl der von diesem Konnektor durchgeführten Neuausgleichungen. | 
| RebalanceTimeAvg | Die durchschnittliche Zeit in Millisekunden, die der Konnektor für den Neuausgleich benötigt.  | 
| RebalanceTimeMax | Die maximale Zeit in Millisekunden, die der Konnektor für den Neuausgleich benötigt. | 
| RebalanceTimeSinceLast |  Die Zeit in Millisekunden, seit dieser Konnektor den letzten Neuausgleich abgeschlossen hat.  | 
| RunningTaskCount | Die Anzahl der Aufgaben, die im Konnektor ausgeführt werden. | 
| SinkConsumerByteRate | Die durchschnittliche Anzahl der Byte, die der Sink-Consumer des Kafka Connect-Frameworks pro Sekunde verbraucht, bevor Transformationen auf Daten angewendet werden. | 
| SinkRecordReadRate | Die durchschnittliche Anzahl der pro Sekunde aus dem Apache-Kafka- oder Amazon-MSK-Cluster gelesenen Datensätze. | 
| SinkRecordSendRate | Die durchschnittliche Anzahl von Datensätzen pro Sekunde, die von den Transformationen ausgegeben und an das Ziel gesendet werden. Diese Zahl beinhaltet keine gefilterten Datensätze. | 
| SourceRecordPollRate | Die durchschnittliche Anzahl der pro Sekunde erstellten oder abgefragten Datensätze. | 
| SourceProducerByteRate | Die durchschnittliche Anzahl von Byte, die vom Source Producer des Kafka Connect-Frameworks pro Sekunde erzeugt werden, nachdem alle Transformationen auf Daten angewendet wurden. | 
| SourceRecordWriteRate | Die durchschnittliche Anzahl pro Sekunde der von den Transformationen ausgegebenen und in den Apache-Kafka- oder Amazon-MSK-Cluster geschriebenen Datensätze. | 
| TaskStartupAttemptsTotal | Die Gesamtzahl der Aufgaben-Startups, die der Konnektor versucht hat. Sie können diese Metrik verwenden, um Anomalien bei Startup-Versuchen von Aufgaben zu identifizieren. | 
| TaskStartupSuccessPercentage | Der durchschnittliche Prozentsatz erfolgreicher Aufgaben-Startups für den Konnektor. Sie können diese Metrik verwenden, um Anomalien bei Startup-Versuchen von Aufgaben zu identifizieren. | 
| WorkerCount | Die Anzahl der Worker, die dem Konnektor zugewiesen sind. | 
| BytesInPerSec | Metadaten-Bytes, die für die Kommunikation zwischen Mitarbeitern an das Kafka Connect-Framework übertragen wurden. | 
| BytesOutPerSec | Aus dem Kafka Connect-Framework übertragene Metadaten-Bytes für die Kommunikation zwischen Mitarbeitern. | 

# Beispiele für die Einrichtung von Amazon MSK Connect-Ressourcen
<a name="msk-connect-examples"></a>

Dieser Abschnitt enthält Beispiele, die Ihnen bei der Einrichtung von Amazon-MSK-Connect-Ressourcen wie gängigen Konnektoren und Konfigurationsanbietern von Drittanbietern helfen sollen.

**Topics**
+ [Amazon S3-Sink-Connector einrichten](mkc-S3sink-connector-example.md)
+ [EventBridge Kafka-Sink-Anschluss für MSK Connect einrichten](mkc-eventbridge-kafka-connector.md)
+ [Verwenden Sie den Debezium-Quellkonnektor mit dem Konfigurationsanbieter](mkc-debeziumsource-connector-example.md)

# Amazon S3-Sink-Connector einrichten
<a name="mkc-S3sink-connector-example"></a>

Dieses Beispiel zeigt, wie der [Amazon S3 S3-Sink-Connector von Confluent verwendet wird und wie ein Amazon S3](https://www.confluent.io/hub/confluentinc/kafka-connect-s3) S3-Sink-Connector in MSK Connect erstellt wird. AWS CLI 

1. Kopieren Sie den folgenden JSON-Code und fügen Sie diesen in eine neue Datei ein. Ersetzen Sie die Platzhalterzeichenfolgen durch Werte, die der Bootstrap-Server-Verbindungszeichenfolge Ihres Amazon MSK-Clusters sowie dem Subnetz und der Sicherheitsgruppe des Clusters entsprechen. IDs Informationen zum Einrichten einer Service-Ausführungsrolle finden Sie unter [IAM-Rollen und -Richtlinien für MSK Connect](msk-connect-iam.md).

   ```
   {
       "connectorConfiguration": {
           "connector.class": "io.confluent.connect.s3.S3SinkConnector",
           "s3.region": "us-east-1",
           "format.class": "io.confluent.connect.s3.format.json.JsonFormat",
           "flush.size": "1",
           "schema.compatibility": "NONE",
           "topics": "my-test-topic",
           "tasks.max": "2",
           "partitioner.class": "io.confluent.connect.storage.partitioner.DefaultPartitioner",
           "storage.class": "io.confluent.connect.s3.storage.S3Storage",
           "s3.bucket.name": "amzn-s3-demo-bucket"
       },
       "connectorName": "example-S3-sink-connector",
       "kafkaCluster": {
           "apacheKafkaCluster": {
               "bootstrapServers": "<cluster-bootstrap-servers-string>",
               "vpc": {
                   "subnets": [
                       "<cluster-subnet-1>",
                       "<cluster-subnet-2>",
                       "<cluster-subnet-3>"
                   ],
                   "securityGroups": ["<cluster-security-group-id>"]
               }
           }
       },
       "capacity": {
           "provisionedCapacity": {
               "mcuCount": 2,
               "workerCount": 4
           }
       },
       "kafkaConnectVersion": "2.7.1",
       "serviceExecutionRoleArn": "<arn-of-a-role-that-msk-connect-can-assume>",
       "plugins": [
           {
               "customPlugin": {
                   "customPluginArn": "<arn-of-custom-plugin-that-contains-connector-code>",
                   "revision": 1
               }
           }
       ],
       "kafkaClusterEncryptionInTransit": {"encryptionType": "PLAINTEXT"},
       "kafkaClusterClientAuthentication": {"authenticationType": "NONE"}
   }
   ```

1. Führen Sie den folgenden AWS CLI Befehl in dem Ordner aus, in dem Sie die JSON-Datei im vorherigen Schritt gespeichert haben.

   ```
   aws kafkaconnect create-connector --cli-input-json file://connector-info.json
   ```

   Das Folgende ist ein Beispiel für die Ausgabe, die Sie erhalten, wenn Sie den Befehl erfolgreich ausführen.

   ```
   {
       "ConnectorArn": "arn:aws:kafkaconnect:us-east-1:123450006789:connector/example-S3-sink-connector/abc12345-abcd-4444-a8b9-123456f513ed-2", 
       "ConnectorState": "CREATING", 
       "ConnectorName": "example-S3-sink-connector"
   }
   ```

# EventBridge Kafka-Sink-Anschluss für MSK Connect einrichten
<a name="mkc-eventbridge-kafka-connector"></a>

In diesem Thema erfahren Sie, wie Sie den [EventBridge Kafka-Sink-Connector](https://github.com/awslabs/eventbridge-kafka-connector) für MSK Connect einrichten. [Mit diesem Connector können Sie Ereignisse von Ihrem MSK-Cluster an Event-Busse senden. EventBridge ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html) In diesem Thema wird der Prozess zum Erstellen der erforderlichen Ressourcen und zum Konfigurieren des Connectors beschrieben, um einen nahtlosen Datenfluss zwischen Kafka und zu ermöglichen. EventBridge 

**Topics**
+ [Voraussetzungen](#mkc-eb-kafka-prerequisites)
+ [Richten Sie die für MSK Connect erforderlichen Ressourcen ein](#mkc-eb-kafka-set-up-resources)
+ [Erstellen Sie den Connector](#mkc-eb-kafka-create-connector)
+ [Senden Sie Nachrichten an Kafka](#mkc-eb-kafka-send-json-encoded-messages)

## Voraussetzungen
<a name="mkc-eb-kafka-prerequisites"></a>

Stellen Sie vor der Bereitstellung des Connectors sicher, dass Sie über die folgenden Ressourcen verfügen:
+ **Amazon MSK-Cluster**: Ein aktiver MSK-Cluster zur Erzeugung und Verarbeitung von Kafka-Nachrichten.
+ ** EventBridge Amazon-Eventbus**: Ein EventBridge Eventbus, um Veranstaltungen zu den Kafka-Themen zu empfangen.
+ **IAM-Rollen**: Erstellen Sie IAM-Rollen mit den erforderlichen Berechtigungen für MSK Connect und den Connector. EventBridge 
+ [Zugriff auf das öffentliche Internet über](msk-connect-internet-access.md) MSK Connect oder einen [VPC-Schnittstellenendpunkt, der in der VPC](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-related-service-vpc.html) und im Subnetz Ihres MSK-Clusters EventBridge erstellt wurde. Auf diese Weise vermeiden Sie das Durchqueren des öffentlichen Internets und benötigen keine NAT-Gateways.
+ Ein [Client-Computer](create-serverless-cluster-client.md), z. B. eine Amazon EC2 EC2-Instance oder [AWS CloudShell](https://aws.amazon.com/cloudshell/), um Themen zu erstellen und Datensätze an Kafka zu senden.

## Richten Sie die für MSK Connect erforderlichen Ressourcen ein
<a name="mkc-eb-kafka-set-up-resources"></a>

Sie erstellen eine IAM-Rolle für den Connector und anschließend den Connector. Sie erstellen auch eine EventBridge Regel zum Filtern von Kafka-Ereignissen, die an den EventBridge Event-Bus gesendet werden.

**Topics**
+ [IAM-Rolle für den Connector](#mkc-eb-kafka-iam-role-connector)
+ [Eine EventBridge Regel für eingehende Ereignisse](#mkc-eb-kafka-create-rule)

### IAM-Rolle für den Connector
<a name="mkc-eb-kafka-iam-role-connector"></a>

Die IAM-Rolle, die Sie dem Connector zuordnen, muss über die [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-permissions-reference.html)Berechtigung verfügen, das Senden von Ereignissen an zu ermöglichen. EventBridge Das folgende Beispiel für eine IAM-Richtlinie erteilt Ihnen die Berechtigung, Ereignisse an einen Ereignisbus mit dem Namen zu senden. `example-event-bus` Stellen Sie sicher, dass Sie den Ressourcen-ARN im folgenden Beispiel durch den ARN Ihres Event-Busses ersetzen.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/example-event-bus"
    }
  ]
}
```

------

Darüber hinaus müssen Sie sicherstellen, dass Ihre IAM-Rolle für den Connector die folgende Vertrauensrichtlinie enthält.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "kafkaconnect.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

### Eine EventBridge Regel für eingehende Ereignisse
<a name="mkc-eb-kafka-create-rule"></a>

Sie erstellen [Regeln](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html), die eingehende Ereignisse mit Kriterien für Ereignisdaten abgleichen, was als [https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) bezeichnet wird. Mit einem Ereignismuster können Sie die Kriterien für das Filtern eingehender Ereignisse definieren und festlegen, welche Ereignisse eine bestimmte Regel auslösen und anschließend an ein bestimmtes [Ziel](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) weitergeleitet werden sollen. Das folgende Beispiel für ein Ereignismuster entspricht Kafka-Ereignissen, die an den EventBridge Event-Bus gesendet wurden.

```
{
  "detail": {
    "topic": ["msk-eventbridge-tutorial"]
  }
}
```

Im Folgenden finden Sie ein Beispiel für ein Ereignis, das von Kafka EventBridge mithilfe des Kafka-Sink-Connectors an gesendet wurde.

```
{
  "version": "0",
  "id": "dbc1c73a-c51d-0c0e-ca61-ab9278974c57",
  "account": "123456789012",
  "time": "2025-03-26T10:15:00Z",
  "region": "us-east-1",
  "detail-type": "msk-eventbridge-tutorial",
  "source": "kafka-connect.msk-eventbridge-tutorial",
  "resources": [],
  "detail": {
    "topic": "msk-eventbridge-tutorial",
    "partition": 0,
    "offset": 0,
    "timestamp": 1742984100000,
    "timestampType": "CreateTime",
    "headers": [],
    "key": "order-1",
    "value": {
      "orderItems": [
        "item-1",
        "item-2"
      ],
      "orderCreatedTime": "Wed Mar 26 10:15:00 UTC 2025"
    }
  }
}
```

[Erstellen Sie in der EventBridge Konsole mithilfe dieses Beispielmusters eine Regel](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html) für den Event-Bus und geben Sie ein Ziel an, z. B. eine CloudWatch Logs-Gruppe. Die EventBridge Konsole konfiguriert automatisch die erforderliche Zugriffsrichtlinie für die Gruppe CloudWatch Logs.

## Erstellen Sie den Connector
<a name="mkc-eb-kafka-create-connector"></a>

Im folgenden Abschnitt erstellen und implementieren Sie den [EventBridge Kafka-Sink-Connector](https://github.com/awslabs/eventbridge-kafka-connector) mithilfe des AWS-Managementkonsole.

**Topics**
+ [Schritt 1: Laden Sie den Connector herunter](#mkc-eb-kafka-download-connector)
+ [Schritt 2: Erstellen Sie einen Amazon S3 S3-Bucket](#mkc-eb-kafka-s3-bucket-create)
+ [Schritt 3: Erstellen Sie ein Plugin in MSK Connect](#mkc-eb-kafka-create-plugin)
+ [Schritt 4: Den Konnektor erstellen](#mkc-eb-kafka-create-connector)

### Schritt 1: Laden Sie den Connector herunter
<a name="mkc-eb-kafka-download-connector"></a>

Laden Sie das neueste EventBridge Connector-Sink-JAR von der [GitHub Releases-Seite](https://github.com/awslabs/eventbridge-kafka-connector/releases) für den EventBridge Kafka-Connector herunter. Um beispielsweise die Version v1.4.1 herunterzuladen, wählen Sie den Link zur JAR-Datei,`kafka-eventbridge-sink-with-dependencies.jar`, um den Connector herunterzuladen. Speichern Sie die Datei anschließend an einem bevorzugten Speicherort auf Ihrem Computer.

### Schritt 2: Erstellen Sie einen Amazon S3 S3-Bucket
<a name="mkc-eb-kafka-s3-bucket-create"></a>

1. Um die JAR-Datei in Amazon S3 zur Verwendung mit MSK Connect zu speichern, öffnen Sie die AWS-Managementkonsole und wählen Sie dann Amazon S3.

1. Wählen Sie in der Amazon S3 S3-Konsole **Bucket erstellen** und geben Sie einen eindeutigen Bucket-Namen ein. Beispiel, **amzn-s3-demo-bucket1-eb-connector**.

1. Wählen Sie eine geeignete Region für Ihren Amazon S3 S3-Bucket aus. Stellen Sie sicher, dass sie mit der Region übereinstimmt, in der Ihr MSK-Cluster bereitgestellt wird.

1. Behalten Sie bei den **Bucket-Einstellungen** die Standardauswahl bei oder passen Sie sie nach Bedarf an.

1. Wählen Sie **Bucket erstellen** aus

1. Laden Sie die JAR-Datei in den Amazon S3 S3-Bucket hoch.

### Schritt 3: Erstellen Sie ein Plugin in MSK Connect
<a name="mkc-eb-kafka-create-plugin"></a>

1. Öffnen Sie die AWS-Managementkonsole, und navigieren Sie dann zu **MSK Connect**.

1. Wählen Sie im linken Navigationsbereich die Option **Benutzerdefinierte Plugins** aus.

1. Wählen Sie **Plugin erstellen** und geben Sie dann einen **Plugin-Namen** ein. Beispiel, **eventbridge-sink-plugin**.

1. Fügen Sie **unter Benutzerdefinierter Plugin-Speicherort** die **URL des S3-Objekts ein**.

1. Fügen Sie eine optionale Beschreibung für das Plugin hinzu.

1. Wählen Sie **Plugin erstellen**.

Nachdem das Plugin erstellt wurde, können Sie es verwenden, um den EventBridge Kafka-Konnektor in MSK Connect zu konfigurieren und bereitzustellen.

### Schritt 4: Den Konnektor erstellen
<a name="mkc-eb-kafka-create-connector"></a>

Bevor Sie den Konnektor erstellen, empfehlen wir, das erforderliche Kafka-Thema zu erstellen, um Konnektorfehler zu vermeiden. Verwenden Sie Ihren Client-Computer, um das Thema zu erstellen.

1. Wählen Sie im linken Bereich der MSK-Konsole **Connectors** und dann **Create Connector** aus.

1. Wählen Sie in der Liste der Plugins die Option **eventbridge-sink-plugin** und anschließend **Weiter**.

1. Geben **EventBridgeSink** Sie als Namen des Connectors ein.

1. Wählen Sie in der Clusterliste Ihren MSK-Cluster aus.

1. <a name="connector-ex"></a>Kopieren Sie die folgende Konfiguration für den Connector und fügen Sie sie in das Feld **Connector-Konfiguration** ein

   Ersetzen Sie die Platzhalter in der folgenden Konfiguration nach Bedarf.
   + Entfernen Sie`aws.eventbridge.endpoint.uri`, wenn Ihr MSK-Cluster über einen öffentlichen Internetzugang verfügt.
   + Wenn Sie eine sichere Verbindung von MSK PrivateLink zu verwenden EventBridge, ersetzen Sie den DNS-Teil danach `https://` durch den richtigen privaten DNS-Namen des (optionalen) VPC-Schnittstellenendpunkts EventBridge , den Sie zuvor erstellt haben.
   + Ersetzen Sie den EventBridge Event-Bus-ARN in der folgenden Konfiguration durch den ARN Ihres Event-Busses.
   + Aktualisieren Sie alle regionsspezifischen Werte.

   ```
   {
     "connector.class": "software.amazon.event.kafkaconnector.EventBridgeSinkConnector",
     "aws.eventbridge.connector.id": "msk-eventbridge-tutorial",
     "topics": "msk-eventbridge-tutorial",
     "tasks.max": "1",
     "aws.eventbridge.endpoint.uri": "https://events.us-east-1.amazonaws.com",
     "aws.eventbridge.eventbus.arn": "arn:aws:events:us-east-1:123456789012:event-bus/example-event-bus",
     "value.converter.schemas.enable": "false",
     "value.converter": "org.apache.kafka.connect.json.JsonConverter",
     "aws.eventbridge.region": "us-east-1",
     "auto.offset.reset": "earliest",
     "key.converter": "org.apache.kafka.connect.storage.StringConverter"
   }
   ```

   Weitere Informationen zur Connectorkonfiguration finden Sie unter. [eventbridge-kafka-connector](https://github.com/awslabs/eventbridge-kafka-connector)

   Ändern Sie bei Bedarf die Einstellungen für Worker und Autoscaling. Wir empfehlen außerdem, die neueste verfügbare (empfohlene) Apache Kafka Connect-Version aus der Drop-down-Liste zu verwenden. Verwenden **Sie unter Zugriffsberechtigungen** die zuvor erstellte Rolle. Aus Gründen der Beobachtbarkeit und Problembehandlung empfehlen wir außerdem, die Protokollierung zu CloudWatch aktivieren. Passen Sie die anderen optionalen Einstellungen, wie z. B. Tags, an Ihre Bedürfnisse an. Stellen Sie dann den Connector bereit und warten Sie, bis der Status in den Status Running übergeht.

## Senden Sie Nachrichten an Kafka
<a name="mkc-eb-kafka-send-json-encoded-messages"></a>

Sie können Nachrichtenkodierungen wie Apache Avro und JSON konfigurieren, indem Sie mithilfe der in Kafka Connect verfügbaren `key.converter` Einstellungen `value.converter` und, optional, verschiedene Konverter angeben.

Der [connector example](#connector-ex) in diesem Thema beschriebene ist so konfiguriert, dass er mit JSON-codierten Nachrichten funktioniert, wie durch die Verwendung von for angedeutet wird. `org.apache.kafka.connect.json.JsonConverter` `value converter` Wenn sich der Connector im Status Running befindet, senden Sie Datensätze von Ihrem Client-Computer aus an das `msk-eventbridge-tutorial` Kafka-Thema.

# Verwenden Sie den Debezium-Quellkonnektor mit dem Konfigurationsanbieter
<a name="mkc-debeziumsource-connector-example"></a>

Dieses Beispiel zeigt, wie das Debezium-MySQL-Konnektor-Plugin mit einer MySQL-kompatiblen [Amazon-Aurora](https://aws.amazon.com/rds/aurora/)-Datenbank als Quelle verwendet wird. In diesem Beispiel haben wir auch den Open-Source [AWS Secrets Manager Config Provider](https://github.com/jcustenborder/kafka-config-provider-aws) für die Externalisierung von Datenbank-Anmeldeinformationen in AWS Secrets Manager eingerichtet. Weitere Informationen zu Konfigurationsanbietern finden Sie unter [Tutorial: Externalisierung vertraulicher Informationen mithilfe von Konfigurationsanbietern](msk-connect-config-provider.md).

**Wichtig**  
Das Debezium-MySQL-Konnektor-Plugin [unterstützt nur eine Aufgabe](https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-property-tasks-max) und funktioniert nicht mit dem automatisch skalierten Kapazitätsmodus für Amazon MSK Connect. Sie sollten stattdessen den Modus Bereitgestellte Kapazität verwenden und in der Konnektor-Konfiguration den Wert `workerCount` auf Eins festlegen. Weitere Informationen zu den Kapazitätsmodi für MSK Connect finden Sie unter [Verstehen Sie die Kapazität der Steckverbinder](msk-connect-capacity.md).

# Vollständige Voraussetzungen für die Verwendung des Debezium-Quellkonnektors
<a name="mkc-debeziumsource-connector-example-prereqs"></a>

Ihr Connector muss in der Lage sein, auf das Internet zuzugreifen, damit er mit Diensten interagieren kann AWS Secrets Manager , die sich beispielsweise außerhalb Ihres befinden. Amazon Virtual Private Cloud Die Schritte in diesem Abschnitt helfen Ihnen dabei, die folgenden Aufgaben auszuführen, um den Internetzugang zu aktivieren.
+ Richten Sie ein öffentliches Subnetz ein, das ein NAT-Gateway hostet und den Datenverkehr an ein Internet-Gateway in Ihrer VPC weiterleitet.
+ Erstellen Sie eine Standardroute, die Ihren privaten Subnetzverkehr an Ihr NAT-Gateway weiterleitet.

Weitere Informationen finden Sie unter [Internetzugang für Amazon MSK Connect aktivieren](msk-connect-internet-access.md).

**Voraussetzungen**

Bevor Sie den Internetzugang aktivieren können, benötigen Sie die folgenden Elemente:
+ Die ID der Amazon Virtual Private Cloud (VPC), die Ihrem Cluster zugeordnet ist. Zum Beispiel *vpc-123456ab*.
+ Die IDs privaten Subnetze in Ihrer VPC. Zum Beispiel *subnet-a1b2c3de*, *subnet-f4g5h6ij* usw. Sie müssen Ihren Konnektor mit privaten Subnetzen konfigurieren.

**Internetzugang für Ihren Konnektor aktivieren**

1. Öffnen Sie die Amazon Virtual Private Cloud Konsole unter. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Erstellen Sie ein öffentliches Subnetz für Ihr NAT-Gateway mit einem aussagekräftigen Namen und notieren Sie sich die Subnetz-ID. Detaillierte Anweisungen finden Sie unter [Erstellen eines Subnetzes in Ihrer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet).

1. Erstellen Sie ein Internet-Gateway, damit Ihre VPC mit dem Internet kommunizieren kann, und notieren Sie sich die Gateway-ID. Anfügen eines Internet-Gateways zu Ihrer VPC. Anweisungen finden Sie unter [Erstellen und Anfügen eines Internet-Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway).

1. Stellen Sie ein öffentliches NAT-Gateway bereit, damit Hosts in Ihren privaten Subnetzen Ihr öffentliches Subnetz erreichen können. Wenn Sie das NAT-Gateway erstellen, wählen Sie das öffentliche Subnetz aus, das Sie zuvor erstellt haben. Detaillierte Anweisungen finden Sie unter [Erstellen eines NAT-Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating).

1. Konfigurieren Sie Ihre Routing-Tabellen. Sie benötigen insgesamt zwei Routing-Tabellen, um diese Einrichtung abzuschließen. Sie sollten bereits über eine Haupt-Routing-Tabelle verfügen, die automatisch zur gleichen Zeit wie Ihre VPC erstellt wurde. In diesem Schritt erstellen Sie eine zusätzliche Routing-Tabelle für Ihr öffentliches Subnetz.

   1. Verwenden Sie die folgenden Einstellungen, um die Haupt-Routing-Tabelle Ihrer VPC so zu ändern, dass Ihre privaten Subnetze den Verkehr an Ihr NAT-Gateway weiterleiten. Anweisungen finden Sie im *Benutzerhandbuch* für *Amazon Virtual Private Cloud* unter [Arbeiten mit Routing-Tabellen](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithRouteTables.html).  
**Private MSKC-Routing-Tabelle**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/mkc-debeziumsource-connector-example-prereqs.html)

   1. Folgen Sie den Anweisungen unter [Erstellen einer benutzerdefinierten Routing-Tabelle](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Routing), um eine Routing-Tabelle für Ihr öffentliches Subnetz zu erstellen. Geben Sie beim Erstellen der Tabelle einen aussagekräftigen Namen in das Feld **Namens-Tag** ein, damit Sie leichter erkennen können, mit welchem Subnetz die Tabelle verknüpft ist. Zum Beispiel **Public MSKC**.

   1. Konfigurieren Sie Ihre **Public MSKC**-Routing-Tabelle mit den folgenden Einstellungen.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/msk/latest/developerguide/mkc-debeziumsource-connector-example-prereqs.html)

Nachdem Sie den Internetzugang für Amazon MSK Connect aktiviert haben, sind Sie bereit, einen Konnektor zu erstellen.

# Erstellen Sie einen Debezium-Quellkonnektor
<a name="msk-connect-debeziumsource-connector-example-steps"></a>

Dieses Verfahren beschreibt, wie Sie einen Debezium-Quellkonnektor erstellen.

1. 

**Ein benutzerdefiniertes Plugin erstellen**

   1. Laden Sie das MySQL-Konnektor-Plugin für die neueste stabile Version von der [Debezium](https://debezium.io/releases/)-Webseite herunter. Notieren Sie sich die Debezium-Release-Version, die Sie herunterladen (Version 2.x oder die ältere Serie 1.x). Später in diesem Verfahren werden Sie einen Konnektor erstellen, der auf Ihrer Debezium-Version basiert.

   1. Laden Sie den [AWS Secrets Manager Config Provider](https://www.confluent.io/hub/jcustenborder/kafka-config-provider-aws) herunter und extrahieren Sie ihn.

   1. Platzieren Sie die folgenden Archive in das gleiche Verzeichnis:
      + Den Ordner `debezium-connector-mysql`
      + Den Ordner `jcusten-border-kafka-config-provider-aws-0.1.1`

   1. Komprimieren Sie das Verzeichnis, das Sie im vorherigen Schritt erstellt haben, in eine ZIP-Datei und laden Sie die ZIP-Datei dann in einen S3-Bucket hoch. Eine Anleitung finden Sie unter [Hochladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) im *Amazon-S3-Benutzerhandbuch*.

   1. Kopieren Sie den folgenden JSON-Code und fügen Sie diesen in eine Datei ein. Beispiel, `debezium-source-custom-plugin.json`. *<example-custom-plugin-name>*Ersetzen Sie es durch den Namen, den das Plugin haben soll, durch den *<amzn-s3-demo-bucket-arn>* ARN des Amazon S3 S3-Buckets, in den Sie die ZIP-Datei hochgeladen haben, und `<file-key-of-ZIP-object>` durch den Dateischlüssel des ZIP-Objekts, das Sie auf S3 hochgeladen haben.

      ```
      {
          "name": "<example-custom-plugin-name>",
          "contentType": "ZIP",
          "location": {
              "s3Location": {
                  "bucketArn": "<amzn-s3-demo-bucket-arn>",
                  "fileKey": "<file-key-of-ZIP-object>"
              }
          }
      }
      ```

   1. Führen Sie den folgenden AWS CLI Befehl in dem Ordner aus, in dem Sie die JSON-Datei gespeichert haben, um ein Plugin zu erstellen.

      ```
      aws kafkaconnect create-custom-plugin --cli-input-json file://<debezium-source-custom-plugin.json>
      ```

      Die Ausgabe sollte in etwa wie folgt aussehen.

      ```
      {
          "CustomPluginArn": "arn:aws:kafkaconnect:us-east-1:012345678901:custom-plugin/example-custom-plugin-name/abcd1234-a0b0-1234-c1-12345678abcd-1",
          "CustomPluginState": "CREATING",
          "Name": "example-custom-plugin-name",
          "Revision": 1
      }
      ```

   1. Führen Sie den folgenden Befehl aus, um den Plugin-Status zu überprüfen. Der Status sollte von `CREATING` zu `ACTIVE` wechseln. Ersetzen Sie den ARN-Platzhalter durch den ARN, den Sie in der Ausgabe des vorherigen Befehls erhalten haben.

      ```
      aws kafkaconnect describe-custom-plugin --custom-plugin-arn "<arn-of-your-custom-plugin>"
      ```

1. 

**Konfigurieren AWS Secrets Manager und erstellen Sie ein Geheimnis für Ihre Datenbankanmeldedaten**

   1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

   1. Erstellen Sie ein neues Secret, um Ihre Datenbank-Anmeldeinformationen zu speichern. Anweisungen finden Sie unter [Ein Secret erstellen](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) im *Benutzerhandbuch für AWS Secrets Manager*.

   1. Kopieren Sie den ARN Ihres Secrets.

   1. Fügen Sie die Secrets-Manager-Berechtigungen aus der folgenden Beispielrichtlinie zu der [Verstehen Sie die Rolle der Serviceausführung](msk-connect-service-execution-role.md) hinzu. Ersetze es *<arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>* durch den ARN deines Geheimnisses.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:GetResourcePolicy",
              "secretsmanager:GetSecretValue",
              "secretsmanager:DescribeSecret",
              "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": [
            "arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecret-1234"
            ]
          }
        ]
      }
      ```

------

      Informationen zum Verwalten von IAM-Berechtigungen finden Sie unter [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *IAM-Benutzerhandbuch*.

1. 

**Eine benutzerdefinierte Worker-Konfiguration mit Informationen zu Ihrem Konfigurationsanbieter erstellen**

   1. Kopieren Sie die folgenden Eigenschaften der Worker-Konfiguration in eine Datei und ersetzen Sie die Platzhalterzeichenfolgen durch Werte, die Ihrem Szenario entsprechen. Weitere Informationen zu den Konfigurationseigenschaften für den AWS Secrets Manager Config Provider finden Sie [SecretsManagerConfigProvider](https://jcustenborder.github.io/kafka-connect-documentation/projects/kafka-config-provider-aws/configProviders/SecretsManagerConfigProvider.html)in der Dokumentation des Plugins.

      ```
      key.converter=<org.apache.kafka.connect.storage.StringConverter>
      value.converter=<org.apache.kafka.connect.storage.StringConverter>
      config.providers.secretManager.class=com.github.jcustenborder.kafka.config.aws.SecretsManagerConfigProvider
      config.providers=secretManager
      config.providers.secretManager.param.aws.region=<us-east-1>
      ```

   1. Führen Sie den folgenden AWS CLI Befehl aus, um Ihre benutzerdefinierte Worker-Konfiguration zu erstellen. 

      Ersetzen Sie die folgenden Werte:
      + *<my-worker-config-name>*- ein beschreibender Name für Ihre benutzerdefinierte Worker-Konfiguration
      + *<encoded-properties-file-content-string>*- eine Base64-kodierte Version der Klartext-Eigenschaften, die Sie im vorherigen Schritt kopiert haben

      ```
      aws kafkaconnect create-worker-configuration --name <my-worker-config-name> --properties-file-content <encoded-properties-file-content-string>
      ```

1. 

**Erstellen eines Konnektors**

   1. Kopieren Sie den folgenden JSON-Code, der Ihrer Debezium-Version (2.x oder 1.x) entspricht, und fügen Sie ihn in eine neue Datei ein. Ersetzen Sie die Zeichenfolge `<placeholder>` durch Werte, die Ihrem Szenario entsprechen. Informationen zum Einrichten einer Service-Ausführungsrolle finden Sie unter [IAM-Rollen und -Richtlinien für MSK Connect](msk-connect-iam.md).

      Beachten Sie, dass die Konfiguration Variablen wie `${secretManager:MySecret-1234:dbusername}` anstelle von Klartext verwendet, um Datenbank-Anmeldeinformationen anzugeben. Ersetzen Sie `MySecret-1234` durch den Namen Ihres Secrets und geben Sie dann den Namen des Schlüssels an, den Sie abrufen möchten. Sie müssen auch `<arn-of-config-provider-worker-configuration>` durch den ARN Ihrer benutzerdefinierten Worker-Konfiguration ersetzen.

------
#### [ Debezium 2.x ]

      Kopieren Sie für Debezium-2.x-Versionen den folgenden JSON-Code und fügen Sie ihn in eine neue Datei ein. Ersetzen Sie die Zeichenfolge *<placeholder>* durch Werte, die Ihrem Szenario entsprechen.

      ```
      {
      	"connectorConfiguration": {
      		"connector.class": "io.debezium.connector.mysql.MySqlConnector",
      		"tasks.max": "1",
      		"database.hostname": "<aurora-database-writer-instance-endpoint>",
      		"database.port": "3306",
      		"database.user": "<${secretManager:MySecret-1234:dbusername}>",
      		"database.password": "<${secretManager:MySecret-1234:dbpassword}>",
      		"database.server.id": "123456",
      		"database.include.list": "<list-of-databases-hosted-by-specified-server>",
      		"topic.prefix": "<logical-name-of-database-server>",
      		"schema.history.internal.kafka.topic": "<kafka-topic-used-by-debezium-to-track-schema-changes>",
      		"schema.history.internal.kafka.bootstrap.servers": "<cluster-bootstrap-servers-string>",
      		"schema.history.internal.consumer.security.protocol": "SASL_SSL",
      		"schema.history.internal.consumer.sasl.mechanism": "AWS_MSK_IAM",
      		"schema.history.internal.consumer.sasl.jaas.config": "software.amazon.msk.auth.iam.IAMLoginModule required;",
      		"schema.history.internal.consumer.sasl.client.callback.handler.class": "software.amazon.msk.auth.iam.IAMClientCallbackHandler",
      		"schema.history.internal.producer.security.protocol": "SASL_SSL",
      		"schema.history.internal.producer.sasl.mechanism": "AWS_MSK_IAM",
      		"schema.history.internal.producer.sasl.jaas.config": "software.amazon.msk.auth.iam.IAMLoginModule required;",
      		"schema.history.internal.producer.sasl.client.callback.handler.class": "software.amazon.msk.auth.iam.IAMClientCallbackHandler",
      		"include.schema.changes": "true"
      	},
      	"connectorName": "example-Debezium-source-connector",
      	"kafkaCluster": {
      		"apacheKafkaCluster": {
      			"bootstrapServers": "<cluster-bootstrap-servers-string>",
      			"vpc": {
      				"subnets": [
      					"<cluster-subnet-1>",
      					"<cluster-subnet-2>",
      					"<cluster-subnet-3>"
      				],
      				"securityGroups": ["<id-of-cluster-security-group>"]
      			}
      		}
      	},
      	"capacity": {
      		"provisionedCapacity": {
      			"mcuCount": 2,
      			"workerCount": 1
      		}
      	},
      	"kafkaConnectVersion": "2.7.1",
      	"serviceExecutionRoleArn": "<arn-of-service-execution-role-that-msk-connect-can-assume>",
      	"plugins": [{
      		"customPlugin": {
      			"customPluginArn": "<arn-of-msk-connect-plugin-that-contains-connector-code>",
      			"revision": 1
      		}
      	}],
      	"kafkaClusterEncryptionInTransit": {
      		"encryptionType": "TLS"
      	},
      	"kafkaClusterClientAuthentication": {
      		"authenticationType": "IAM"
      	},
      	"workerConfiguration": {
      		"workerConfigurationArn": "<arn-of-config-provider-worker-configuration>",
      		"revision": 1
      	}
      }
      ```

------
#### [ Debezium 1.x ]

      Kopieren Sie für Debezium-1.x-Versionen den folgenden JSON-Code und fügen Sie ihn in eine neue Datei ein. Ersetzen Sie die Zeichenfolge *<placeholder>* durch Werte, die Ihrem Szenario entsprechen.

      ```
      {
      	"connectorConfiguration": {
      		"connector.class": "io.debezium.connector.mysql.MySqlConnector",
      		"tasks.max": "1",
      		"database.hostname": "<aurora-database-writer-instance-endpoint>",
      		"database.port": "3306",
      		"database.user": "<${secretManager:MySecret-1234:dbusername}>",
      		"database.password": "<${secretManager:MySecret-1234:dbpassword}>",
      		"database.server.id": "123456",
      		"database.server.name": "<logical-name-of-database-server>",
      		"database.include.list": "<list-of-databases-hosted-by-specified-server>",
      		"database.history.kafka.topic": "<kafka-topic-used-by-debezium-to-track-schema-changes>",
      		"database.history.kafka.bootstrap.servers": "<cluster-bootstrap-servers-string>",
      		"database.history.consumer.security.protocol": "SASL_SSL",
      		"database.history.consumer.sasl.mechanism": "AWS_MSK_IAM",
      		"database.history.consumer.sasl.jaas.config": "software.amazon.msk.auth.iam.IAMLoginModule required;",
      		"database.history.consumer.sasl.client.callback.handler.class": "software.amazon.msk.auth.iam.IAMClientCallbackHandler",
      		"database.history.producer.security.protocol": "SASL_SSL",
      		"database.history.producer.sasl.mechanism": "AWS_MSK_IAM",
      		"database.history.producer.sasl.jaas.config": "software.amazon.msk.auth.iam.IAMLoginModule required;",
      		"database.history.producer.sasl.client.callback.handler.class": "software.amazon.msk.auth.iam.IAMClientCallbackHandler",
      		"include.schema.changes": "true"
      	},
      	"connectorName": "example-Debezium-source-connector",
      	"kafkaCluster": {
      		"apacheKafkaCluster": {
      			"bootstrapServers": "<cluster-bootstrap-servers-string>",
      			"vpc": {
      				"subnets": [
      					"<cluster-subnet-1>",
      					"<cluster-subnet-2>",
      					"<cluster-subnet-3>"
      				],
      				"securityGroups": ["<id-of-cluster-security-group>"]
      			}
      		}
      	},
      	"capacity": {
      		"provisionedCapacity": {
      			"mcuCount": 2,
      			"workerCount": 1
      		}
      	},
      	"kafkaConnectVersion": "2.7.1",
      	"serviceExecutionRoleArn": "<arn-of-service-execution-role-that-msk-connect-can-assume>",
      	"plugins": [{
      		"customPlugin": {
      			"customPluginArn": "<arn-of-msk-connect-plugin-that-contains-connector-code>",
      			"revision": 1
      		}
      	}],
      	"kafkaClusterEncryptionInTransit": {
      		"encryptionType": "TLS"
      	},
      	"kafkaClusterClientAuthentication": {
      		"authenticationType": "IAM"
      	},
      	"workerConfiguration": {
      		"workerConfigurationArn": "<arn-of-config-provider-worker-configuration>",
      		"revision": 1
      	}
      }
      ```

------

   1. Führen Sie den folgenden AWS CLI Befehl in dem Ordner aus, in dem Sie die JSON-Datei im vorherigen Schritt gespeichert haben.

      ```
      aws kafkaconnect create-connector --cli-input-json file://connector-info.json
      ```

      Das Folgende ist ein Beispiel für die Ausgabe, die Sie erhalten, wenn Sie den Befehl erfolgreich ausführen.

      ```
      {
          "ConnectorArn": "arn:aws:kafkaconnect:us-east-1:123450006789:connector/example-Debezium-source-connector/abc12345-abcd-4444-a8b9-123456f513ed-2", 
          "ConnectorState": "CREATING", 
          "ConnectorName": "example-Debezium-source-connector"
      }
      ```

# Aktualisieren Sie eine Debezium-Connector-Konfiguration
<a name="mkc-debeziumsource-connector-update"></a>

Gehen Sie folgendermaßen vor, um die Konfiguration des Debezium-Connectors zu aktualisieren: 

1. Kopieren Sie den folgenden JSON-Code und fügen Sie ihn in eine neue Datei ein. Ersetzen Sie die Zeichenfolge `<placeholder>` durch Werte, die Ihrem Szenario entsprechen.

   ```
   {
      "connectorArn": <connector_arn>,
      "connectorConfiguration": <new_configuration_in_json>,
      "currentVersion": <current_version>
   }
   ```

1. Führen Sie den folgenden AWS CLI Befehl in dem Ordner aus, in dem Sie die JSON-Datei im vorherigen Schritt gespeichert haben.

   ```
   aws kafkaconnect update-connector --cli-input-json file://connector-info.json
   ```

   Im Folgenden finden Sie ein Beispiel für die Ausgabe, wenn Sie den Befehl erfolgreich ausgeführt haben.

   ```
   {
       "connectorArn": "arn:aws:kafkaconnect:us-east-1:123450006789:connector/example-Debezium-source-connector/abc12345-abcd-4444-a8b9-123456f513ed-2",
       "connectorOperationArn": "arn:aws:kafkaconnect:us-east-1:123450006789:connector-operation/example-Debezium-source-connector/abc12345-abcd-4444-a8b9-123456f513ed-2/41b6ad56-3184-479b-850a-a8bedd5a02f3",
       "connectorState": "UPDATING"
   }
   ```

1. Sie können jetzt den folgenden Befehl ausführen, um den aktuellen Status des Vorgangs zu überwachen:

   ```
   aws kafkaconnect describe-connector-operation --connector-operation-arn <operation_arn>
   ```

Ein Beispiel für einen Debezium-Konnektor mit detaillierten Schritten finden Sie unter [Einführung in Amazon MSK Connect – Streamen Sie Daten mithilfe von verwalteten Konnektoren zu und von Ihren Apache-Kafka-Clustern](https://aws.amazon.com/blogs/aws/introducing-amazon-msk-connect-stream-data-to-and-from-your-apache-kafka-clusters-using-managed-connectors/).

# Zu Amazon MSK Connect migrieren
<a name="msk-connect-migrating"></a>

In diesem Abschnitt wird beschrieben, wie Sie Ihre Apache Kafka Connector-Anwendung zu Amazon Managed Streaming for Apache Kafka Connect (Amazon MSK Connect) migrieren. Weitere Informationen zu den Vorteilen der Migration zu Amazon MSK Connect finden Sie unter. [Vorteile der Verwendung von Amazon MSK Connect](msk-connect.md#msk-connect-benefits)

In diesem Abschnitt werden auch die von Kafka Connect und Amazon MSK Connect verwendeten Themen zur Statusverwaltung beschrieben und Verfahren für die Migration von Quell- und Senken-Connectoren behandelt.

# Verstehen Sie interne Themen, die von Kafka Connect verwendet werden
<a name="msk-connect-kafka-connect-topics"></a>

Eine Apache Kafka Connect-Anwendung, die im verteilten Modus ausgeführt wird, speichert ihren Status mithilfe interner Themen im Kafka-Cluster und der Gruppenmitgliedschaft. Die folgenden Konfigurationswerte entsprechen den internen Themen, die für Kafka Connect-Anwendungen verwendet werden:
+ Thema zur Konfiguration, spezifiziert durch `config.storage.topic`

  Im Thema Konfiguration speichert Kafka Connect die Konfiguration aller Konnektoren und Aufgaben, die von Benutzern gestartet wurden. Jedes Mal, wenn Benutzer die Konfiguration eines Connectors aktualisieren oder wenn ein Connector eine Neukonfiguration anfordert (wenn der Connector beispielsweise feststellt, dass er weitere Aufgaben starten kann), wird ein Datensatz zu diesem Thema ausgegeben. Für dieses Thema ist die Komprimierung aktiviert, sodass immer der letzte Status für jede Entität beibehalten wird.
+ Thema Offsets, spezifiziert durch `offset.storage.topic`

  Im Thema Offsets speichert Kafka Connect die Offsets der Quellkonnektoren. Wie beim Thema Konfiguration geht es auch beim Thema Offsets darum, dass die Komprimierung aktiviert ist. Dieses Thema wird nur zum Schreiben der Quellpositionen für Quellkonnektoren verwendet, die Daten aus externen Systemen für Kafka erzeugen. Sink-Konnektoren, die Daten von Kafka lesen und an externe Systeme senden, speichern ihre Verbraucher-Offsets mithilfe regulärer Kafka-Verbrauchergruppen.
+ Statusthema, spezifiziert durch `status.storage.topic`

  Im Statusthema speichert Kafka Connect den aktuellen Status von Konnektoren und Aufgaben. Dieses Thema wird als zentraler Ort für die Daten verwendet, die von Benutzern der REST-API abgefragt werden. Dieses Thema ermöglicht es Benutzern, jeden beliebigen Worker abzufragen und trotzdem den Status aller laufenden Plugins abzurufen. Wie bei den Themen Konfiguration und Offsets ist auch beim Thema Status die Komprimierung aktiviert.

Zusätzlich zu diesen Themen nutzt Kafka Connect in großem Umfang die Gruppenmitgliedschafts-API von Kafka. Die Gruppen sind nach dem Namen des Connectors benannt. Bei einem Connector mit dem Namen file-sink wird die Gruppe beispielsweise benannt. connect-file-sink Jeder Benutzer in der Gruppe stellt Datensätze für eine einzelne Aufgabe bereit. Diese Gruppen und ihre Offsets können mithilfe herkömmlicher Tools für Nutzergruppen abgerufen werden, wie `Kafka-consumer-group.sh` z. Für jeden Sink-Connector führt die Connect-Laufzeit eine reguläre Consumer-Gruppe aus, die Datensätze aus Kafka extrahiert.

# Statusverwaltung von Amazon MSK Connect-Anwendungen
<a name="msk-connect-state-management"></a>

Standardmäßig erstellt Amazon MSK Connect drei separate Themen im Kafka-Cluster für jeden Amazon MSK Connector, um die Konfiguration, den Offset und den Status des Connectors zu speichern. Die Standard-Themennamen sind wie folgt strukturiert:
+ \$1\$1msk\$1connect\$1configs\$1 \$1 *connector-name* *connector-id*
+ *connector-name*\$1\$1msk\$1connect\$1status\$1 *connector-id*
+ *connector-name*\$1\$1msk\$1connect\$1offsets\$1 \$1 *connector-id*

**Anmerkung**  
Um die Offset-Kontinuität zwischen den Quellkonnektoren zu gewährleisten, können Sie anstelle des Standardthemas ein Offset-Speicher-Thema Ihrer Wahl verwenden. Wenn Sie ein Offset-Speicherthema angeben, können Sie Aufgaben wie das Erstellen eines Quell-Konnektors erledigen, der den Lesevorgang vom letzten Offset eines vorherigen Konnektors aus wieder aufnimmt. Um ein Offset-Storage-Thema anzugeben, geben Sie einen Wert für die [https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-workers.html#msk-connect-manage-connector-offsets](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-workers.html#msk-connect-manage-connector-offsets)Eigenschaft in der Amazon MSK Connect-Worker-Konfiguration ein, bevor Sie den Connector erstellen.

# Migrieren Sie Quellkonnektoren zu Amazon MSK Connect
<a name="msk-connect-migrate-source-connectors"></a>

Quellkonnektoren sind Apache Kafka Connect-Anwendungen, die Datensätze aus externen Systemen in Kafka importieren. In diesem Abschnitt wird der Prozess für die Migration von Apache Kafka Connect Source Connect-Anwendungen beschrieben, die lokale oder selbstverwaltete Kafka Connect-Cluster ausführen, die auf AWS Amazon MSK Connect ausgeführt werden.

Die Anwendung Kafka Connect Source Connector speichert Offsets in einem Thema, das mit dem Wert benannt ist, der für die Eigenschaft config festgelegt ist. `offset.storage.topic` Im Folgenden finden Sie Beispiele für Offsetnachrichten für einen JDBC-Connector, der zwei Aufgaben ausführt, die Daten aus zwei verschiedenen Tabellen mit dem Namen und importieren. `movies` `shows` Die zuletzt aus der Tabelle movies importierte Zeile hat die primäre ID. `18343` Die zuletzt aus der Tabelle Shows importierte Zeile hat die primäre ID`732`.

```
["jdbcsource",{"protocol":"1","table":"sample.movies"}] {"incrementing":18343}
["jdbcsource",{"protocol":"1","table":"sample.shows"}] {"incrementing":732}
```

Gehen Sie wie folgt vor, um Quell-Connectors zu Amazon MSK Connect zu migrieren:

1. Erstellen Sie ein [benutzerdefiniertes Amazon MSK Connect-Plug-in](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-plugins.html), indem Sie Connector-Bibliotheken aus Ihrem lokalen oder selbstverwalteten Kafka Connect-Cluster abrufen.

1. Erstellen Sie Amazon MSK [Connect-Worker-Eigenschaften](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-config-provider.html#msk-connect-config-providers-create-custom-config) und legen Sie die Eigenschaften `key.converter``value.converter`, und `offset.storage.topic` auf dieselben Werte fest, die für den Kafka-Konnektor festgelegt sind, der in Ihrem vorhandenen Kafka Connect-Cluster ausgeführt wird.

1. Halten Sie die Connector-Anwendung auf dem vorhandenen Cluster an, indem `PUT /connectors/connector-name/pause` Sie eine Anfrage auf dem vorhandenen Kafka Connect-Cluster stellen.

1. Stellen Sie sicher, dass alle Aufgaben der Connector-Anwendung vollständig beendet sind. Sie können die Aufgaben beenden, indem Sie entweder eine `GET /connectors/connector-name/status` Anfrage im vorhandenen Kafka Connect-Cluster stellen oder indem Sie die Nachrichten aus dem Themennamen verwenden, der für die Eigenschaft `status.storage.topic` festgelegt ist.

1. Rufen Sie die Konnektorkonfiguration aus dem vorhandenen Cluster ab. Sie können die Konnektorkonfiguration abrufen, indem Sie entweder eine `GET /connectors/connector-name/config/` Anfrage für den vorhandenen Cluster stellen oder indem Sie die Nachrichten aus dem Themennamen verwenden, der für die Eigenschaft festgelegt ist`config.storage.topic`.

1. Erstellen Sie einen neuen [Amazon MSK Connector](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html) mit demselben Namen wie ein vorhandener Cluster. Erstellen Sie diesen Connector mithilfe des benutzerdefinierten Connector-Plug-ins, das Sie in Schritt 1 erstellt haben, der Worker-Eigenschaften, die Sie in Schritt 2 erstellt haben, und der Connector-Konfiguration, die Sie in Schritt 5 extrahiert haben.

1. Wenn der Amazon MSK Connector-Status lautet`active`, überprüfen Sie anhand der Protokolle, ob der Connector mit dem Import von Daten aus dem Quellsystem begonnen hat.

1. Löschen Sie den Connector im vorhandenen Cluster, indem `DELETE /connectors/connector-name` Sie eine Anfrage stellen.

# Migrieren Sie Sink-Konnektoren zu Amazon MSK Connect
<a name="msk-connect-migrate-sink-connectors"></a>

Sink Connectors sind Apache Kafka Connect-Anwendungen, die Daten von Kafka in externe Systeme exportieren. In diesem Abschnitt wird der Prozess für die Migration von Apache Kafka Connect Sink Connector-Anwendungen beschrieben, auf denen lokale oder selbstverwaltete Kafka Connect-Cluster ausgeführt werden, die auf AWS Amazon MSK Connect ausgeführt werden.

Kafka Connect-Sink-Konnektoren verwenden die Kafka-API für Gruppenmitgliedschaft und speichern Offsets in denselben `__consumer_offset` Themen wie eine typische Verbraucheranwendung. Dieses Verhalten vereinfacht die Migration des Sink-Connectors von einem selbstverwalteten Cluster zu Amazon MSK Connect.

Gehen Sie wie folgt vor, um Sink Connectors zu Amazon MSK Connect zu migrieren:

1. Erstellen Sie ein [benutzerdefiniertes Amazon MSK Connect-Plug-in](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-plugins.html), indem Sie Connector-Bibliotheken aus Ihrem lokalen oder selbstverwalteten Kafka Connect-Cluster abrufen.

1. Erstellen Sie Amazon MSK [Connect-Worker-Eigenschaften](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-config-provider.html#msk-connect-config-providers-create-custom-config) und legen Sie die Eigenschaften `key.converter` und `value.converter` auf dieselben Werte fest, die für den Kafka-Konnektor festgelegt sind, der in Ihrem vorhandenen Kafka Connect-Cluster ausgeführt wird.

1. Halten Sie die Connector-Anwendung auf Ihrem vorhandenen Cluster an, indem Sie eine `PUT /connectors/connector-name/pause` Anfrage auf dem vorhandenen Kafka Connect-Cluster stellen.

1. Stellen Sie sicher, dass alle Aufgaben der Connector-Anwendung vollständig beendet sind. Sie können die Aufgaben beenden, indem Sie entweder eine `GET /connectors/connector-name/status` Anfrage im vorhandenen Kafka Connect-Cluster stellen oder indem Sie die Nachrichten aus dem Themennamen verwenden, der für die Eigenschaft `status.storage.topic` festgelegt ist.

1. Rufen Sie die Konnektorkonfiguration aus dem vorhandenen Cluster ab. Sie können die Konnektorkonfiguration entweder abrufen, indem Sie eine `GET /connectors/connector-name/config` Anfrage für den vorhandenen Cluster stellen oder indem Sie die Nachrichten aus dem Themennamen verwenden, der für die Eigenschaft festgelegt ist`config.storage.topic`.

1. Erstellen Sie einen neuen [Amazon MSK Connector](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html) mit demselben Namen wie der bestehende Cluster. Erstellen Sie diesen Connector mithilfe des benutzerdefinierten Connector-Plug-ins, das Sie in Schritt 1 erstellt haben, der Worker-Eigenschaften, die Sie in Schritt 2 erstellt haben, und der Connector-Konfiguration, die Sie in Schritt 5 extrahiert haben.

1. Wenn der Amazon MSK Connector-Status lautet`active`, überprüfen Sie anhand der Protokolle, ob der Connector mit dem Import von Daten aus dem Quellsystem begonnen hat.

1. Löschen Sie den Connector im vorhandenen Cluster, indem `DELETE /connectors/connector-name` Sie eine Anfrage stellen.

# Probleme in Amazon MSK Connect beheben
<a name="msk-connect-troubleshooting"></a>

Die folgenden Informationen können zum Beheben von Problemen nützlich sein, die Sie bei der Verwendung von MSK Connect haben könnten. Sie können Ihr Problem auch im [AWS re:Post](https://repost.aws/) posten.

**Der Konnektor kann nicht auf Ressourcen zugreifen, die im öffentlichen Internet gehostet werden**  
Siehe [Aktivieren des Internetzugangs für Amazon MSK Connect](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-internet-access.html).

**Die Anzahl der laufenden Aufgaben im Konnektor entspricht nicht der Anzahl der in tasks.max angegebenen Aufgaben**  
Hier sind einige Gründe, warum ein Konnektor möglicherweise weniger Aufgaben als die angegebene tasks.max-Konfiguration verwendet:
+ Einige Konnektor-Implementierungen begrenzen die Anzahl der Aufgaben, die verwendet werden können. Zum Beispiel ist der Debezium-Konnektor für MySQL auf die Verwendung einer einzigen Aufgabe beschränkt.
+ Bei Verwendung des automatisch skalierten Kapazitätsmodus überschreibt Amazon MSK Connect die Eigenschaft tasks.max eines Connectors mit einem Wert, der proportional zur Anzahl der Worker ist, die im Connector laufen, und zur Anzahl der Worker pro Worker. MCUs Wenn Sie den optionalen `maxAutoscalingTaskCount` Parameter konfiguriert haben, wird der `tasks.max` Wert dieses Limit nicht überschreiten. Weitere Informationen finden Sie unter [Grundlegendes zur maximalen Anzahl von Autoscaling-Aufgaben](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html#msk-connect-max-autoscaling-task-count).
+ Bei Sink-Konnektoren darf der Grad der Parallelität (Anzahl der Aufgaben) nicht höher sein als die Anzahl der Themenpartitionen. Sie können den Wert tasks.max zwar größer einstellen, aber eine einzelne Partition wird nie von mehr als einer einzelnen Aufgabe gleichzeitig verarbeitet.
+ In Kafka Connect 2.7.x ist der standardmäßige Verbraucher-Partitionszuweiser `RangeAssignor`. Das Verhalten dieses Zuweisers besteht darin, die erste Partition jedes Themas einem einzelnen Verbraucher zuzuweisen, die zweite Partition jedes Themas einem einzelnen Verbraucher usw. Das bedeutet, dass die maximale Anzahl von aktiven Aufgaben für einen Sink-Konnektor, der `RangeAssignor` verwendet, der maximalen Anzahl von Partitionen in einem einzelnen Thema entspricht, die verwendet werden. Wenn dies für Ihren Anwendungsfall nicht funktioniert, sollten Sie [eine Worker-Konfiguration erstellen](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-workers.html#msk-connect-create-custom-worker-config), in der die Eigenschaft `consumer.partition.assignment.strategy` auf einen geeigneteren Verbraucher-Partitionszuweiser gesetzt ist. Siehe [Kafka 2.7-Schnittstelle ConsumerPartitionAssignor: *Alle bekannten Implementierungsklassen*](https://kafka.apache.org/27/javadoc/org/apache/kafka/clients/consumer/ConsumerPartitionAssignor.html).