Creazione e distribuzione di funzioni

Scopri come creare e distribuire funzioni in OCI Functions utilizzando i comandi CLI di Fn Project.

Utilizzare i comandi CLI di Fn Project per creare e distribuire funzioni in OCI Functions.

Suggerimento

Se non si riesce a completare correttamente uno dei passi di questo argomento, esaminare le soluzioni per individuare i problemi più comuni (vedere Risoluzione dei problemi delle funzioni OCI).

Utilizzo dei comandi CLI di Fn Project

Suggerimento

Di tanto in tanto, vengono rilasciate nuove versioni dell'interfaccia CLI di Fn Project. Ti consigliamo di controllare regolarmente che sia installata l'ultima versione. Per ulteriori informazioni, vedere Passi per l'aggiornamento dell'interfaccia CLI di Fn Project.

Per creare e distribuire una funzione in OCI Functions utilizzando i comandi CLI di Fn Project:

  1. Confermare di aver completato i passi nella Guida alle funzioni QuickStart.
  2. Se l'applicazione a cui si desidera aggiungere la funzione non esiste ancora in OCI Functions, crearla ora utilizzando l'interfaccia CLI Fn Project o la console. Ad esempio, è possibile creare una nuova applicazione denominata acmeapp. Vedere Creazione di applicazioni.

  3. Accedere all'ambiente di sviluppo come sviluppatore di funzioni.

  4. In una finestra di terminale, passare alla directory che contiene il codice funzione.

  5. Inizializzare la funzione immettendo:

    fn init --runtime <runtime-language> <function-name>

    Dove:

    • <runtime-language> è uno dei linguaggi runtime supportati (attualmente sono supportati go, java, node, python, ruby e dotnet (per C#).
    • <function-name> è il nome da utilizzare come nome di funzione. Se non si specifica un nome di funzione, viene utilizzato il nome della directory corrente (in lettere minuscole). Evitare di fornire informazioni riservate.

    Ad esempio:

    fn init --runtime java acme-func

    Viene creata una directory con il nome della funzione specificato contenente:

    • File di definizione della funzione denominato func.yaml, contenente la quantità minima di informazioni necessarie per creare ed eseguire la funzione. Per ulteriori informazioni sui parametri aggiuntivi che è possibile includere in un file func.yaml, consultare la documentazione di Fn Project.
    • Una directory /src contenente i file e le directory di origine.
    • File di configurazione Maven denominato pom.xml che specifica gli artifact e le dipendenze del progetto necessari per compilare la funzione dai file di origine.

    Si noti che, a seconda della lingua di runtime specificata, il comando fn init potrebbe creare una directory /example contenente il codice per un'applicazione helloworld. Per motivi di buona prassi, probabilmente si desidera eliminare la directory /example.

  6. Spostarsi nella directory appena creata.
  7. Immettere il comando Fn Project seguente per creare la funzione e le relative dipendenze come immagine Docker, eseguire il push dell'immagine nel registro Docker specificato e distribuire la funzione nelle funzioni OCI:

    fn -v deploy --app <app-name>

    dove <app-name> è il nome dell'applicazione nelle funzioni OCI a cui si desidera aggiungere la funzione. Ad esempio:

    fn -v deploy --app acmeapp

    L'opzione -v mostra semplicemente maggiori dettagli sulle operazioni eseguite dai comandi di Fn Project (vedere Utilizzo dell'interfaccia CLI di Fn Project con le funzioni OCI).

    Si noti che è possibile creare, eseguire il push e distribuire la funzione utilizzando comandi Fn Project separati, anziché il singolo comando fn deploy.

    Si noti inoltre che se si aggiunge la funzione a un'applicazione per cui è abilitato un criterio di verifica della firma, è necessario specificare opzioni aggiuntive. Vedere Firma di immagini di funzioni e applicazione dell'uso di immagini con segno dal registro.

  8. (Facoltativo) Supponendo che il registro Docker specificato sia Oracle Cloud Infrastructure Registry, utilizzare la console per confermare che l'immagine è stata sottoposta a PUSH su Oracle Cloud Infrastructure Registry:
    1. Aprire il menu di navigazione e selezionare Developer Services. In Container e artifact selezionare Container di registro.
    2. Scegliere l'area del registro.

      Tutti i repository vengono visualizzati nel registro a cui è possibile accedere. L'immagine sottoposta a PUSH si trova in un nuovo repository privato con un nome composto da:

      Ad esempio, il nuovo repository potrebbe essere denominato acme-repo/acme-func.

    3. Selezionare il nome del nuovo repository. Vengono visualizzati i dettagli dell'immagine sottoposta a push in Oracle Cloud Infrastructure Registry
  9. (Facoltativo) Utilizzare la console per confermare che la funzione è stata distribuita correttamente in OCI Functions:

    1. Aprire il menu di navigazione e selezionare Developer Services. In Funzioni, selezionare Applicazioni.
    2. Selezionare il compartimento specificato nel contesto CLI di Fn Project (vedere Creazione di un contesto CLI di Fn Project per connettersi a Oracle Cloud Infrastructure).

      La pagina Applicazioni mostra le applicazioni nel compartimento, inclusa quella specificata nel comando fn deploy.

    3. Selezionare il nome dell'applicazione specificata nel comando fn deploy per visualizzare le funzioni al suo interno.

      La pagina Funzioni mostra che la funzione è stata distribuita in OCI Functions.