Funzioni QuickStart sull'host locale

Scopri come eseguire rapidamente l'impostazione e l'esecuzione su un host locale utilizzando questa funzione OCI QuickStart.

A. Impostare la tenancy

1. Creare gruppi e utenti

Se non esistono già utenti e gruppi idonei:

  1. Collegarsi alla console come amministratore della tenancy.
  2. Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Domini.
  3. Creare un nuovo gruppo selezionando Gruppi, quindi Crea gruppo.
    Questa immagine mostra la finestra di dialogo Crea gruppo, con campi Nome e Descrizione vuoti.
  4. Creare un nuovo utente selezionando Utenti, quindi Crea utente.
    Questa immagine mostra la finestra di dialogo Crea utente, con i campi Nome, Descrizione, E-mail e Conferma e-mail vuoti.
  5. Aggiungere un utente a un gruppo selezionando Gruppi, il nome del gruppo e quindi Aggiungi utente al gruppo.
    Questa immagine mostra la finestra di dialogo Aggiungi utente al gruppo, con un campo Utenti vuoto.

Per ulteriori informazioni, vedere Note di configurazione.

2. Crea compartimento

Se un compartimento adatto in cui creare risorse di rete e risorse OCI Functions non esiste già:

  1. Collegarsi alla console come amministratore della tenancy.
  2. Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Compartimenti.
  3. Selezionare Crea compartimento.
    Questa immagine mostra la finestra di dialogo Crea compartimento, con campi Nome e Descrizione vuoti.

Per ulteriori informazioni, vedere Note di configurazione.

3. Creare VCN e subnet

Se una VCN appropriata in cui creare le risorse di rete non esiste già:

  1. Collegarsi alla console come amministratore della tenancy.
  2. Aprire il menu di navigazione , selezionare Networking, quindi selezionare Reti cloud virtuali.
  3. Selezionare Avvia procedura guidata VCN per creare una nuova VCN.
  4. Nella finestra di dialogo Avvia procedura guidata VCN, selezionare VCN con connettività Internet e selezionare Avvia procedura guidata VCN.
    Questa immagine mostra la finestra di dialogo Avvia procedura guidata VCN, con l'opzione "Crea VCN con connettività Internet" selezionata.
  5. Immettere un nome per la nuova VCN, selezionare Avanti, quindi selezionare Crea per creare la VCN insieme alle risorse di rete correlate.

Per ulteriori informazioni, vedere Note di configurazione.

4. Crea criterio per il gruppo e il servizio

Se uno o più utenti di OCI Functions non sono un amministratore della tenancy:

  1. Collegarsi alla console come amministratore della tenancy.
  2. Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Criteri.
  3. Selezionare Crea criterio, specificare un nome e una descrizione per il nuovo criterio e selezionare il compartimento radice della tenancy.

  4. Utilizzare Policy Builder per creare il criterio. Selezionare Funzioni dalla lista dei casi d'uso dei criteri e basare il criterio sul modello di criteri Consenti agli utenti di creare, distribuire e gestire funzioni e applicazioni.

    Questa immagine mostra la finestra di dialogo Crea criterio, con i campi Nome, Descrizione e Compartimento vuoti. Il modello "Consenti agli utenti di creare, distribuire e gestire funzioni e applicazioni utilizzando Cloud Shell" è visualizzato nel campo Modelli di criteri comuni. Vengono visualizzate diverse istruzioni dei criteri.

    Il modello di criteri include le istruzioni dei criteri riportate di seguito.

    • Allow group <group-name> to use cloud-shell in tenancy
    • Allow group <group-name> to manage repos in tenancy
    • Allow group <group-name> to read objectstorage-namespaces in tenancy
    • Allow group <group-name> to manage logging-family in tenancy
    • Allow group <group-name> to read metrics in tenancy
    • Allow group <group-name> to manage functions-family in tenancy
    • Allow group <group-name> to use virtual-network-family in tenancy
    • Allow group <group-name> to use apm-domains in tenancy
    • Allow group <group-name> to read vaults in tenancy
    • Allow group <group-name> to use keys in tenancy
    • Allow service faas to use apm-domains in tenancy
    • Allow service faas to read repos in tenancy where request.operation='ListContainerImageSignatures'
    • Allow service faas to {KEY_READ} in tenancy where request.operation='GetKeyVersion'
    • Allow service faas to {KEY_VERIFY} in tenancy where request.operation='Verify'

    Se necessario, è possibile limitare queste istruzioni dei criteri in base al compartimento.

Per ulteriori informazioni, vedere Note di configurazione.

B. Crea applicazione

1. Creare la prima applicazione
  1. Accedere alla console come sviluppatore di funzioni.
  2. Aprire il menu di navigazione e selezionare Developer Services. In Funzioni, selezionare Applicazioni.
  3. Selezionare l'area in uso con OCI Functions.
  4. Selezionare Crea applicazione.
    Questa immagine mostra la finestra di dialogo Nuovo applicatore, con i campi Nome, VCN e Subnet vuoti.
  5. Specificare:
    • helloworld-app come nome per la nuova applicazione. La prima funzione verrà distribuita in questa applicazione e verrà specificata durante il richiamo della funzione.
    • La VCN e la subnet in cui eseguire la funzione. Tenere presente che una subnet pubblica richiede un gateway Internet nella VCN e una subnet privata richiede un gateway di servizi nella VCN.
  6. Selezionare Crea.

Per ulteriori informazioni, consulta istruzioni dettagliate.

C. Impostare l'ambiente di sviluppo host locale

1. Installa e avvia Docker

In una finestra terminale dell'ambiente di sviluppo:

  1. Verificare che il Docker sia installato immettendo:
    docker version

    Se viene visualizzato un messaggio di errore che indica che Docker non è installato, è necessario installare Docker prima di continuare. Consulta la documentazione Docker per la tua piattaforma (per Oracle Linux, fai clic qui).

    Supponendo che Docker sia installato, andare alla sezione Prerequisiti della home page di Fn Project sul sito GitHub e verificare che la versione installata di Docker sia almeno la versione minima specificata. In caso contrario, reinstallare Docker prima di continuare.

  2. Avvia l'immagine Docker standard hello-world come container per confermare che Docker è in esecuzione immettendo:
    docker run hello-world

    Se viene visualizzato un messaggio di errore che indica che Docker non è in esecuzione, è necessario avviare il daemon Docker prima di continuare. Consultare la documentazione Docker.

Per ulteriori informazioni, vedere Note di configurazione.

2. Imposta chiave di firma API e profilo OCI
  1. Accedere alla console come sviluppatore di funzioni.
  2. Nel menu di navigazione selezionare il menu Profilo Icona menu Profilo e quindi selezionare Impostazioni utente o Profilo personale, a seconda dell'opzione visualizzata.
  3. In Risorse selezionare Chiavi API, quindi selezionare Aggiungi chiave API.
  4. Selezionare Genera coppia di chiavi API nella finestra di dialogo Aggiungi chiave API.
    Questa immagine mostra la finestra di dialogo Aggiungi chiave API, con l'opzione Genera coppia di chiavi API selezionata.
  5. Selezionare Scarica chiave privata e salvare il file di chiavi private (come file .pem) nella directory ~/.oci. (Se la directory ~/.oci non esiste già, crearla ora).
  6. Selezionare Aggiungi per aggiungere la nuova chiave di firma API alle impostazioni utente.

    Viene visualizzata la finestra di dialogo Anteprima file di configurazione, contenente uno snippet di file di configurazione con informazioni di autenticazione di base per un profilo denominato DEFAULT (inclusa l'impronta della chiave di firma API appena creata).

    Questa immagine mostra la finestra di dialogo Anteprima file di configurazione, con le informazioni di autenticazione di base per un profilo denominato Predefinito.

  7. Copiare lo snippet del file di configurazione visualizzato nella casella di testo e chiudere la finestra di dialogo Anteprima file di configurazione.
  8. In un editor di testo, aprire il file ~/.oci/config e incollare lo snippet nel file. (Se il file ~/.oci/config non esiste già, crearlo ora).
  9. Nell'editor di testo, modificare il profilo nello snippet appena incollato, come indicato di seguito.
    • Modificare il nome del profilo da [DEFAULT] in un nome a propria scelta (ad esempio, [functions-developer-profile]). Si noti che il file ~/.oci/config non può contenere due profili con lo stesso nome.
    • Modificare il valore del parametro key_file del profilo per specificare il percorso del file di chiavi private (file .pem) scaricato in precedenza.
  10. Nell'editor di testo, salvare le modifiche apportate al file ~/.oci/config e chiudere l'editor di testo.
  11. In una finestra di terminale, modificare le autorizzazioni per il file di chiavi private (file .pem) per garantire che solo l'utente possa leggerlo, immettendo:
    chmod go-rwx ~/.oci/<private-key-file-name>.pem

Per ulteriori informazioni sulla impostazione di una chiave di firma API e sulla creazione di un profilo, vedere le Note di configurazione.

3. Installa CLI progetto Fn

In una finestra terminale dell'ambiente di sviluppo:

  1. Installare l'interfaccia CLI di Fn Project utilizzando le istruzioni appropriate riportate di seguito per l'ambiente in uso.
  2. Verificare che l'interfaccia CLI di Fn Project sia stata installata immettendo:
    fn version

Per ulteriori informazioni, vedere Note di configurazione.

4. Imposta provider contesto CLI progetto Fn --oracle

In una finestra terminale dell'ambiente di sviluppo:

  1. Creare un nuovo contesto CLI del progetto Fn immettendo:
    fn create context <my-context> --provider oracle

    Si noti che si specifica --provider oracle per abilitare l'autenticazione e l'autorizzazione utilizzando la firma delle richieste di Oracle Cloud Infrastructure, le chiavi private, i gruppi di utenti e i criteri che concedono le autorizzazioni a tali gruppi di utenti.

  2. Specificare che l'interfaccia CLI di Fn Project deve utilizzare il nuovo contesto immettendo:
    fn use context <my-context>
  3. Configurare il nuovo contesto CLI del progetto Fn con il nome del profilo OCI creato per l'uso con OCI Functions (ad esempio, [functions-developer-profile]), immettendo:
    fn update context oracle.profile <profile-name>

Per ulteriori informazioni, vedere Note di configurazione.

5. Completa configurazione contesto CLI progetto Fn

In una finestra terminale dell'ambiente di sviluppo:

  1. Configurare il nuovo contesto CLI del progetto Fn con l'OCID del compartimento di cui si desidera essere proprietari delle funzioni distribuite
    fn update context oracle.compartment-id <compartment-ocid>
  2. Configurare il nuovo contesto con l'endpoint API-url da utilizzare quando si chiama l'API OCI immettendo:
    fn update context api-url <api-endpoint>

    dove <api-endpoint> è uno degli endpoint della lista degli endpoint delle funzioni nell'API delle funzioni, nel formato https://functions.<region-identifier>.oci.oraclecloud.com. Ad esempio:

    fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
  3. Configurare il contesto CLI di Fn Project con l'indirizzo Oracle Cloud Infrastructure Registry nell'area e nella tenancy correnti che si desidera utilizzare con le funzioni OCI:

    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>

    dove <repo-name-prefix> è il prefisso scelto per il repository di Oracle Cloud Infrastructure Registry in cui memorizzare le immagini per la funzione. Ad esempio:

    fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
  4. Configurare il contesto CLI di Fn Project con l'OCID del compartimento per i repository da e verso i quali si desidera che le funzioni OCI eseguano il push e il pull delle immagini delle funzioni, immettendo:

    fn update context oracle.image-compartment-id <compartment-ocid>

    Ad esempio:

    fn update context oracle.image-compartment-id ocid1.compartment.oc1..aaaaaaaaquqe______z2q

    Se non si specifica un valore per oracle.image-compartment-id, OCI Functions esegue il push e il pull delle immagini nei repository e dai repository nel compartimento radice.

Per ulteriori informazioni, vedere Note di configurazione.

6. Genera token autorizzazione
  1. Accedere alla console come sviluppatore di funzioni.
  2. Nel menu di navigazione selezionare il menu Profilo Icona menu Profilo e quindi selezionare Impostazioni utente o Profilo personale, a seconda dell'opzione visualizzata.
  3. Nella pagina Token di autenticazione selezionare Genera token.
  4. Immettere una descrizione significativa per il token di autenticazione nella finestra di dialogo Genera token e selezionare Genera token. Viene visualizzato il nuovo token di autenticazione.
  5. Copiare immediatamente il token di autenticazione in una posizione sicura da cui è possibile recuperarlo in seguito, poiché il token di autenticazione non verrà più visualizzato nella console.
  6. Chiudere la finestra di dialogo Genera token.

Per ulteriori informazioni, vedere Note di configurazione.

7. Accedi al registro

Nella pagina Guida introduttiva della console:

  1. Copiare il comando seguente:

    docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io

    Ad esempio:

    docker login -u 'ansh81vru1zp/jdoe@acme.com' phx.ocir.io

    Se la tenancy è federata con Oracle Identity Cloud Service, il formato sarà leggermente diverso. Ad esempio:

    docker login -u 'ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com' phx.ocir.io
  2. Nella finestra del terminale, incollare il comando appena copiato ed eseguirlo.
  3. Quando viene richiesta una password, immettere il token di autenticazione di Oracle Cloud Infrastructure creato e copiato in precedenza. Ad esempio, 6aN...6MqX

    Ora puoi iniziare a creare, distribuire e richiamare funzioni.

Per ulteriori informazioni, vedere Note di configurazione.

D. Creare, distribuire e richiamare la funzione

1. Crea la tua prima funzione

Nella finestra del terminale:

  1. Creare una funzione helloworld java immettendo:

    fn init --runtime java hello-java

    Viene creata una directory denominata hello-java contenente:

    • un file di definizione della funzione denominato func.yaml
    • una directory /src contenente i file e le directory di origine per la funzione helloworld
    • un file di configurazione Maven denominato pom.xml che specifica le dipendenze necessarie per compilare la funzione

    Java è solo uno dei diversi linguaggi supportati.

    Per ulteriori informazioni, consulta istruzioni dettagliate.

2. Distribuire la prima funzione

Nella finestra del terminale:

  1. Modificare la directory nella directory hello-java creata nel passo precedente:
    cd hello-java
  2. Immettere il comando Fn Project seguente per creare la funzione e le relative dipendenze sotto forma di immagine Docker denominata hello-java, eseguire il push dell'immagine nel registro Docker specificato e distribuire la funzione nelle funzioni OCI nell'applicazione helloworld-app creata in precedenza:
    fn -v deploy --app helloworld-app
  3. (Facoltativo) Verificare che la funzione sia stata distribuita in OCI Functions selezionando Funzioni (in Risorse nella pagina dei dettagli per l'applicazione helloworld-app) e notare che ora viene visualizzata la funzione hello-java.

Per ulteriori informazioni, consulta istruzioni dettagliate.

3. Richiamare la prima funzione

Nella finestra del terminale:

  1. Richiamare la funzione hello-java immettendo:

    fn invoke helloworld-app hello-java

    Viene visualizzato il messaggio "Hello world!".

  2. Richiamare la funzione hello-java con il parametro 'John' immettendo:

    echo -n 'John' | fn invoke helloworld-app hello-java

    Viene visualizzato il messaggio 'Hello John!'.

Complimenti. La prima funzione è stata appena creata, distribuita e richiamata utilizzando OCI Functions.

Per ulteriori informazioni, consulta istruzioni dettagliate.

4. Passi successivi

Dopo aver creato, distribuito e richiamato una funzione, è possibile eseguire le operazioni riportate di seguito.

Procedura completata.