Hinzufügen der Apache Kafka-Quelle zu einem Fabric Eventstream

In diesem Artikel erfahren Sie, wie Sie apache Kafka-Quelle zu einem Fabric Eventstream hinzufügen.

Apache Kafka ist eine verteilte Open-Source-Plattform zum Erstellen skalierbarer Systeme mit Echtzeitdaten. Durch die Integration von Apache Kafka als Quelle in Ihren Eventstream können Sie Echtzeitereignisse aus Ihrem Apache Kafka nahtlos mitbringen und verarbeiten, bevor Sie innerhalb Fabric an mehrere Ziele weiterleiten.

Voraussetzungen

  • Zugriff auf den Fabric-Arbeitsbereich mit Mitwirkenden-Berechtigung oder höher.

  • Ein Apache Kafka-Cluster wird ausgeführt.

  • Ihr Apache Kafka muss öffentlich zugänglich sein und darf sich nicht hinter einer Firewall oder in einem virtuellen Netzwerk befinden. Wenn es sich in einem geschützten Netzwerk befindet, stellen Sie mithilfe der Eventstream Connector virtual network Injection eine Verbindung mit ihr her.

  • Wenn Sie TLS/mTLS-Einstellungen verwenden möchten, stellen Sie sicher, dass die erforderlichen Zertifikate in einer Azure Key Vault verfügbar sind:

    • Importieren Sie die erforderlichen Zertifikate in Azure Key Vault im Format .pem.
    • Der Benutzer, der die Quell- und Vorschaudaten konfiguriert, muss über die Berechtigung zum Zugriff auf die Zertifikate im Key Vault verfügen (z. B. Key Vault Zertifikatbenutzer oder Key Vault Administrator).
    • Wenn der aktuelle Benutzer nicht über die erforderlichen Berechtigungen verfügt, können Daten aus dieser Quelle in Eventstream nicht in der Vorschau angezeigt werden.

Apache Kafka als Quelle hinzufügen

Wenn Sie Ihrem Eventstream noch keine Quelle hinzugefügt haben, wählen Sie die Kachel "Datenquellen verbinden" aus . Sie können auch "Quelle hinzufügen"> und "Datenquellen verbinden" auf dem "Ribbon" auswählen.

Screenshot, der die Auswahl der Kachel für die Verwendung einer externen Quelle zeigt.

Wenn Sie die Quelle zu einem bereits veröffentlichten Ereignisstream hinzufügen, wechseln Sie zum Bearbeitungsmodus . Wählen Sie im Menüband "Quelle hinzufügen; Datenquellen verbinden" aus.

Screenshot der Auswahl zum Hinzufügen externer Quellen.

Wählen Sie auf der Seite "Datenquelle auswählen" oder "Datenquellen" die Option Apache Kafka aus.

Screenshot, der die Auswahl von Apache Kafka als Quellentyp im Assistenten zum Abrufen von Ereignissen zeigt.

Konfigurieren und Herstellen einer Verbindung mit Apache Kafka

  1. Wählen Sie auf der Seite Verbinden die Option Neue Verbindung aus.

    Screenshot der Auswahl des Links „Neue Verbindung“ auf der Seite „Verbinden des Assistenten zum Abrufen von Ereignissen“.

  2. Geben Sie im Abschnitt "Verbindungseinstellungen " für bootstrap-Server eine oder mehrere Kafka-Bootstrap-Serveradressen ein. Trennen Sie mehrere Adressen durch Kommas (,).

    Screenshot: Auswahl des Bootstrap-Serverfelds auf der Apache Kafka-Seite „Verbinden“ des Assistenten „Ereignisse abrufen“

  3. Wählen Sie im Abschnitt "Verbindungsanmeldeinformationen " eine vorhandene Verbindung mit dem Apache Kafka-Cluster aus der Dropdownliste für "Connection" aus. Führen Sie andernfalls die folgenden Schritte aus:

    1. Geben Sie für Verbindungsname einen Namen für die Verbindung ein.
    2. Vergewissern Sie sich bei der Authentifizierungsart, dass der API-Schlüssel ausgewählt ist.
    3. Geben Sie für Schlüssel und Schlüsselgeheimnis den API-Schlüssel und den Schlüsselgeheimnis ein.

      Hinweis

      Wenn Sie mTLS nur zum Ausführen der Authentifizierung verwenden, können Sie während der Verbindungserstellung eine beliebige Zeichenfolge im Abschnitt "Schlüssel" hinzufügen.

  4. Wählen Sie Verbinden. 

  5. Führen Sie nun auf der Seite Verbinden die folgenden Schritte aus.

    1. Geben Sie für Thema das Thema Kafka ein.

    2. Geben Sie für Verbrauchergruppe die Verbrauchergruppe Ihres Apache Kafka-Clusters ein. Dieses Feld bietet Ihnen eine dedizierte Verbrauchergruppe zum Abrufen von Ereignissen.

    3. Wählen Sie Automatischen Offset zurücksetzen aus, um anzugeben, wo das Lesen der Offsets beginnen soll, wenn kein Commit vorhanden.

    4. Wählen Sie für das Sicherheitsprotokoll eine der folgenden Optionen aus:

      • SASL_SSL: Verwenden Sie diese Option, wenn Ihr Kafka-Cluster SASL-basierte Authentifizierung verwendet. Standardmäßig muss das Serverzertifikat des Kafka-Brokers von einer Zertifizierungsstelle (Ca) signiert werden, die in der Liste der vertrauenswürdigen Zertifizierungsstellen enthalten ist. Wenn Ihr Kafka-Cluster eine benutzerdefinierte Zertifizierungsstelle verwendet, können Sie diese mithilfe von TLS/mTLS-Einstellungen konfigurieren.
      • SSL (mTLS):Verwenden Sie diese Option, wenn Ihr Kafka-Cluster MTLS-Authentifizierung erfordert, und Sie müssen sowohl ein benutzerdefiniertes Server-Zertifizierungsstellenzertifikat als auch ein Clientzertifikat in den TLS/mTLS-Einstellungen konfigurieren.
    5. Der STANDARDMÄßIGe SASL-Mechanismus ist in der Regel PLAIN, sofern nicht anders konfiguriert. Sie können den SCRAM-SHA-256 - oder SCRAM-SHA-512-Mechanismus auswählen, der Ihren Sicherheitsanforderungen entspricht.

    6. Wenn Ihr Kafka-Cluster eine benutzerdefinierte Zertifizierungsstelle verwendet oder mTLS erfordert, erweitern Sie TLS/mTLS-Einstellungen , und konfigurieren Sie die folgenden Optionen nach Bedarf:

      • CA-Zertifikat vertrauen: Aktivieren Sie diese Option, um das CA-Zertifikat des Servers zu konfigurieren. Wählen Sie Ihr Abonnement, die Ressourcengruppe und den Key Vault aus, und geben Sie dann den Zertifikatnamen an.
      • Clientzertifikat und Schlüssel: Aktivieren Sie diese Option, um das Clientzertifikat und den Schlüssel zu konfigurieren.
        • Verwenden Sie denselben Zertifikatschlüsseltresor der Zertifizierungsstelle: Aktivieren Sie dieses Kontrollkästchen, wenn beide Zertifikate im selben Schlüsseltresor gespeichert sind. Geben Sie dann den Zertifikatnamen an.
        • Wenn Sie dieses Kontrollkästchen nicht aktivieren, aktivieren Sie das Abonnement, die Ressourcengruppe und den Schlüsseltresor, und geben Sie dann den Zertifikatnamen an.

      Hinweis

      Stellen Sie sicher, dass für Quellen in einem privaten Netzwerk Ihr Azure Key Vault, das Ihre Zertifikate enthält, mit dem Azure-Virtualnetzwerk verbunden ist, das vom Streaming-Gateway des virtuellen Netzwerkdatengateways für die Eventstream-Connector-Virtual-Network-Injection verwendet wird (z. B. über einen privaten Endpunkt).

    Screenshot der ersten Seite der Apache Kafka-Verbindungseinstellungen.

TLS/mTLS-Zertifikatanforderungen

Wenn Sie TLS/mTLS-Einstellungen konfiguriert haben, lesen Sie diesen Abschnitt für Zertifikatformatspezifikationen und häufige Konfigurationsfehler beim Hochladen auf Azure Key Vault.

Zertifikatkette

Certificate Schlüsselgröße Signiert von Purpose
CA-Zertifikat 4096-Bit-RSA Selbstsigniert Vertrauensanker: Der Broker überprüft Clientzertifikate gegenüber dieser Zertifizierungsstelle.
Serverzertifikat 2048-Bit-RSA CA Brokeridentität – der Client überprüft, ob der Broker tatsächlich derjenige ist, als der er sich ausgibt.
Clientzertifikat 2048-Bit-RSA CA Clientidentität – der Broker überprüft, ob der Connector autorisiert ist.

Serverzertifikat-SAN-Anforderungen

Das Serverzertifikat muss die IP-Adresse und den DNS-Namen des Brokers im Subject Alternative Name (SAN) enthalten, um die Hostnamenüberprüfung zu bestehen (ssl.endpoint.identification.algorithm=https).

subjectAltName:
  DNS.1 = {broker FQDN}
  DNS.2 = localhost
  IP.1  = {broker public IP}
  IP.2  = 127.0.0.1

Hochladen von Zertifikaten auf Azure Key Vault

Zertifikate werden als Azure Key Vault Zertifikatobjekte im PEM-Format hochgeladen. Die PEM-Bundledatei ist Zertifikat + privater Schlüssel in einer Datei verkettet:

-----BEGIN CERTIFICATE-----
MIIExjCCA...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIB...
-----END RSA PRIVATE KEY-----

Verwenden Sie eine Importrichtlinie , die den wichtigsten Eigenschaften entspricht:

{
  "secretProperties": {
    "contentType": "application/x-pem-file"
  },
  "keyProperties": {
    "exportable": true,
    "keyType": "RSA",
    "keySize": 4096,
    "reuseKey": false
  },
  "issuerParameters": {
    "name": "Unknown"
  }
}

Importieren Sie das Zertifikat mithilfe des folgenden Befehls:

az keyvault certificate import \
  --vault-name {kvName} \
  --name {certName} \
  --file {pemBundleFile} \
  --policy @{policyFile}

Häufige Fehler

Vermeiden Gehen Sie stattdessen wie folgt vor:
Als PKCS#12/PFX hochladen Verwenden Sie das PEM-Format mit contentType: application/x-pem-file.
Hochladen eines Zertifikats ohne privaten Schlüssel Das PEM-Bundle muss sowohl das Zertifikat als auch den Schlüssel enthalten.
Festlegen keySize: 2048 für einen 4096-Bit-Schlüssel Der keySize Wert muss mit der tatsächlichen Schlüsselgröße übereinstimmen.
Legen Sie issuerParameters.name: "Self" fest. Verwenden Sie "Unknown" für extern signierte Zertifikate.
Verwenden Sie Windows-Zeilenumbrüche (CRLF) Die PEM-Datei muss Unix-Zeilenenden (nur LF) verwenden.

Anzeigen des aktualisierten Eventstreams

Sie können die Apache Kafka-Quelle sehen, die Ihrem Eventstream im Bearbeitungsmodushinzugefügt wurde. 

Screenshot der Apache Kafka-Quelle in der Bearbeitungsansicht.

Nachdem Sie diese Schritte ausgeführt haben, ist die Apache Kafka-Quelle für die Visualisierung in der Liveansichtverfügbar.

Screenshot der Apache Kafka-Quelle in der Liveansicht.

Hinweis

Um Ereignisse aus dieser Apache Kafka-Quelle in der Vorschau anzuzeigen, stellen Sie sicher, dass der Schlüssel, der zum Erstellen der Cloudverbindung verwendet wird, über Leseberechtigungen für Verbrauchergruppen mit dem Präfix "vorschau-" verfügt.

Bei Apache Kafka-Quelle können nur Nachrichten im JSON-Format in der Vorschau angezeigt werden.

Screenshot der Vorschau der Apache Kafka-Quelldaten.

Andere Konnektoren: