Memorizzazione e visualizzazione dei log delle funzioni
Scopri come memorizzare e visualizzare i log delle funzioni con OCI Functions.
Quando viene richiamata una funzione, in genere si desidera accedere ai log della funzione per la risoluzione dei problemi. Il servizio Oracle Cloud Infrastructure Logging è l'opzione predefinita e consigliata per accedere, cercare e memorizzare i log delle funzioni. Se si abilita Oracle Cloud Infrastructure Logging per un'applicazione, i log di richiamo predefiniti vengono creati ogni volta che vengono richiamate le funzioni nell'applicazione. Vedere Utilizzo della console per abilitare e visualizzare i log delle funzioni in Oracle Cloud Infrastructure Logging. Per ulteriori informazioni sul contenuto dei log delle funzioni, vedere Dettagli per le funzioni.
In alternativa, potrebbero verificarsi delle occasioni in cui si desidera inviare i log delle funzioni a una destinazione di registrazione esterna come Papertrail. Per inviare i log a una destinazione di log esterna invece del servizio Oracle Cloud Infrastructure Logging, utilizzare l'interfaccia CLI di Fn Project per specificare un URL syslog. Vedere Utilizzo dei comandi CLI di Fn Project per specificare un URL syslog.
- Per node.js:
console.log('Entering Hello Node.js function');
- Per java:
System.err.println("Entering Java Hello World Function");
- Per andare:
fmt.Println("Entering Hello Go function")
Utilizzo della console per abilitare e visualizzare i log delle funzioni in Oracle Cloud Infrastructure Logging
Per abilitare e visualizzare i log delle funzioni nel servizio Oracle Cloud Infrastructure Logging, effettuare le operazioni riportate di seguito.
- Nella pagina di elenco Applicazioni selezionare l'applicazione con le funzioni per cui si desidera creare, abilitare e visualizzare i log. Per informazioni su come trovare la pagina di elenco o l'applicazione, vedere Elenco di applicazioni.
- Per creare e abilitare un nuovo log delle funzioni nel servizio Oracle Cloud Infrastructure Logging, effettuare le operazioni riportate di seguito.
- In Risorse, selezionare Log, selezionare il
- Compartimento: il compartimento in cui creare il nuovo log. Per impostazione predefinita, il compartimento corrente.
- Gruppo di log: il gruppo di log in cui creare il nuovo log. Selezionare un gruppo di log esistente oppure:
- Crea automaticamente un gruppo di log predefinito per creare un gruppo di log predefinito con un nome predefinito (DEFAULT_GROUP), se non esiste già.
- Creare un nuovo gruppo di log per creare un nuovo gruppo di log con un nome e una descrizione forniti.
- Nome log: il nome del nuovo log. Per impostazione predefinita, <application-name>_invoke .
- Conservazione log: la durata di conservazione dei dati di log.
, quindi selezionare Abilita log e specificare quanto segue. - Selezionare Abilita log per creare il nuovo log e il nuovo gruppo di log, se specificato.
Per ulteriori informazioni, vedere Abilitazione del log per una risorsa.
- In Risorse, selezionare Log, selezionare il
- Per abilitare un log delle funzioni esistente, in Risorse selezionare Log, selezionare il menu Azioni
, quindi selezionare Abilita log.
- Per visualizzare i dati in un log delle funzioni esistente, in Risorse selezionare Log, quindi selezionare il nome del gruppo di log contenente il log che si desidera visualizzare nella colonna Gruppo di log.
Il log viene visualizzato nella pagina Dettagli log del gruppo di log, che consente di visualizzare i dati di log e di ordinare e filtrare i dati di log in base al tempo.
- Selezionare la freccia giù accanto a un evento di log per visualizzare i dati di log per tale evento.
- Selezionare Esplora con ricerca log per cercare i dati di log.
Suggerimento
Durante la ricerca dei dati di log, è possibile utilizzare il campo data.opcRequestId
per filtrare i log in base all'ID richiesta. Se una distribuzione API nel gateway API richiama una funzione in un backend delle funzioni OCI, è possibile visualizzare i log relativi sia alla richiesta del gateway API che alla richiesta delle funzioni OCI utilizzando lo stesso campo data.opcRequestId
insieme a un carattere jolly, come riportato di seguito.
- Nella pagina Ricerca log, selezionare la freccia giù accanto a un evento di log per visualizzare i dati di log per l'evento.
- Selezionare il campo
"data.opcRequestId"
nel log delle funzioni e selezionare Corrispondenza filtro dal menu popup.Ad esempio, si supponga che il log delle funzioni contenga il campo
"data.opcRequestId": "/01FJA5VCVM0000000000025M1Z/01FJA5VCVM0000000000025M20"
. Il campo"data.opcRequestId": "/01FJA5VCVM0000000000025M1Z/01FJA5VCVM0000000000025M20"
viene copiato nella pagina Ricerca log (modalità di base) come filtro. - Nella pagina Ricerca log (modalità di base), selezionare Mostra modalità avanzata e sostituire la seconda metà del valore del campo
"data.opcRequestId"
visualizzato nel campo Query con il carattere jolly * (asterisco).Ad esempio, in modo che legga
data.opcRequestId: '/01FJA5VCVM0000000000025M1Z/*'
- Selezionare Cerca.
Utilizzo dei comandi CLI di Fn Project per specificare un URL syslog
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.
Il servizio Oracle Cloud Infrastructure Logging è l'opzione predefinita e consigliata per accedere, cercare e memorizzare i log delle funzioni.
In alternativa, è possibile inviare i log delle funzioni a una destinazione di log esterna come Papertrail utilizzando l'interfaccia CLI di Fn Project per specificare un URL syslog. Tenere presente che per utilizzare una destinazione di log esterna, è necessario aver impostato una VCN con subnet pubbliche e un gateway Internet (vedere Creazione della VCN e delle subnet da utilizzare con le funzioni OCI, se non esistono già).
Per inviare i log delle funzioni a una destinazione di log esterna impostando l'URL syslog, effettuare le operazioni riportate di seguito.
- Accedere all'ambiente di sviluppo come sviluppatore di funzioni.
-
Per creare una nuova applicazione e specificare che tutte le funzioni nell'applicazione inviino i propri log a una destinazione di log esterna, immettere:
fn create app <app-name> --syslog-url <logging-service-url> --annotation oracle.com/oci/subnetIds='["<subnet-ocid>"]'
Dove:
<app-name>
è il nome della nuova applicazione. Evitare di fornire informazioni riservate.<logging-service-url>
è l'URL syslog a cui inviare i log.<subnet-ocid>
è l'OCID della subnet pubblica (o delle subnet, fino a un massimo di sei) in cui eseguire le funzioni. Se è stata definita una subnet regionale, la procedura migliore consiste nel selezionare tale subnet per semplificare l'implementazione del failover tra i domini di disponibilità. Se non è stata definita una subnet regionale ed è necessario soddisfare i requisiti di High Availability, selezionare più subnet (chiudere ogni OCID tra virgolette separate da virgole, nel formato'["<subnet-ocid>","<subnet-ocid>"]'
). È consigliabile che le subnet pubbliche si trovino nella stessa area del registro Docker specificato nel contesto CLI di Fn Project (vedere Creazione di un contesto CLI di Fn Project per connettersi a Oracle Cloud Infrastructure).
Ad esempio:
fn create app acmeapp --syslog-url tcp://my.papertrail.com:4242 --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.phx.aaaaaaaacnh..."]'
Tenere presente che se successivamente si imposta Oracle Cloud Infrastructure Logging per memorizzare i log, i dettagli dell'URL syslog esistente vengono conservati. Pertanto, se in seguito si decide di riprendere l'invio dei log delle funzioni alla destinazione di log esterna, è sufficiente disabilitare Oracle Cloud Infrastructure Logging e i log verranno inviati di nuovo all'URL syslog.
-
Per aggiornare un'applicazione esistente e specificare che tutte le funzioni nell'applicazione inviano i propri log a una destinazione di log esterna, immettere:
fn update app <app-name> --syslog-url <logging-service-url>
Dove:
<app-name>
è il nome dell'applicazione da aggiornare<logging-service-url>
è l'URL syslog a cui inviare i log
Ad esempio:
fn update app acmeapp --syslog-url tcp://my.papertrail.com:4242
-
Per aggiornare un'applicazione esistente e rimuovere la destinazione di log esterna specificata per l'URL syslog, immettere:
fn update app <app-name> --syslog-url ''
Dove:
<app-name>
è il nome dell'applicazione da aggiornare
Ad esempio:
fn update app acmeapp --syslog-url ''
Opzioni di log supportate in precedenza
Nelle release precedenti di OCI Functions (prima della release del servizio Oracle Cloud Infrastructure Logging), è possibile specificare dove OCI Functions memorizza i log di una funzione impostando un 'criterio di log' per l'applicazione che contiene la funzione. In precedenza, era possibile utilizzare la console per impostare un criterio di log per:
-
Memorizzare i log come oggetti in un bucket di storage in Oracle Cloud Infrastructure Object Storage selezionando l'opzione OCI Logging.
Per visualizzare i log delle funzioni in un bucket di storage, al gruppo a cui si appartiene deve essere stato concesso l'accesso con le seguenti istruzioni dei criteri di identità:
Allow group <group-name> to manage object-family in compartment <compartment-name>
Allow group <group-name> to read objectstorage-namespaces in compartment <compartment-name>
(in genere creato durante la configurazione della tenancy per lo sviluppo di funzioni). Vedere Dichiarazioni dei criteri per concedere agli utenti di OCI Functions l'accesso ai repository di Oracle Cloud Infrastructure Registry.
- Memorizzare i log inviandoli a una destinazione di log esterna, ad esempio Papertrail, selezionando l'opzione URL Syslog.
Per un'applicazione esistente in cui è già stato impostato un criterio di log in precedenza, la funzionalità precedente è ancora supportata e viene applicato il criterio di log esistente. È tuttavia opportuno considerare quanto riportato di seguito.
- Non è possibile utilizzare la console per impostare un nuovo criterio di log o modificare un criterio di log esistente.
- Se il criterio di log esistente specificato memorizza i log delle funzioni come oggetti in un bucket di storage in Oracle Cloud Infrastructure Object Storage:
- La possibilità di memorizzare i log nello storage degli oggetti non sarà più valida nelle prossime release.
- Ti consigliamo di passare alla memorizzazione dei log utilizzando Oracle Cloud Infrastructure Logging.
- Se passi all'uso di Oracle Cloud Infrastructure Logging per memorizzare i log, non puoi ripristinare la memorizzazione dei log nello storage degli oggetti.
- I log memorizzati nello storage degli oggetti continueranno a esistere (con ogni nome di log, incluso l'OCID della funzione associata, come in precedenza).
- Se il criterio di log esistente ha specificato un URL syslog:
- Se si passa all'uso di Oracle Cloud Infrastructure Logging per memorizzare i log, i dettagli dell'URL syslog esistente vengono conservati. Pertanto, se in seguito si decide di riprendere l'invio dei log delle funzioni alla destinazione di log esterna, è sufficiente disabilitare Oracle Cloud Infrastructure Logging e i log verranno inviati di nuovo all'URL syslog.
- Se si desidera modificare l'URL syslog nel criterio di log esistente, è necessario utilizzare l'interfaccia CLI di Fn Project per modificarlo.