Creazione di funzioni da immagini Docker esistenti

Scopri come creare funzioni da immagini Docker esistenti con OCI Functions.

È possibile creare una nuova definizione di funzione nel server OCI Functions in diversi modi:

Quando si crea una nuova funzione basata su un'immagine Docker esistente, è necessario specificare i metadati della funzione da memorizzare nel server OCI Functions. Ad esempio, la durata massima per la quale la funzione può essere eseguita.

L'immagine esistente su cui si basa una nuova funzione deve essere adatta per l'uso con OCI Functions. In genere, per creare e inviare un'immagine appropriata, l'utente o qualcun altro utilizzerà i comandi CLI di Fn Project e/o i comandi CLI di Docker. Ad esempio, dopo aver scritto il codice funzione e un file func.yaml contenente i metadati della funzione (forse basati sulla funzione helloworld del modello e su func.yaml creata utilizzando fn init), è possibile:

  • Utilizzare fn build per creare una nuova immagine Docker dalla funzione.
  • Utilizzare docker push per eseguire il PUSH dell'immagine nel registro Docker.

Con l'immagine nel registro Docker, è possibile utilizzare la console, un comando CLI o un'operazione API per creare una funzione basata sull'immagine, come descritto in questo argomento.

    1. Nella pagina di elenco Applicazioni, selezionare l'applicazione in cui si desidera creare la funzione. Per informazioni su come trovare la pagina di elenco o l'applicazione, vedere Elenco di applicazioni.
    2. In Risorse, selezionare Funzioni.

      Viene visualizzata la pagina dell'elenco Funzioni. Tutte le funzioni nell'applicazione selezionata vengono visualizzate in una tabella.

    3. Selezionare il pulsante Crea funzione, selezionare Crea da immagine esistente e specificare i dettagli riportati di seguito.
      • Nome: un nome per la nuova funzione. Evitare di fornire informazioni riservate.
      • Repository: il repository nel Container Registry OCI nell'area corrente che contiene l'immagine.
      • Immagine: l'immagine esistente nel repository OCI Container Registry nell'area corrente. L'architettura dell'immagine deve essere compatibile con la forma dell'applicazione (vedere Specifica dell'architettura di calcolo su cui eseguire le funzioni).
      • Memoria: la quantità massima di memoria che la funzione può utilizzare durante l'esecuzione.
      • Timeout: il periodo di tempo massimo per il quale la funzione può essere eseguita.
      • Abilita accesso concorrente con provisioning eseguito: è possibile ridurre al minimo i ritardi iniziali durante il richiamo della funzione specificando un numero minimo di richiami di funzioni concorrenti per i quali si desidera che l'infrastruttura di esecuzione sia costantemente disponibile.

        Se si seleziona questa opzione, immettere un valore per PCU (Provisioned Concurrency Unit) per specificare il numero minimo di richiami di funzioni concorrenti. Il valore PCU effettivo immesso deve essere un multiplo di 10. Se Memoria è impostato su 256 MB, il valore delle PCU deve essere un multiplo di 20. Se Memoria è impostato su 128 MB, il valore delle PCU deve essere un multiplo di 40. Il numero totale di PCU disponibili dipende dalla dimensione della funzione, dal limite della tenancy e dal fatto che la concorrenza di cui è stato eseguito il provisioning sia stata abilitata per altre funzioni nella tenancy. Per ulteriori informazioni sull'accesso concorrente con provisioning eseguito, vedere Riduzione della latenza iniziale mediante l'accesso concorrente con provisioning eseguito.

      • Opzioni di applicazione tag: se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare le tag in formato libero a tale risorsa. Per applicare una tag defined, è necessario disporre delle autorizzazioni per utilizzare la tag namespace. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non si è certi di applicare le tag, saltare questa opzione o chiedere a un amministratore. È possibile applicare le tag in un secondo momento.
    4. Selezionare una delle opzioni seguenti.

      • Per creare la funzione nel server OCI Functions ora, selezionare Crea. La nuova funzione viene visualizzata nella console, nell'elenco delle funzioni dell'applicazione selezionata.
      • Per creare la funzione in un secondo momento utilizzando Resource Manager e Terraform, selezionare Salva come stack per salvare la definizione della risorsa come configurazione Terraform. Per ulteriori informazioni sul salvataggio degli stack dalle definizioni delle risorse, vedere Creazione di uno stack da una pagina di creazione delle risorse.
  • Utilizzo dell'interfaccia CLI 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 utilizzare l'interfaccia CLI di Fn Project per creare una nuova funzione nel server OCI Functions da un'immagine Docker esistente che è già stata sottoposta a PUSH nel registro Docker, effettuare le operazioni riportate di seguito.

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

    2. In una finestra di terminale, creare una nuova funzione immettendo:

      fn create function <app-name> <function-name> <image-name>

      Dove:

      • <app-name> è il nome di un'applicazione esistente in cui creare la nuova funzione.
      • <function-name> è il nome della nuova funzione che si desidera creare. Evitare di fornire informazioni riservate.
      • <image-name> è il nome dell'immagine esistente nel registro Docker su cui basare la nuova funzione. L'architettura dell'immagine deve essere compatibile con la forma dell'applicazione (vedere Specifica dell'architettura di calcolo su cui eseguire le funzioni).

      Ad esempio:

      fn create function acmeapp acme-func phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.3

      Viene creata una nuova funzione in OCI Functions, in base all'immagine esistente e con il nome specificato

    3. Verificare che la nuova funzione sia stata creata immettendo:

      fn list functions <app-name>

      Ad esempio:

      $ fn list functions acme-app
      
      NAME            IMAGE
      acme-func       phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.3

    Uso dell'interfaccia CLI OCI

    Utilizzare il comando oci fn function create e i parametri necessari per creare una funzione.

    oci fn function create --application-id <application-ocid> --display-name <function-name> --memory-in-mbs <memory> [OPTIONS]

    Per una lista completa di flag e opzioni di variabile per i comandi CLI OCI, vedere Riferimento alla riga di comando.

  • Eseguire l'operazione CreateFunction per creare una funzione.