Funzioni QuickStart su un'istanza di OCI Compute
Scopri come eseguire rapidamente l'impostazione e l'esecuzione su un'istanza di computazione OCI utilizzando queste funzioni OCI QuickStart.
A. Impostare la tenancy
Se non esistono già utenti e gruppi idonei:
- Collegarsi alla console come amministratore della tenancy.
- Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Domini.
- Selezionare un dominio e selezionare la scheda User Management.
- Creare un nuovo gruppo selezionando Crea gruppo nella sezione Gruppi.
- Creare un nuovo utente selezionando Crea nella sezione Utenti.
- Aggiungere un utente a un gruppo selezionando il nome del gruppo, quindi Assegna utente a gruppo nella scheda Utenti.
Per ulteriori informazioni, vedere Note di configurazione.
Se un compartimento adatto in cui creare risorse di rete e risorse OCI Functions non esiste già:
- Collegarsi alla console come amministratore della tenancy.
- Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Compartimenti.
- Selezionare Crea compartimento.
Per ulteriori informazioni, vedere Note di configurazione.
Se una VCN appropriata in cui creare le risorse di rete non esiste già:
- Collegarsi alla console come amministratore della tenancy.
- Aprire il menu di navigazione , selezionare Networking, quindi selezionare Reti cloud virtuali.
- Selezionare Avvia procedura guidata VCN dal menu Azioni per creare una nuova VCN.
- Nel pannello Avvia procedura guidata VCN, selezionare Crea VCN con connettività Internet e selezionare Avvia procedura guidata VCN.
- 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.
Se uno o più utenti di OCI Functions non sono un amministratore della tenancy:
- Collegarsi alla console come amministratore della tenancy.
- Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Criteri.
-
Selezionare Crea criterio, specificare un nome e una descrizione per il nuovo criterio e selezionare il compartimento radice della tenancy.
-
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.
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
- Accedere alla console come sviluppatore di funzioni.
- Aprire il menu di navigazione e selezionare Developer Services. In Funzioni, selezionare Applicazioni.
- Selezionare l'area in uso con OCI Functions.
- Selezionare Crea applicazione
- 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.
- Selezionare Crea.
Per ulteriori informazioni, consulta istruzioni dettagliate.
C. Impostare un'istanza di OCI Compute
- Collegarsi alla console come amministratore della tenancy.
- Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
- Selezionare il compartimento in cui creare le risorse di rete e le risorse OCI Functions.
- Se nel compartimento non esiste già un'istanza di computazione adatta, selezionare Crea istanza e:
- selezionare il compartimento, la VCN e le subnet da utilizzare con OCI Functions
- specificare che un indirizzo IP pubblico deve essere assegnato alla nuova istanza di computazione
- selezionare il file che contiene la chiave SSH per accedere alla nuova istanza di computazione
-
Nella pagina dei dettagli dell'istanza, copiare l'OCID e l'indirizzo IP pubblico dell'istanza di computazione da utilizzare come ambiente di sviluppo.
Per ulteriori informazioni, vedere Creazione di un'istanza.
Creare un nuovo gruppo dinamico per includere l'istanza di computazione:
- Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Domini. In Dominio di Identity, selezionare Gruppi dinamici.
- Creare un nuovo gruppo dinamico.
-
Immettere una regola che includa l'OCID dell'istanza di computazione:
ANY {instance.id = '<instance-ocid>'}
Per ulteriori informazioni, vedere Gestione dei gruppi dinamici.
Creare un criterio per concedere al nuovo gruppo dinamico l'accesso alle risorse delle funzioni, alle risorse di rete e a Oracle Cloud Infrastructure Registry:
- Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Criteri.
-
Selezionare Crea criterio e utilizzare l'editor manuale di Policy Builder per creare un nuovo criterio con le istruzioni criterio riportate di seguito.
Allow dynamic-group <dynamic-group-name> to manage functions-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to use virtual-network-family in compartment <compartment-name>
Allow dynamic-group <dynamic-group-name> to read repos in tenancy
Per ulteriori informazioni, vedere Gestione dei criteri.
D. Impostare l'ambiente di sviluppo dell'istanza di computazione OCI
In una finestra terminale dell'ambiente di sviluppo:
- 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.
- 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.
In una finestra terminale dell'ambiente di sviluppo:
- Installare l'interfaccia CLI di Fn Project utilizzando le istruzioni appropriate riportate di seguito per l'ambiente in uso.
- Linux o MacOS: immettere:
curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
- MacOS mediante Homebrew: immettere:
brew update && brew install fn
- Windows: seguire le istruzioni per installare Fn Client su GitHub.
- Linux, MacOS o Windows: scaricare ed eseguire il file binario dalla pagina Release progetto Fn su GitHub.
- Linux o MacOS: immettere:
- Verificare che l'interfaccia CLI di Fn Project sia stata installata immettendo:
fn version
Per ulteriori informazioni, vedere Note di configurazione.
In una finestra terminale dell'ambiente di sviluppo:
- Creare un nuovo contesto CLI del progetto Fn immettendo:
fn create context <my-context> --provider oracle-ip
Si noti che si specifica
--provider oracle-ip
per abilitare l'autenticazione e l'autorizzazione utilizzando gli OCID dell'istanza, i gruppi dinamici e i criteri che concedono le autorizzazioni a tali gruppi dinamici. - Specificare che l'interfaccia CLI di Fn Project deve utilizzare il nuovo contesto immettendo:
fn use context <my-context>
Per ulteriori informazioni, vedere Note di configurazione.
In una finestra terminale dell'ambiente di sviluppo:
- 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>
- 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 formatohttps://functions.<region-identifier>.oci.oraclecloud.com
. Ad esempio:fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
-
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
<tenancy-namespace>
è lo spazio di nomi dello storage degli oggetti generato automaticamente dalla tenancy e<repo-name-prefix>
è un prefisso scelto per il repository di Oracle Cloud Infrastructure Registry in cui memorizzare le immagini per la funzione (per ulteriori informazioni, vedere Note di configurazione). Ad esempio:fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
-
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.
- Accedere alla console come sviluppatore di funzioni.
- Nel menu di navigazione selezionare il menu Profilo
e quindi selezionare Impostazioni utente o Profilo personale, a seconda dell'opzione visualizzata.
- Selezionare la scheda Token e chiavi, andare alla sezione Token di autenticazione e selezionare Genera token.
- 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.
- 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.
- Chiudere la finestra di dialogo Genera token.
Per ulteriori informazioni, vedere Note di configurazione.
In una finestra terminale dell'ambiente di sviluppo:
-
Immettere il seguente comando:
docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io
dove
<tenancy-namespace>
è lo spazio di nomi dello storage degli oggetti generato automaticamente dalla tenancy (per ulteriori informazioni, vedere Note di configurazione). 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
-
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.
E. Creare, distribuire e richiamare la funzione
Nella finestra del terminale:
-
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.
Nella finestra del terminale:
- Modificare la directory nella directory hello-java creata nel passo precedente:
cd hello-java
- 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
- (Facoltativo) Confermare che la funzione è stata distribuita in OCI Functions selezionando la scheda Funzioni (nella pagina dei dettagli per l'applicazione helloworld-app) e notando che ora viene visualizzata la funzione hello-java.
Per ulteriori informazioni, consulta istruzioni dettagliate.
Nella finestra del terminale:
-
Richiamare la funzione hello-java immettendo:
fn invoke helloworld-app hello-java
Viene visualizzato il messaggio "Hello world!".
-
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.
Dopo aver creato, distribuito e richiamato una funzione, è possibile eseguire le operazioni riportate di seguito.
- visualizzare i log delle funzioni nel servizio Oracle Cloud Infrastructure Logging o configurando un URL syslog (vedere Memorizzazione e visualizzazione dei log delle funzioni);
- esplorare le funzioni OCI utilizzando esempi su GitHub (vedere Esempi di Oracle Functions)
- richiamare una funzione utilizzando gli SDK (vedere Utilizzo degli SDK per richiamare le funzioni).
Procedura completata.