Implementare le funzioni OCI per aggiornare una tabella Oracle NoSQL al caricamento nello storage degli oggetti OCI

L'architettura cloud nativa, basata sugli eventi e serverless è un approccio alla creazione e alla distribuzione di applicazioni che utilizzano risorse e servizi di cloud computing per massimizzare scalabilità, efficienza e flessibilità.

Questa architettura di riferimento dimostra la perfetta integrazione delle tabelle di Oracle Cloud Infrastructure Events e OCI Functions per aggiornare automaticamente le tabelle di Oracle NoSQL Database Cloud Service (Oracle NoSQL) quando gli oggetti vengono creati o modificati nei bucket di OCI Object Storage. Si occupa dello scenario aziendale comune relativo all'analisi e all'aggiornamento dei dati in una tabella NoSQL di Oracle ogni volta che un file viene aggiunto o modificato in un bucket di OCI Object Storage.

OCI Events offre una soluzione efficace per l'automazione delle attività in base alle modifiche di stato in varie risorse cloud. Consente la creazione di regole che forniscono eventi a servizi OCI specifici come OCI Streaming, OCI Functions (che fungono da prezioso strumento per elaborare i dati degli eventi e integrarsi con altri servizi OCI per eseguire azioni diverse) e OCI Notifications.

Inoltre, le funzioni OCI possono incorporare codice per gestire i dati del payload ricevuti dagli eventi OCI e adattare l'aggiornamento della tabella Oracle NoSQL in base a requisiti aziendali specifici.

Questa architettura di riferimento offre una panoramica completa sull'utilizzo delle funzioni OCI insieme agli eventi OCI per aggiornare le tabelle NoSQL di Oracle quando gli oggetti vengono creati o modificati nei bucket dello storage degli oggetti OCI.

Architettura

Questa architettura di riferimento descrive come utilizzare le funzioni OCI e gli eventi OCI per aggiornare una tabella Oracle NoSQL ogni volta che un file viene creato o aggiornato nello storage degli oggetti OCI.

Il diagramma dell'architettura mostra un flusso di dati a partire dal caricamento dei file in un bucket di OCI Object Storage designato. I trigger del servizio eventi sono configurati per l'attivazione in base alle condizioni delle regole evento specificate. L'evento emesso, a sua volta, richiama una funzione in grado di estrarre dati dal file caricato, eseguire elaborazioni aggiuntive in base ai requisiti aziendali e, infine, aggiornare la tabella NoSQL Oracle con i dati elaborati. Questo approccio offre notevoli vantaggi sfruttando l'architettura basata sugli eventi e agevolando l'elaborazione dei dati in tempo reale. È utile quando è necessario pre-elaborare i dati prima di aggiornare la tabella di destinazione ed eseguire i controlli di integrità necessari per garantire l'integrità dei dati.

Il caso d'uso aziendale, in cui i dati devono essere analizzati e aggiornati in una tabella Oracle NoSQL ogni volta che un file viene creato o aggiornato in un bucket di OCI Object Storage, può essere raggiunto utilizzando il seguente approccio:

  1. Impostare una regola evento in Eventi OCI per attivare le funzioni OCI ogni volta che un oggetto viene creato o aggiornato nel bucket dello storage degli oggetti OCI.
  2. Creare una funzione che riceve l'evento attivato dalla regola evento. Questa funzione gestirà l'analisi e l'aggiornamento dei dati nella tabella Oracle NoSQL.
  3. All'interno della funzione, implementa la logica necessaria per analizzare i dati dell'oggetto nel bucket dello storage degli oggetti OCI.
  4. Utilizza l'SDK o l'API OCI appropriata per interagire con il servizio Oracle NoSQL e inserire o aggiornare i record nella tabella Oracle NoSQL in base ai dati analizzati.

La combinazione di eventi OCI, funzioni OCI e servizi Oracle NoSQL consente di automatizzare il processo di analisi e aggiornamento dei dati nella tabella Oracle NoSQL ogni volta che un file viene creato o aggiornato nel bucket OCI Object Storage. Questo approccio consente un'elaborazione e una sincronizzazione dei dati efficienti e semplificate tra lo storage degli oggetti OCI e Oracle NoSQL.

Il diagramma riportato di seguito illustra questa architettura di riferimento.



object-storage-function-nosql-diagram-oracle.zip

Prima di iniziare

  1. Impostare l'applicazione di funzioni e creare una tabella Oracle NoSQL utilizzando la console OCI.
  2. Raccogliere questi valori necessari per configurare le variabili di ambiente per l'applicazione di funzioni.
    • ID utente

      OCID dell'utente con cui eseguire l'autenticazione.

    • ID tenancy

      OCID tenancy. Disponibile nel profilo utente.

    • Impronta digitale

      Verrà utilizzato per eseguire l'autenticazione all'API OCI.

    • Area

      Identificativo dell'area in cui creare le richieste.

    • Chiave privata API

      Posizione file chiave privata API.

    • OCID compartimento

      OCID compartimento in cui viene creata la tabella NoSQL Oracle.

    • Tabella NoSQL

      Tabella persona tabella di esempio. Crearlo con i seguenti attributi.

Chiave primaria Nome colonna Tipo Chiave condivisa Non nullo
ID INTEGER
No nome STRING No No
No età INTEGER No No
No genere STRING No No

L'architettura è dotata dei componenti elencati di seguito.

  • Tenancy

    Una tenancy è una partizione sicura e isolata che Oracle imposta all'interno di Oracle Cloud quando ti iscrivi a Oracle Cloud Infrastructure. Puoi creare, organizzare e amministrare le tue risorse in Oracle Cloud all'interno della tua tenancy. Una tenancy è sinonimo di azienda o organizzazione. In genere, un'azienda avrà una singola tenancy e ne rifletterà la struttura organizzativa all'interno di tale tenancy. Una singola tenancy in genere è associata a una singola sottoscrizione e una singola sottoscrizione in genere ha una sola tenancy.

  • Area

    Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, definiti domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (in tutti i paesi o anche in continenti).

  • Compartimento

    I compartimenti sono partizioni logiche tra più aree all'interno di una tenancy di Oracle Cloud Infrastructure. Usare i compartimenti per organizzare le risorse in Oracle Cloud, controllare l'accesso alle risorse e impostare le quote di utilizzo. Per controllare l'accesso alle risorse in un determinato compartimento, definisci i criteri che specificano chi può accedere alle risorse e quali azioni può eseguire.

  • Domini di disponibilità

    I domini di disponibilità sono data center standalone indipendenti all'interno di un'area geografica. Le risorse fisiche in ciascun dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, che offrono tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio alimentazione o raffreddamento o la rete interna del dominio di disponibilità. È pertanto improbabile che l'eventuale guasto di un dominio di disponibilità influenzi gli altri domini di disponibilità nell'area.

  • domini di errore

    Un dominio di errore è un gruppo di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando distribuisci risorse su più domini di errore, le tue applicazioni possono tollerare errori fisici del server, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.

  • Rete cloud virtuale (VCN) e subnet

    Una VCN è una rete personalizzabile e definita dal software configurata in un'area Oracle Cloud Infrastructure. Analogamente alle reti di data center tradizionali, i VCN offrono il controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che puoi modificare dopo aver creato la VCN. Puoi segmentare una VCN nelle subnet che possono essere definite nell'area o in un dominio di disponibilità. Ogni subnet è composta da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. Puoi modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

  • Lista di sicurezza

    Per ogni subnet, puoi creare regole di sicurezza che specifichino l'origine, la destinazione e il tipo di traffico che deve essere consentito all'interno e all'esterno della subnet.

  • Gateway del servizio

    Il gateway di servizi fornisce l'accesso da una VCN ad altri servizi, come Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viaggia sulla struttura di rete Oracle e non attraversa mai Internet.

  • Storage degli oggetti

    Lo storage degli oggetti garantisce un accesso rapido a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati, ad esempio immagini e video. Puoi memorizzare i dati in tutta sicurezza e poi recuperarli direttamente da Internet o dall'interno della piattaforma cloud. Puoi ridimensionare lo storage in modo trasparente senza alcun peggioramento a livello di prestazioni o affidabilità dei servizi. Utilizza lo storage standard per lo storage "hot" a cui devi accedere in modo rapido, immediato e frequente. Utilizzare lo storage di archivio per lo storage "freddo" che si mantiene per lunghi periodi di tempo e raramente può accedere.

  • Eventi

    I servizi Oracle Cloud Infrastructure emettono eventi, ovvero messaggi strutturati che descrivono i cambiamenti nelle risorse. Gli eventi vengono emessi per le operazioni di creazione, lettura, aggiornamento o eliminazione (CRUD), le modifiche allo stato del ciclo di vita delle risorse e gli eventi di sistema che influiscono sulle risorse cloud.

  • Funzioni

    Oracle Cloud Infrastructure Functions è una piattaforma completamente gestita, multi-tenant, altamente scalabile, on-demand e Functions-as-a-Service (FaaS). Si basa sul motore open source di Fn Project. Le funzioni consentono di distribuire il codice e di chiamarlo direttamente o attivarlo in risposta agli eventi. Oracle Functions utilizza i container Docker ospitati in Oracle Cloud Infrastructure Registry.

  • Log
    Logging è un servizio altamente scalabile e completamente gestito che fornisce l'accesso ai seguenti tipi di log delle risorse nel cloud:
    • Log di audit: log correlati agli eventi emessi dal servizio di audit.
    • Log dei servizi: log emessi da singoli servizi quali gateway API, eventi, funzioni, bilanciamento del carico, storage degli oggetti e log di flusso VCN.
    • Log personalizzati: log che contengono informazioni di diagnostica da applicazioni personalizzate, altri provider cloud o da un ambiente on premise.
  • Oracle NoSQL

    Oracle NoSQL Database Cloud Service è un servizio cloud di database completamente gestito progettato per le operazioni del database che richiedono risposte prevedibili a latenza di millisecondi a singola cifra per le query semplici. Una volta eseguita l'autenticazione con il tuo account Oracle Cloud, puoi creare una tabella Oracle NoSQL e specificare i requisiti di throughput e storage per la tabella. Oracle si riserva e gestisce le risorse per soddisfare le tue esigenze ed esegue il provisioning della capacità per te. La capacità viene specificata utilizzando unità di lettura e scrittura per il throughput e GB per le unità di storage.

Suggerimenti

Utilizzare i seguenti suggerimenti come punto di partenza. I requisiti potrebbero essere diversi dall'architettura descritta qui.
  • VCN

    Quando crei una rete VCN, determina il numero di blocchi CIDR necessari e la dimensione di ogni blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Usa blocchi CIDR che si trovano nello spazio di indirizzi IP privati standard.

    Selezionare i blocchi CIDR che non si sovrappongono ad altre reti (in Oracle Cloud Infrastructure, nel data center on premise o in un altro provider cloud) a cui si intende impostare connessioni private.

    Dopo aver creato una VCN, puoi modificarne, aggiungere e rimuovere i blocchi CIDR.

    Quando si progettano le subnet, tenere in considerazione il flusso di traffico e i requisiti di sicurezza. Collegare tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può essere utilizzata come limite di sicurezza.

  • Cloud Guard

    Duplicare e personalizzare le ricette predefinite fornite da Oracle per creare ricette personalizzate di rilevatori e rispondenti. Queste ricette consentono di specificare il tipo di violazione della sicurezza che genera un'avvertenza e quali azioni possono essere eseguite su di esse. Ad esempio, potresti voler rilevare i bucket di storage degli oggetti che hanno visibilità impostata sul pubblico.

    Applica Cloud Guard a livello di tenancy per coprire l'ambito più ampio e ridurre l'onere amministrativo derivante dalla gestione di più configurazioni.

    È inoltre possibile utilizzare la funzione Lista gestita per applicare determinate configurazioni ai rilevatori.

  • Funzioni

    La funzione OCI in questa architettura è stata sviluppata con Python. Le funzioni OCI supportano più linguaggi di programmazione ed è possibile utilizzare il linguaggio desiderato per sviluppare e distribuire le funzioni.

  • Oracle NoSQL

    Assicurarsi di creare la tabella Oracle NoSQL nel compartimento appropriato e gestire l'accesso utilizzando i criteri OCI Identity and Access Management (IAM). È importante stimare con precisione la capacità di lettura e scrittura prima di creare la tabella. Fare riferimento alla documentazione Oracle ed esaminare i suggerimenti per indicazioni dettagliate.

    In questa soluzione viene utilizzata come esempio una tabella di esempio denominata "persona". Ricordarsi di personalizzare la funzione e il nome della tabella in base alle specifiche esigenze.

  • Memorizzazione degli oggetti OCI

    Questa architettura utilizza lo storage degli oggetti standard per caricare un file. Assicurarsi di abilitare Emetti eventi oggetto in modo che i servizi evento possano essere attivati. Si consiglia inoltre di usare bucket privati per dati riservati.

  • Eventi OCI

    In questa architettura, il servizio OCI Events è configurato per l'ascolto delle modifiche apportate nello storage degli oggetti OCI per gli eventi "Object Create" e "Object Update". Il servizio viene richiamato dopo che l'oggetto viene caricato in Funzioni OCI e richiama la funzione per l'elaborazione.

Considerazioni

Quando si distribuisce questa architettura di riferimento, tenere presente quanto riportato di seguito.

  • Prestazioni

    Eventi OCI, Funzioni OCI e Oracle NoSQL sono servizi gestiti e altamente scalabili. Il servizio NoSQL di Oracle fornisce throughput su richiesta e provisioning dello storage.

    Prima di eseguire il provisioning, assicurati di stimare la capacità di throughput e storage per Oracle NoSQL Database Cloud Service.

  • Sicurezza

    Usare i criteri per limitare l'accesso alle risorse OCI.

    Per lo storage degli oggetti OCI, la cifratura è abilitata per impostazione predefinita e non può essere disattivata.

    Si consiglia di memorizzare i segreti e i dati riservati in OCI Vault. Considerare la possibilità di utilizzare le funzioni OCI per memorizzare le chiavi API, i nomi utente DB, le password e i token di autenticazione utilizzati per l'autorizzazione con i servizi OCI.

  • Disponibilità

    Oracle garantisce l'alta disponibilità degli eventi OCI, delle funzioni OCI, di Oracle NoSQL e del log OCI, che sono cloud nativi e completamente gestiti.

  • Costo

    Si paga solo per le risorse utilizzate durante l'esecuzione di una funzione.

Distribuisci

Il repository GitHub contiene il codice OCI Functions che implementa questa architettura di riferimento.

  1. Vai a GitHub.
  2. Duplicare o scaricare il repository sul computer locale.
  3. Seguire le istruzioni riportate nel documento README.

Visualizza altro

Per ulteriori informazioni sugli eventi OCI, sulle funzioni OCI e sui servizi NoSQL, consulta le risorse riportate di seguito.

Esaminare le risorse aggiuntive riportate di seguito.

Conferme

Authors: Shan Duraipandian

Contributors: John Sulyok