Nota

Invia messaggi al flusso Kafka con autenticazione principal delle risorse mediante OCI Functions

Introduzione

Scopri la perfetta sinergia tra le funzioni di Oracle Cloud Infrastructure (OCI) e lo streaming OCI nell'orchestrazione delle pipeline di dati in tempo reale. In questo tutorial esploreremo un approccio sicuro ed efficiente alla produzione dei messaggi, sfruttando il metodo di autenticazione del principal delle risorse Oracle e il pattern di progettazione singleton. Scopri come l'autenticazione del principal delle risorse semplifica la gestione della sicurezza autenticando perfettamente le funzioni serverless con i servizi di streaming OCI, mentre il pattern singleton ottimizza l'utilizzo delle risorse e migliora l'efficienza della produzione dei messaggi. Scopriamo la convergenza tra OCI Functions e OCI Streaming, consentendo agli sviluppatori di progettare senza problemi soluzioni solide e scalabili basate sugli eventi.

OCI Streaming: OCI dispone di una vasta gamma di strumenti per la gestione dei dati nel cloud, con OCI Streaming uno di questi servizi su misura per flussi di dati in tempo reale con throughput elevato. Sfruttando lo streaming OCI, gli sviluppatori possono creare pipeline di dati scalabili e affidabili che incorporano, elaborano e distribuiscono in modo efficiente i flussi di dati.

OCI Functions: OCI Functions è una piattaforma completamente gestita, multi-tenant, altamente scalabile, on-demand e Functions-as-a-Service. Si basa su OCI di livello aziendale e si basa sul motore open source Fn Project. Utilizza OCI Functions (a volte abbreviato in Functions e precedentemente noto come Oracle Functions) quando vuoi concentrarti sulla scrittura di codice per soddisfare le esigenze aziendali.

Autenticazione principal risorsa: è possibile utilizzare un principal risorsa per autenticare e accedere alle risorse OCI. Il principal risorsa è costituito da un token di sessione temporaneo e da credenziali sicure che consentono alle funzioni OCI di autenticarsi in altri servizi OCI, come lo streaming OCI.

Nota:

Obiettivi

Prerequisiti

Task 1: Impostazione dei gruppi dinamici

Andare al dominio, fare clic su Gruppi dinamici e creare i gruppi riportati di seguito.

ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}

Task 2: Creare criteri

Andare a Criteri e creare i criteri riportati di seguito.

Allow dynamic-group MyFunctions to {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME, STREAM_PRODUCE} in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to read repos in compartment YOUR-COMPARTMENT-NAME

Task 3: Crea OCI Container Registry

  1. Andare a Servizi sviluppatore, fare clic su Container di registro e creare un repository privato per l'immagine Fn.

    Nome: lab/fn-java-streaming.

    T3_1

  2. Controllare i repository e prendere nota dello spazio di nomi.

    T3_1

  3. Aprire la shell del terminale in cui sono installate l'interfaccia CLI OCI e Docker e procedere con il login al registro. Controlla qual è l'URL corretto per la tua regione. In questa esercitazione viene utilizzato Brasile orientale (San Paolo) dove l'URL del registro è gru.ocir.io.

    docker login gru.ocir.io
    Username: <your container namespace>/youruser
    Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
    

    T3_3

Task 4: creare le funzioni OCI Java per ricevere il messaggio e pubblicare nell'argomento di streaming OCI

Nota Assicurarsi di selezionare la subnet privata, la stessa subnet del pool di flussi.

  1. Andare a Servizi sviluppatore, in Funzioni, fare clic su Applicazioni, quindi su Crea applicazione.

    T9_1

  2. Crea alcune configurazioni per memorizzare le impostazioni di streaming OCI.

    Nota Queste variabili di configurazione vengono utilizzate all'interno di questo codice di esempio Java di esercitazione per produrre messaggi nel flusso. Assicurarsi di passare quelli corretti dall'ambiente in uso.

    Nome segreto Valore
    BOOTSTRAP_SERVERS incollare i server Stream Pool Bootstrap sulla porta 9092
    STREAM_POOL_OCID incollare l'OCID del pool di flussi
    STREAM_TOPIC_NAME incollare il nome del flusso

    T4_2

  3. Andare alla shell del terminale in cui sono installati Docker, CLI OCI, CLI Fn Project ed eseguire i comandi riportati di seguito per inizializzare la funzione.

    Nota: se sono stati eseguiti i task, il comando di login Docker è già stato eseguito, in caso contrario, procedere con i passi di login Docker nel task 3.

    fn create context oci-cloud --provider oracle
    fn use context oci-cloud
    fn update context oracle.compartment-id PASTE_YOUR_COMPARTMENT_OCID
    fn update context api-url https://functions.sa-saopaulo-1.oraclecloud.com
    fn update context registry gru.ocir.io/PASTE_YOUR_REGISTRY_NAMESPACE/lab
    

    Nota: in questa esercitazione viene utilizzata l'area Est del Brasile (San Paolo). Se si utilizza un'area diversa, è necessario modificare le posizioni api-url e registro.

  4. Ottenere il codice di esempio della funzione Java da qui: fn-java-streaming.zip ed estrarlo sul computer shell della console bastion.

    # check your file is there
    ls -lrt
    # unzip the file
    unzip fn-java-streaming.zip
    

    T9_1

    Questo semplice progetto di codice Java produrrà un messaggio all'argomento denominato my-pvt-topic dal pool di flussi. Utilizzerà i valori di configurazione Fn creati nel passo 3.

    • HelloFunction.java.

      T9_1

    • KafkaProducerSingleton.java.

      T9_1

  5. Creare il nuovo codice e distribuire la funzione.

    cd fn-java-streaming
    ls -lrt
    fn deploy --app fn-lab
    

    T9_1

    T9_1

  6. Richiamare la funzione.

    # Invoke the function to check if it is working as expected.
    echo -n 'Hello from OSS' | fn invoke fn-lab fn-java-streaming
    

    T9_1

    Nota: la prima chiamata può richiedere fino a 1 minuto per chiamare la funzione.

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.