Nota

Elabora i file su Oracle Cloud Infrastructure Object Storage con un flusso cloud nativo scalabile

Introduzione

Nelle nostre applicazioni, abbiamo spesso bisogno di elaborare grandi quantità di file. In passato, questo è stato fatto in batch, ma con le nuove tecnologie e l'avvento del cloud, ora siamo in grado di trasformare molti processi seriali in processi paralleli. L'uso di code di messaggi, cluster Kubernetes e architetture basate sugli eventi sono alcune delle tecnologie e delle architetture ampiamente utilizzate per ottenere il meglio dall'elaborazione di grandi volumi.

Oracle Cloud Infrastructure (OCI) dispone di risorse per consentire scalabilità e riduzione dei costi. Esaminiamo i servizi cloud nativi.

In questo tutorial vedremo un modo molto comune di elaborare grandi quantità di file, in cui le applicazioni possono depositare i propri file in un bucket in OCI Object Storage e quando questi file vengono depositati, viene generato un evento che consente di attivare una funzione per scrivere l'URL di questo file in OCI Streaming.

Nota: possiamo immaginare questa soluzione solo con alcune applicazioni di origine che salvano il contenuto dei file in OCI Streaming mentre la nostra applicazione legge solo questo contenuto, ma non è una buona prassi trasferire grandi volumi di dati all'interno di una coda Kakfa. Per fare questo, il nostro approccio utilizzerà un pattern chiamato Claim-Check, che farà esattamente come la nostra proposta, invece di inviare il file attraverso la coda dei messaggi, invieremo il riferimento a questo file. Delegheremo la lettura del file all'applicazione che sarà incaricata di elaborarlo.

Questa esercitazione include i seguenti componenti: OCI Object Storage, Events Service, Functions e Streaming.

Alla fine di questa catena, avremo l'applicazione che consuma la coda di streaming, tuttavia, non discuteremo come verrà elaborato il file.

img.png

Obiettivi

Prerequisiti

Task 1: creare l'istanza di streaming OCI

OCI Streaming è un servizio di streaming gestito simile a Kafka. Possiamo sviluppare applicazioni utilizzando le API Kafka e gli SDK comuni sul mercato. In questo task, creeremo un'istanza di OCI Streaming e la configureremo per essere eseguita in entrambe le applicazioni per pubblicare e utilizzare un elevato volume di dati.

  1. Eseguire il login a OCI Console, fare clic su Analytics e AI e Streams.

  2. Selezionare Compartimento e fare clic su Crea flusso.

    create-stream.png

  3. Immettere il Nome flusso dell'istanza di flusso e mantenere gli altri parametri con i valori predefiniti. Fare clic su Crea per inizializzare l'istanza e attendere lo stato Attivo.

    salva-crea-stream.png

    Nota:

    • Nel processo di creazione dello streaming è possibile selezionare Crea automaticamente un pool di flussi predefinito, in modo che il pool predefinito venga creato automaticamente.

    • Puoi creare l'istanza di flusso in una subnet privata. In questo caso, l'attenzione per la funzione nel task 4 deve essere sulla stessa subnet privata o in una subnet che ha accesso all'istanza di flusso della subnet privata. Controllare la VCN, le subnet, gli elenchi di sicurezza, il gateway di servizi o altri componenti di sicurezza. Assicurarsi che la funzione possa accedere all'istanza di streaming OCI.

  4. Fare clic sul collegamento DefaultPool.

    default-pool-option.png

  5. Fare clic su Impostazioni di connessione Kafka e visualizzare le impostazioni di connessione. Prendere nota delle informazioni necessarie nei task successivi.

    stream-conn-settings.png

    kafka-conn.png

Task 2: creare un bucket di storage degli oggetti OCI

Dobbiamo creare un bucket. I bucket sono container logici per la memorizzazione degli oggetti, pertanto tutti i file utilizzati per questa demo verranno memorizzati in questo bucket.

  1. Aprire la console OCI e passare a Storage, Bucket. Nella sezione Bucket selezionare Compartimento. Il compartimento sarà uguale all'istanza di streaming OCI creata nel task 1.

    selezionare-compartment.png

  2. Fare clic su Crea gruppo e immettere un valore in Nome gruppo. Mantenere gli altri parametri con i valori predefiniti e fare clic su Crea.

    create-bucket.png

    Possiamo vedere il bucket creato.

    bucket - dataflow.png

    Nota: rivedere i criteri IAM OCI per il bucket. Se si desidera utilizzare questi bucket nelle applicazioni demo, è necessario impostare i criteri. Per ulteriori informazioni, consulta la panoramica dello storage degli oggetti e i criteri IAM OCI.

Task 3: attivare il bucket di storage degli oggetti OCI per i servizi OCI Events

È necessario abilitare il bucket per emettere eventi. Pertanto, fare clic sui dettagli del bucket e cercare il collegamento Emetti modifica eventi oggetto, quindi attivarlo.

img_8.png

Task 4: Crea funzioni OCI

Per eseguire il task seguente, scaricare il codice da qui: OCI_Streaming_Claim_Check.zip.

Task 5: configurare gli eventi OCI

Configurare una regola evento per attivare la funzione in modo da ottenere le informazioni sul bucket e inviarle a OCI Streaming.

  1. Selezionare lo stesso compartimento per la regola e fare clic su Crea regola.

    img_10.png

  2. Immettere le informazioni riportate di seguito.

    1. Nella sezione Condizione regole.

      • Condizione: Event Type.
      • Nome servizio: Object Storage.
      • Tipo di evento: Object-Create, Object-Delete, Object-Update.
    2. Nella sezione Azione.

      • Tipo di azione: Functions.
      • Compartimento funzione: <your function compartment name>.
      • Applicazione funzione: <your function app, in this example ocistreaming-app>.
      • Funzione: fn_stream.

    img_9.png

Task 6: Prova il tuo circuito di eventi

Nota: per le reti private, il codice di test deve essere eseguito in un bastion connesso alla stessa subnet privata del servizio di streaming OCI.

Nel pacchetto del codice sorgente OCI_Streaming_Claim_Check.zip è possibile trovare una cartella denominata monitoring e un file denominato consume.py. Possiamo utilizzare questo codice per monitorare e testare se la soluzione funziona correttamente.

Dobbiamo configurare il codice.

img_11.png

Dopo aver configurato i parametri del flusso, è possibile eseguire il codice e verificare il circuito, ovvero bucket, evento, funzione e streaming.

img_12.png

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.