Hinweis:

Prozessdateien in Oracle Cloud Infrastructure Object Storage mit einem skalierbaren cloudnativen Ablauf

Einführung

In unseren Anwendungen müssen wir oft große Mengen von Dateien verarbeiten. In der Vergangenheit wurde dies in Batch-Form getan, aber mit neuen Technologien und dem Aufkommen der Cloud sind wir jetzt in der Lage, viele serielle Prozesse in parallele zu verwandeln. Die Verwendung von Nachrichtenwarteschlangen, Kubernetes-Clustern und ereignisgesteuerten Architekturen sind einige der Technologien und Architekturen, die häufig verwendet werden, um das Beste aus der Verarbeitung großer Volumes herauszuholen.

Oracle Cloud Infrastructure (OCI) verfügt über Ressourcen, um Skalierbarkeit und Kostensenkung zu ermöglichen. Sehen wir uns die Cloud-nativen Services an.

In diesem Tutorial sehen wir eine sehr häufige Methode zur Verarbeitung großer Dateienmengen, bei der Anwendungen ihre Dateien in einem Bucket in OCI Object Storage hinterlegen können. Wenn diese Dateien hinterlegt werden, wird ein Ereignis generiert, das es einer Funktion ermöglicht, die URL dieser Datei in OCI Streaming zu schreiben.

Hinweis: Wir können uns diese Lösung nur vorstellen, wenn einige Quellanwendungen den Inhalt der Dateien in OCI Streaming speichern, während unsere Anwendung diesen Inhalt gerade liest. Es ist jedoch keine gute Vorgehensweise, große Datenmengen in einer Kakfa-Queue zu übertragen. Dazu verwendet unser Ansatz ein Muster namens Claim-Check, das genau wie unser Vorschlag aussieht. Anstatt die Datei über die Nachrichtenwarteschlange zu senden, senden wir die Referenz an diese Datei. Wir delegieren das Lesen der Datei an die Anwendung, die für die Verarbeitung verantwortlich ist.

Dieses Tutorial enthält die folgenden Komponenten: OCI Object Storage, Events Service, Functions und Streaming.

Am Ende dieser Kette wird die Anwendung die Streaming-Warteschlange konsumieren. Wir werden jedoch nicht besprechen, wie die Datei verarbeitet wird.

img.png

Ziele

Voraussetzungen

Aufgabe 1: OCI Streaming-Instanz erstellen

OCI Streaming ist ein Kafka-ähnlicher verwalteter Streaming-Service. Wir können Anwendungen mit den Kafka-APIs und gängigen SDKs auf dem Markt entwickeln. In dieser Aufgabe erstellen wir eine Instanz von OCI Streaming und konfigurieren sie für die Ausführung in beiden Anwendungen, um ein hohes Datenvolumen zu veröffentlichen und zu nutzen.

  1. Melden Sie sich bei der OCI-Konsole an, und klicken Sie auf Analysen und KI und Straßen.

  2. Wählen Sie Compartment, und klicken Sie auf Stream erstellen.

    erstellen-stream.png

  3. Geben Sie den Streamnamen der Streaminstanz ein, und behalten Sie die anderen Parameter mit den Standardwerten bei. Klicken Sie auf Erstellen, um die Instanz zu initialisieren und auf den Status Aktiv zu warten.

    save-create-stream.png

    Hinweis:

    • Beim Erstellen des Streams können Sie Standard-Stream-Pool automatisch erstellen auswählen. Daher wird der Standard-Pool automatisch erstellt.

    • Sie können die Streaminstanz in einem privaten Subnetz erstellen. In diesem Fall muss sich die Funktion in Aufgabe 4 im selben privaten Subnetz oder in einem Subnetz befinden, das Zugriff auf die private Subnetzstreaminstanz hat. Prüfen Sie das VCN, die Subnetze, die Sicherheitslisten, das Servicegateway oder andere Sicherheitskomponenten. Stellen Sie sicher, dass Ihre Funktion auf die OCI Streaming-Instanz zugreifen kann.

  4. Klicken Sie auf den Link DefaultPool.

    default-pool-option.png

  5. Klicken Sie auf Kafka-Verbindungseinstellungen, und zeigen Sie die Verbindungseinstellungen an. Notieren Sie sich die Informationen, wie sie bei den nächsten Aufgaben erforderlich sind.

    stream-conn-settings.png

    kafka-conn.png

Aufgabe 2: OCI-Objektspeicher-Bucket erstellen

Wir müssen einen Bucket erstellen. Buckets sind logische Container zum Speichern von Objekten. Daher werden alle für diese Demo verwendeten Dateien in diesem Bucket gespeichert.

  1. Öffnen Sie die OCI-Konsole, und navigieren Sie zu Speicher, Buckets. Wählen Sie im Abschnitt Buckets die Option Compartment aus. Das Compartment entspricht der OCI Streaming-Instanz, die in Aufgabe 1 erstellt wurde.

    auswählen-compartment.png

  2. Klicken Sie auf Bucket erstellen, und geben Sie einen Bucket-Namen ein. Behalten Sie die anderen Parameter bei den Standardwerten bei, und klicken Sie auf Erstellen.

    erstellen-bucket.png

    Der erstellte Bucket wird angezeigt.

    Buckets - dataflow.png

    Hinweis: Prüfen Sie die OCI-IAM-Policys für den Bucket. Sie müssen die Policys einrichten, wenn Sie diese Buckets in Ihren Demoanwendungen verwenden möchten. Weitere Informationen finden Sie unter Überblick über Object Storage und OCI IAM-Policys.

Aufgabe 3: OCI Object Storage-Bucket für OCI Events Services aktivieren

Der Bucket muss aktiviert werden, um Ereignisse auszugeben. Klicken Sie also auf Ihre Bucket-Details, suchen Sie nach dem Link Objektereignisse bearbeiten ausgeben, und aktivieren Sie ihn.

img_8.png

Aufgabe 4: OCI-Funktionen erstellen

Um die folgende Aufgabe auszuführen, laden Sie Code von hier herunter: OCI_Streaming_Claim_Check.zip.

Aufgabe 5: OCI-Ereignisse konfigurieren

Konfigurieren Sie eine Ereignisregel, um Ihre Funktion zum Abrufen der Bucket-Informationen und zum Senden an OCI Streaming auszulösen.

  1. Wählen Sie dasselbe Compartment für die Regel aus, und klicken Sie auf Regel erstellen.

    img_10.png

  2. Geben Sie folgende Informationen ein.

    1. Im Abschnitt Regelbedingung.

      • Bedingung: Event Type.
      • Service-Name: Object Storage.
      • Eventtyp: Object-Create, Object-Delete, Object-Update.
    2. Im Abschnitt Aktion.

      • Aktionstyp: Functions.
      • Function Compartment: <your function compartment name>.
      • Funktionsanwendung: <your function app, in this example ocistreaming-app>.
      • Funktion: fn_stream.

    img_9.png

Aufgabe 6: Testen Sie Ihren Circuit of Events

Hinweis: Bei privaten Netzwerken muss der Testcode in einer Bastion ausgeführt werden, die mit demselben privaten Subnetz von OCI Streaming verbunden ist.

Im Quellcodepackage OCI_Streaming_Claim_Check.zip finden Sie einen Ordner namens monitoring und eine Datei mit dem Namen consume.py. Mit diesem Code können wir überwachen und testen, ob die Lösung korrekt funktioniert.

Wir müssen den Code konfigurieren.

img_11.png

Nachdem Sie die Stream-Parameter konfiguriert haben, können Sie den Code ausführen und den Circuit prüfen. Dabei handelt es sich um Bucket, Ereignis, Funktion und Streaming.

img_12.png

Danksagungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.