OCI-Funktionen implementieren, um eine Oracle NoSQL-Tabelle beim Upload in OCI Object Storage zu aktualisieren
Cloud-native, ereignisgesteuerte und serverlose Architektur ist ein Ansatz für das Erstellen und Bereitstellen von Anwendungen, die Cloud-Computing-Ressourcen und -Services nutzen, um Skalierbarkeit, Effizienz und Flexibilität zu maximieren.
Diese Referenzarchitektur demonstriert die nahtlose Integration von Oracle Cloud Infrastructure Events und OCI Functions, um Oracle NoSQL Database Cloud Service-(Oracle NoSQL-)Tabellen automatisch zu aktualisieren, wenn Objekte in OCI Object Storage-Buckets erstellt oder geändert werden. Dabei wird das allgemeine Geschäftsszenario zum Parsen und Aktualisieren von Daten in einer Oracle-Tabelle NoSQL behandelt, wenn eine Datei in einem OCI Object Storage-Bucket hinzugefügt oder geändert wird.
OCI Events bietet eine robuste Lösung zur Automatisierung von Aufgaben basierend auf Statusänderungen in verschiedenen Cloud-Ressourcen. Sie ermöglicht die Erstellung von Regeln, die Ereignisse an bestimmte OCI-Services wie OCI-Streaming, OCI-Funktionen (die als wertvolles Tool zur Verarbeitung von Ereignisdaten und zur Integration mit anderen OCI-Services zur Ausführung verschiedener Aktionen dienen) und OCI-Benachrichtigungen.
Darüber hinaus können OCI-Funktionen Code zur Verarbeitung von Payload-Daten integrieren, die von den OCI-Ereignissen empfangen wurden, und die Aktualisierung der Oracle-Tabelle NoSQL basierend auf bestimmten Geschäftsanforderungen anpassen.
Diese Referenzarchitektur bietet einen umfassenden Überblick über die Nutzung von OCI-Funktionen in Verbindung mit OCI-Ereignissen, um Oracle NoSQL-Tabellen zu aktualisieren, wenn Objekte in OCI Object Storage-Buckets erstellt oder geändert werden.
Architektur
Diese Referenzarchitektur zeigt, wie Sie OCI-Funktionen und OCI-Ereignisse verwenden, um eine Oracle-Tabelle NoSQL zu aktualisieren, wenn eine Datei in OCI Object Storage erstellt oder aktualisiert wird.
Das Architekturdiagramm zeigt einen Datenfluss, der mit dem Dateiupload in einen angegebenen OCI Object Storage-Bucket beginnt. Ereignisservice-Trigger werden für die Aktivierung basierend auf angegebenen Ereignisregelbedingungen konfiguriert. Das ausgegebene Ereignis wiederum ruft eine Funktion auf, mit der Daten aus der hochgeladenen Datei extrahiert, eine zusätzliche Verarbeitung gemäß den Geschäftsanforderungen durchgeführt und schließlich die Oracle NoSQL-Tabelle mit den verarbeiteten Daten aktualisiert werden können. Dieser Ansatz bietet erhebliche Vorteile, indem er die ereignisgesteuerte Architektur nutzt und die Echtzeit-Datenverarbeitung erleichtert. Sie erweist sich als unschätzbar, wenn Daten vor der Aktualisierung der Zieltabelle vorab verarbeitet werden müssen, und führt die erforderlichen Integritätsprüfungen durch, um die Datenintegrität sicherzustellen.
Der Geschäftsanwendungsfall, bei dem Daten geparst und in einer Oracle-Tabelle NoSQL aktualisiert werden müssen, wenn eine Datei in einem OCI Object Storage-Bucket erstellt oder aktualisiert wird, kann mit der folgenden Methode erreicht werden:
- Richten Sie eine Ereignisregel in OCI-Ereignissen ein, um OCI-Funktionen auszulösen, wenn ein Objekt im OCI Object Storage-Bucket erstellt oder aktualisiert wird.
- Erstellen Sie eine Funktion, die das von der Ereignisregel ausgelöste Ereignis empfängt. Diese Funktion verarbeitet das Parsen und Aktualisieren von Daten in der Oracle-Tabelle NoSQL.
- Implementieren Sie innerhalb der Funktion die erforderliche Logik, um die Daten aus dem Objekt im OCI Object Storage-Bucket zu parsen.
- Verwenden Sie das entsprechende OCI-SDK oder die entsprechende API, um mit dem Oracle NoSQL-Service zu interagieren und Datensätze basierend auf den geparsten Daten in die Oracle-Tabelle NoSQL einzufügen oder zu aktualisieren.
Durch die Kombination von OCI-Ereignissen, OCI-Funktionen und Oracle NoSQL-Services können wir das Parsen und Aktualisieren von Daten in der Oracle-Tabelle NoSQL automatisieren, wenn eine Datei im OCI Object Storage-Bucket erstellt oder aktualisiert wird. Dieser Ansatz ermöglicht eine effiziente und optimierte Datenverarbeitung und -synchronisierung zwischen OCI Object Storage und Oracle NoSQL.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
object-storage-function-nosql-diagram-oracle.zip
Bevor Sie beginnen
- Richten Sie Ihre Funktionsanwendung ein, und erstellen Sie mit der OCI-Konsole eine Oracle-Tabelle NoSQL.
- Erfassen Sie diese Werte, die für die Konfiguration der Umgebungsvariablen für die Funktionsanwendung erforderlich sind.
- Benutzer-ID
Die OCID des Benutzers, bei dem die Authentifizierung erfolgen soll.
- Mandanten-ID
Mandanten-OCID. Kann im Benutzerprofil gefunden werden.
- Fingerprint
Wird zur Authentifizierung bei der OCI-API verwendet.
- Region
ID der Region, in der die Anforderungen erstellt werden.
- API-Private Key
Speicherort der API-Private-Key-Datei.
- Compartment-OCID
Compartment-OCID, in der die Oracle-Tabelle NoSQL erstellt wird.
- Tabelle NoSQL
Beispieltabelle für eine Personentabelle. Erstellen Sie sie mit den folgenden Attributen.
- Benutzer-ID
Primärschlüssel | Spaltenname | Typ | Shared Key | Nicht null |
---|---|---|---|---|
Ja | ID | INTEGER | Ja | Ja |
Nein | Name | STRING | Nein | Nein |
Nein | Alter | INTEGER | Nein | Nein |
Nein | Geschlecht | STRING | Nein | Nein |
Die Architektur umfasst die folgenden Komponenten:
- Mandant
Ein Mandant ist eine sichere und isolierte Partition, die Oracle bei der Registrierung für Oracle Cloud Infrastructure in Oracle Cloud einrichtet. Sie können Ihre Ressourcen in Oracle Cloud in Ihrem Mandanten erstellen, organisieren und verwalten. Ein Mandant ist synonym zu einem Unternehmen oder einer Organisation. In der Regel verfügt ein Unternehmen über einen einzelnen Mandanten und spiegelt dessen Organisationsstruktur in diesem Mandanten wider. Ein einzelner Mandant ist in der Regel mit einem einzelnen Abonnement verknüpft, und ein einzelnes Abonnement hat in der Regel nur einen Mandanten.
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält, das als Availability-Domains bezeichnet wird. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie voneinander trennen (innerhalb von Ländern oder sogar Kontinenten).
- Compartment
Compartments sind regionsübergreifende logische Partitionen in einem Oracle Cloud Infrastructure-Mandanten. In Compartments können Sie Ihre Ressourcen in Oracle Cloud organisieren, den Zugriff auf die Ressourcen kontrollieren und Nutzungs-Quotas festlegen. Um den Zugriff auf die Ressourcen in einem bestimmten Compartment zu kontrollieren, definieren Sie Policys, mit denen angegeben wird, wer auf die Ressourcen zugreifen kann und welche Aktionen sie ausführen können.
- Availability-Domains
Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz sicherstellt. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Aus diesem Grund ist es wahrscheinlich, dass ein Fehler in einer Availability-Domain sich auf die anderen Availability-Domains in der Region auswirkt.
- Faultdomains
Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physische Serverausfälle, Systemwartungen und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtual Cloud Network (VCN) und Subnetze
Ein VCN ist ein anpassbares, Software-definiertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten können. Wie herkömmliche Data Center-Netzwerke erhalten Sie mit VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die sich auf eine Region oder eine Availability-Domain beschränken. Jedes Subnetz besteht aus einem Bereich zusammenhängender Adressen, die sich nicht mit anderen Subnetzen im VCN überschneiden. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, der in das und aus dem Subnetz zugelassen werden muss.
- Servicegateway
Das Servicegateway ermöglicht den Zugriff von einem VCN auf andere Services wie Oracle Cloud Infrastructure Object Storage. Der Datenverkehr vom VCN zum Oracle-Service durchläuft die Oracle-Netzwerkfabric und nie das Internet.
- Object Storage
Mit Object Storage erhalten Sie schnellen Zugriff auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps, darunter Datenbankbackups, Analysendaten und umfangreiche Inhalte, wie Bilder und Videos. Sie können Daten sicher und geschützt speichern und dann direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Sie können den Speicher nahtlos skalieren, ohne dass die Performance oder Servicezuverlässigkeit beeinträchtigt wird. Verwenden Sie Standardspeicher für "Hot Storage", auf den Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie Archivspeicher für "Cold Storage", den Sie über lange Zeiträume beibehalten möchten und auf den Sie nur selten zugreifen.
- Ereignisse
Oracle Cloud Infrastructure-Services geben Ereignisse aus. Hierbei handelt es sich um strukturierte Nachrichten, die Änderungen an Ressourcen beschreiben. Ereignisse werden zum Erstellen, Lesen, Aktualisieren oder Löschen (CRUD-)Vorgänge, Änderungen am Lebenszyklusstatus von Ressourcen und Systemereignisse ausgegeben, die sich auf Cloud-Ressourcen auswirken.
- Funktionen
Oracle Cloud Infrastructure Functions ist eine vollständig verwaltete, mehrmandantenfähige, äußerst skalierbare, bedarfsgesteuerte Functions-as-a-Service-(FaaS-)Plattform. Sie basiert auf der Open-Source-Engine des Fn-Projekts. Mit Funktionen können Sie Ihren Code bereitstellen und entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.
- AnmeldungLogging ist ein hoch skalierbarer und vollständig verwalteter Service, der Zugriff auf die folgenden Logtypen von Ihren Ressourcen in der Cloud ermöglicht:
- Auditlogs: Logs zu Ereignissen, die vom Auditservice ausgegeben werden.
- Servicelogs: Von einzelnen Services wie API Gateway, Events, Functions, Load Balancing, Object Storage und VCN-Flowlogs ausgegebene Logs.
- Benutzerdefinierte Logs: Logs, die Diagnoseinformationen von benutzerdefinierten Anwendungen, anderen Cloud-Providern oder einer On-Premise-Umgebung enthalten.
- Oracle NoSQL
Oracle NoSQL Database Cloud Service ist ein vollständig verwalteter Datenbank-Cloud-Service, der für Datenbankvorgänge konzipiert ist, die vorhersehbare einstellige Antworten mit einer Latenz im einstelligen Millisekundenbereich auf einfache Abfragen erfordern. Nach der Authentifizierung mit Ihrem Oracle Cloud-Account können Sie eine Oracle-Tabelle NoSQL erstellen und Durchsatz- und Speicheranforderungen für die Tabelle angeben. Oracle reserviert und verwaltet die Ressourcen, um Ihre Anforderungen zu erfüllen, und stellt für Sie Kapazität bereit. Die Kapazität wird mit Lese- und Schreibeinheiten für Durchsatz und GB für die Speichereinheiten angegeben.
Empfehlungen
- VCN
Bestimmen Sie beim Erstellen eines VCN die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke innerhalb des standardmäßigen privaten IP-Adressraums.
Wählen Sie CIDR-Blöcke aus, die sich mit keinem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, zu dem Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.
Berücksichtigen Sie bei der Entwicklung der Subnetze Ihren Verkehrsfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Cloud Guard
Klonen und passen Sie die von Oracle bereitgestellten Standardrezepte an, um benutzerdefinierte Detektor- und Responder-Rezepte zu erstellen. Mit diesen Rezepten können Sie angeben, welche Art von Sicherheitsverletzungen eine Warnung generiert und welche Aktionen für sie ausgeführt werden dürfen. Beispiel: Sie möchten Object Storage-Buckets ermitteln, deren Sichtbarkeit auf "Öffentlich" gesetzt ist.
Wenden Sie Cloud Guard auf Mandantenebene an, um den größten Geltungsbereich abzudecken und den administrativen Aufwand für die Verwaltung mehrerer Konfigurationen zu reduzieren.
Sie können das Feature "Verwaltete Liste" auch verwenden, um bestimmte Konfigurationen auf Detektoren anzuwenden.
- Funktionen
Die OCI-Funktion in dieser Architektur wurde mit Python entwickelt. Beachten Sie, dass OCI Functions mehrere Programmiersprachen unterstützt und Sie die gewünschte Sprache verwenden können, um die Funktionen zu entwickeln und bereitzustellen.
- Oracle NoSQL
Stellen Sie sicher, dass Sie die Oracle-Tabelle NoSQL im entsprechenden Compartment erstellen und den Zugriff mit OCI Identity and Access Management-(IAM-)Policys verwalten. Es ist wichtig, die Lese- und Schreibkapazität vor dem Erstellen der Tabelle genau zu schätzen. Weitere Informationen finden Sie in der Oracle-Dokumentation.
In dieser Lösung wird eine Beispieltabelle namens "person" als Beispiel verwendet. Denken Sie daran, die Funktion und den Tabellennamen entsprechend Ihren spezifischen Anforderungen anzupassen.
- OCI Object Storage
Bei dieser Architektur wird eine Datei mit dem Standard-Object Storage hochgeladen. Aktivieren Sie Objektereignisse ausgeben, damit Ereignisservices ausgelöst werden können. Außerdem wird empfohlen, private Buckets für sensible Daten zu verwenden.
- OCI-Ereignisse
In dieser Architektur wird der OCI-Ereignisservice so konfiguriert, dass er auf Änderungen in OCI Object Storage für die Ereignisse "Objekte erstellen" und "Objektaktualisierung" horcht. Der Service wird aufgerufen, nachdem das Objekt in OCI-Funktionen hochgeladen wurde, und ruft die Funktion zur Verarbeitung auf.
Hinweise
Beachten Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte.
- Performance
OCI-Ereignisse, OCI-Funktionen und Oracle NoSQL sind hoch skalierbare, verwaltete Services. Der Oracle NoSQL-Service ermöglicht On-Demand-Durchsatz und Speicher-Provisioning.
Stellen Sie vor dem Provisioning sicher, dass Sie Durchsatz- und Speicherkapazitäten für Oracle NoSQL Database Cloud Service schätzen.
- Sicherheit
Mit Policys können Sie den Zugriff auf die OCI-Ressourcen einschränken.
Bei OCI Object Storage ist die Verschlüsselung standardmäßig aktiviert und kann nicht deaktiviert werden.
Es wird empfohlen, Secrets und sensible Daten in OCI Vault zu speichern. Verwenden Sie OCI-Funktionen zum Speichern von API-Schlüsseln, DB-Benutzernamen, Kennwörtern und Authentifizierungstoken, die für die Autorisierung mit OCI-Services verwendet werden.
- Verfügbarkeit
Oracle stellt High Availability der OCI-Ereignisse, OCI-Funktionen, Oracle NoSQL und OCI-Logging sicher, die cloudnativ und vollständig verwaltet sind.
- Kostenfaktor
Sie zahlen nur für die Ressourcen, die während der Ausführung einer Funktion verwendet werden.
Bereitstellen
Das Repository GitHub enthält den OCI Functions-Code, der diese Referenzarchitektur implementiert.
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf den lokalen Rechner herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.