Monitora i backup di Oracle Cloud Infrastructure con funzioni e Autonomous JSON
```
{
"eventType" : "com.oraclecloud.filestorage.createsnapshot",
"cloudEventsVersion" : "0.1",
"eventTypeVersion" : "2.0",
"source" : "FileStorage",
"eventTime" : "2022-11-23T21:30:20Z",
"contentType" : "application/json",
"data" : {
"compartmentId" : "ocid1.compartment.oc1..********************",
"compartmentName" : "ChristophePruvost",
"resourceName" : "Snapshot-20221123-2130-10",
"resourceId" : "ocid1.snapshot.oc1.********************",
"availabilityDomain" : "AD2",
"freeformTags" : { },
"definedTags" : {
"Mandatory_Tags" : {
"Owner" : "oracleidentitycloudservice/firstname.name@company.com",
"Schedule" : "OnDemand_UTC+1",
"CreatedOn" : "2022-11-23T21:30:11.405Z"
}
},
"additionalDetails" : {
"X-Real-Port" : 60458
}
},
"eventID" : "d520f88c-cd3d-4d1f-9a39-d935db5dcd8b",
"extensions" : {
"compartmentId" : "ocid1.compartment.oc1..*****************************"
}
}
```
Dopo aver inserito eventi in Autonomous JSON, puoi creare facilmente un'applicazione APEX che monitorerà tutti i backup OCI in un'unica posizione. Inoltre, in qualità di amministratore OCI, puoi evitare un'enorme quantità di notifiche e-mail e puoi utilizzare APEX per creare report di backup efficienti. Per abilitare questa opzione, è necessario disabilitare il componente Consegna tramite posta elettronica mostrato nel diagramma di architettura riportato di seguito.
Architettura
Il diagramma riportato di seguito illustra l'architettura di riferimento per questa soluzione.

Descrizione dell'illustrazione mon-bu-funs-auto-json-arch.png
mon-bu-funs-auto-json-arch-oracle.zip
Nota:
Lo snapshot dello storage di file e il backup DBCS sono solo due esempi di questa implementazione. L'esecuzione verrà eseguita in modo simile a tutti gli eventi di backup su OCI, tra cui backup dello storage a blocchi, backup dello storage di avvio, backup ExaCS e così via.L'architettura è dotata dei componenti elencati di seguito.
- 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).
- 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.
- Storage di file
Il servizio di storage di file di Oracle Cloud Infrastructure fornisce un file system di rete duraturo, scalabile, sicuro e di livello enterprise. Puoi connetterti a un file system del servizio di storage di file da qualsiasi istanza Bare Metal, Virtual Machine o container. Uno snapshot dello storage di file è un backup del file system che puoi usare se desideri ripristinarlo eseguendo una copia.
- Database Cloud Service (DBCS)
DBCS è un servizio completamente gestito di Oracle Database. Un backup DBCS è un backup dei dati che puoi usare per ripristinare il database.
- Servizio eventi OCI
Oracle Cloud Infrastructure Events Service tiene traccia delle modifiche alle risorse utilizzando eventi conformi allo standard Cloud Native Computing Foundation (CNCF). Gli sviluppatori possono rispondere ai cambiamenti in tempo reale attivando il codice con Funzioni, scrivendo in streaming o inviando avvisi tramite il servizio di notifiche.
- Funzioni OCI
Oracle Cloud Infrastructure OCI Functions è un servizio serverless basato sugli eventi che consente agli sviluppatori di creare, eseguire e scalare le applicazioni senza eseguire il provisioning o gestire alcuna infrastruttura. È possibile pagare solo per le risorse utilizzate quando la funzione è in esecuzione. Le funzioni si integrano con altri servizi OCI e con altre applicazioni Oracle Saar. In base a un framework aperto, le funzioni OCI possono essere indirizzate ad altri cloud o ambienti on premise.
- Autonomous JSON
Oracle Autonomous JSON Database è un servizio con ambito funzioni per la memorizzazione e il recupero delle raccolte di documenti JSON utilizzando le API SQL o Document.
- Consegna mediante posta elettronica
Il servizio Oracle Cloud Infrastructure Email Delivery offre una soluzione gestita rapida e affidabile per l'invio di e-mail sicure e a volumi elevati di marketing e transazionali.
Suggerimenti
Per implementare la funzione, Oracle consiglia di completare alcuni dei file LiveLabs disponibili per comprendere meglio il processo e preparare l'ambiente in uso.
- Funzione Oracle OCI
In primo luogo, devi acquisire familiarità con l'implementazione delle funzioni OCI. Seguire il comando LiveLab, Configuring Oracle Functions. Per velocizzare il processo, copiare e incollare il codice di esempio da oracle-functions-samples su GitHub.
- Autonomous JSON
Successivamente, per sviluppare familiarità con l'utilizzo di JSON nei database Oracle, seguire il documento LiveLab, Sviluppo con JSON e SODA in Oracle Database. Successivamente, segui LiveLab nelle Oracle Functions basate sugli eventi con Autonomous Data Warehouse.
- Monitoraggio con APEX
Infine, scopri come monitorare i processi in APEX, segui il documento LiveLabs Low Code Development with Autonomous Database.
Al termine della procedura LiveLab, creare una vista SQL degli eventi JSON e utilizzare l'esempio di codice riportato di seguito per creare la propria applicazione di monitoraggio APEX. Questa vista è relativa alla struttura dell'esempio di evento JSON mostrato in "Informazioni sul monitoraggio dei backup di Oracle Cloud Infrastructure con funzioni e Autonomous JSON".CREATE OR REPLACE VIEW j_backup_detail_view AS SELECT ba.id, ba.created_on, ba.last_modified, ba.version, jt.* FROM backup ba, json_table(ba.json_document, '$' COLUMNS ( eventtype VARCHAR2(100) PATH '$.eventType', cloudeventsversion VARCHAR2(10) PATH '$.cloudEventsVersion', eventtypeversion VARCHAR2(10) PATH '$.eventTypeVersion', source VARCHAR2(50) PATH '$.source', compartmentid VARCHAR2(200) PATH '$.data.compartmentId', compartmentname VARCHAR2(100) PATH '$.data.compartmentName', resourcename VARCHAR2(200) PATH '$.data.resourceName', resourceid VARCHAR2(200) PATH '$.data.resourceId', availabilitydomain VARCHAR2(200) PATH '$.data.availabilityDomain' )) jt; create search index srchidx on backup (json_document) for json;Ora è possibile avviare la propria implementazione.