Stockage et affichage des journaux de fonction
Découvrez comment stocker et afficher les journaux de fonction avec OCI Functions.
Lorsqu'une fonction est appelée, vous souhaitez généralement accéder à ses journaux pour le dépannage. Le service Oracle Cloud Infrastructure Logging est l'option par défaut et recommandée pour rechercher et stocker des journaux de fonction, ainsi que pour y accéder. Si vous activez Oracle Cloud Infrastructure Logging pour une application, des journaux d'appel par défaut sont créés chaque fois que des fonctions de l'application sont appelées. Reportez-vous à Utilisation de la console pour activer et afficher des journaux de fonction dans Oracle Cloud Infrastructure Logging. Pour plus d'informations sur le contenu des journaux de fonction, reportez-vous à Détails du service Functions.
Il peut arriver que vous souhaitiez envoyer des journaux de fonction à une destination de journalisation externe telle que Papertrail. Pour envoyer des journaux à une destination de journalisation externe plutôt qu'au service Oracle Cloud Infrastructure Logging, utilisez l'interface de ligne de commande du projet Fn afin d'indiquer une URL Syslog. Reportez-vous à Utilisation des commandes de l'interface de ligne de commande du projet Fn pour indiquer une URL Syslog.
- Pour node.js :
console.log('Entering Hello Node.js function');
- Pour Java :
System.err.println("Entering Java Hello World Function");
- Pour go :
fmt.Println("Entering Hello Go function")
Utilisation de la console pour activer et afficher des journaux de fonction dans Oracle Cloud Infrastructure Logging
Pour activer et afficher des journaux de fonction dans le service Oracle Cloud Infrastructure Logging, procédez comme suit :
- Sur la page de liste Applications, sélectionnez l'application avec les fonctions pour lesquelles vous souhaitez créer, activer et afficher les journaux. Si vous avez besoin d'aide pour rechercher la page de liste ou l'application, reportez-vous à Liste des applications.
- Sélectionnez l'onglet Surveillance et accédez à la section Journaux.
- Pour créer et activer un journal de fonction dans Oracle Cloud Infrastructure Logging, procédez comme suit :
- Dans le menu
- Compartiment : compartiment dans lequel créer le journal. Par défaut, il s'agit du compartiment en cours.
- Groupe de journaux : groupe de journaux dans lequel créer le journal. Sélectionnez un groupe des journaux existant ou Créez un groupe pour créer un groupe des journaux avec le nom et la description que vous fournissez.
- Nom de journal : nom du nouveau journal. Par défaut, <nom-application>_invoke.
- Conservation de journal : durée de conservation des données de journal.
- Balises :si vous disposez des droits d'accès nécessaires pour créer une ressource, vous disposez également de droits d'accès nécessaires pour lui appliquer des balises à format libre. Pour appliquer une balise defined, vous devez disposer des droits d'accès permettant d'utiliser l'espace de noms de balise. Pour plus d'informations sur le balisage, reportez-vous à Balises de ressource. Si vous n'êtes pas certain d'appliquer des balises, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des balises ultérieurement.
de la catégorie Journaux d'appel de fonction, sélectionnez Activer le journal et indiquez les éléments suivants : - Sélectionnez Activer le journal pour créer le journal (et le groupe de journaux, si vous en avez spécifié un).
- Dans le menu
- Pour activer un journal de fonction existant qui est actuellement inactif, dans le menu Actions (trois points) de la catégorie Journaux d'appel de fonction, sélectionnez Activer le journal.
- Pour afficher les données d'un journal de fonctions existant, sélectionnez le nom du groupe de journaux contenant le journal à afficher dans la colonne Groupe de journaux.
Le journal s'ouvre sur la page Détails du journal du groupe de journaux, ce qui vous permet de visualiser les données de journal, ainsi que de trier et de filtrer les données de journal par heure.
- Sélectionnez la flèche vers le bas en regard d'un événement de journal pour afficher les données de journal de cet événement.
- Sélectionnez Explorer avec la recherche de journal pour rechercher des données de journal.
Conseil
Lors de la recherche de données de journal, vous pouvez utiliser le champ data.opcRequestId
pour filtrer les journaux par ID de demande. Si un déploiement d'API dans API Gateway appelle une fonction sur un back-end OCI Functions, vous pouvez afficher les journaux relatifs à la demande API Gateway et à la demande OCI Functions en utilisant le même champ data.opcRequestId
avec un caractère générique, comme suit :
- Sur la page Recherche de journalisation, sélectionnez la flèche vers le bas en regard d'un événement de journal pour afficher les données de journal de cet événement.
- Sélectionnez le champ
"data.opcRequestId"
dans le journal de la fonction et sélectionnez Filtrer la correspondance dans le menu contextuel.Par exemple, supposons que le journal de fonction contient le champ
"data.opcRequestId": "/01FJA5VCVM0000000000025M1Z/01FJA5VCVM0000000000025M20"
. Le champ"data.opcRequestId": "/01FJA5VCVM0000000000025M1Z/01FJA5VCVM0000000000025M20"
est copié dans la page Recherche de journal (mode de base) en tant que filtre. - Sur la page Recherche de journal (mode de base), sélectionnez Afficher le mode avancé et remplacez la seconde moitié de la valeur du champ
"data.opcRequestId"
affichée dans le champ Requête par le caractère générique * (astérisque).Par exemple, pour lire
data.opcRequestId: '/01FJA5VCVM0000000000025M1Z/*'
- Sélectionner une recherche.
Utilisation des commandes de l'interface de ligne de commande du projet Fn pour indiquer une URL Syslog
De temps à temps, de nouvelles versions de l'interface de ligne de commande du projet Fn sont disponibles. Nous vous recommandons de vérifier régulièrement que la dernière version est installée. Pour plus d'informations, reportez-vous à Etapes de mise à niveau de l'interface de ligne de commande du projet Fn.
Le service Oracle Cloud Infrastructure Logging est l'option par défaut et recommandée pour rechercher et stocker des journaux de fonction, ainsi que pour y accéder.
Sinon, vous pouvez envoyer des journaux de fonction à une destination de journalisation externe telle que Papertrail à l'aide de l'interface de ligne de commande du projet Fn pour spécifier une URL Syslog. Notez que pour utiliser une destination de journalisation externe, vous devez avoir configuré un VCN avec des sous-réseaux publics et une passerelle Internet (reportez-vous à Création du VCN et des sous-réseaux à utiliser avec OCI Functions, s'ils n'existent pas déjà).
Pour envoyer des journaux de fonction à une destination de journalisation externe en définissant l'URL Syslog, procédez comme suit :
- Connectez-vous à votre environnement de développement en tant que développeur de fonctions.
-
Pour créer une application et indiquer que toutes ses fonctions envoient leurs journaux à une destination de journalisation externe, entrez ce qui suit :
fn create app <app-name> --syslog-url <logging-service-url> --annotation oracle.com/oci/subnetIds='["<subnet-ocid>"]'
où :
<app-name>
représente le nom de la nouvelle application. Evitez de saisir des informations confidentielles.<logging-service-url>
correspond à l'URL Syslog à laquelle envoyer les journaux.<subnet-ocid>
représente l'OCID du sous-réseau public (ou des sous-réseaux, jusqu'à six) dans lequel exécuter les fonctions. Si un sous-réseau régional a été défini, il est recommandé de le sélectionner pour faciliter l'implémentation du basculement entre les domaines de disponibilité. Si aucun sous-réseau régional n'a été défini et que vous devez répondre à des exigences de haute disponibilité, sélectionnez plusieurs sous-réseaux (placez chaque OCID entre guillemets, en les séparant par des virgules, au format'["<subnet-ocid>","<subnet-ocid>"]'
). Nous recommandons que les sous-réseaux publics figurent dans la même région que le registre Docker indiqué dans le contexte de l'interface de ligne de commande de projet Fn (reportez-vous à Création d'un contexte d'interface de ligne de commande de projet Fn pour la connexion à Oracle Cloud Infrastructure).
Par exemple :
fn create app acmeapp --syslog-url tcp://my.papertrail.com:4242 --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.phx.aaaaaaaacnh..."]'
Si vous configurez ultérieurement Oracle Cloud Infrastructure Logging pour stocker les journaux, les détails existants de l'URL Syslog sont conservés. Par conséquent, si vous décidez plus tard de reprendre l'envoi de journaux de fonction à la destination de journalisation externe, vous devez simplement désactiver Oracle Cloud Infrastructure Logging et les journaux seront à nouveau envoyés à l'URL Syslog.
-
Pour mettre à jour une application existante et indiquer que toutes ses fonctions envoient leurs journaux à une destination de journalisation externe, entrez ce qui suit :
fn update app <app-name> --syslog-url <logging-service-url>
où :
<app-name>
représente le nom de l'application à mettre à jour<logging-service-url>
représente l'URL Syslog à laquelle envoyer les journaux
Par exemple :
fn update app acmeapp --syslog-url tcp://my.papertrail.com:4242
-
Pour mettre à jour une application existante et enlever la destination de journalisation externe indiquée pour l'URL Syslog, entrez ce qui suit :
fn update app <app-name> --syslog-url ''
où :
<app-name>
représente le nom de l'application à mettre à jour
Par exemple :
fn update app acmeapp --syslog-url ''
Options de journalisation précédemment prises en charge
Dans les versions antérieures d'OCI Functions (avant la publication du service Oracle Cloud Infrastructure Logging), vous pouviez indiquer où OCI Functions stockait les journaux d'une fonction en configurant une stratégie de journalisation pour l'application contenant la fonction. Auparavant, vous pouviez utiliser la console afin de configurer une stratégie de journalisation pour les objectifs suivants :
-
Stocker des journaux en tant qu'objets dans un bucket de stockage dans Oracle Cloud InfrastructureObject Storage en sélectionnant l'option OCI Logging.
Pour visualiser les journaux de fonction d'un bucket de stockage, le groupe auquel vous appartenez doit disposer d'un accès avec les instructions de stratégie d'identité suivantes :
Allow group <group-name> to manage object-family in compartment <compartment-name>
Allow group <group-name> to read objectstorage-namespaces in compartment <compartment-name>
(Généralement créée lors de la configuration de la location pour le développement de fonctions. Reportez-vous à Instructions de stratégie pour permettre aux utilisateurs d'OCI Functions d'accéder aux référentiels Oracle Cloud Infrastructure Registry.)
- Stocker les journaux en les envoyant à une destination de journalisation externe comme Papertrail en sélectionnant l'option URL Syslog.
Pour toute application existante dans laquelle vous avez déjà configuré une stratégie de journalisation, la fonctionnalité ci-dessus est toujours prise en charge et la stratégie de journalisation existante est appliquée. Cependant, vous devez prendre en compte les points suivants :
- Vous ne pouvez pas utiliser la console pour configurer une nouvelle stratégie de journalisation ou en modifier une.
- Si la stratégie de journalisation existante spécifiée stocke les journaux de fonction en tant qu'objets dans un bucket de stockage dans Oracle Cloud Infrastructure Object Storage, prenez connaissance de ce qui suit :
- La fonctionnalité permettant de stocker des journaux dans Object Storage sera en phase d'abandon dans une version ultérieure.
- Nous vous recommandons d'utiliser Oracle Cloud Infrastructure Logging pour stocker les journaux.
- Si vous commencez à utiliser Oracle Cloud Infrastructure Logging pour stocker les journaux, vous ne pouvez pas revenir au stockage des journaux dans Object Storage.
- Les journaux stockés dans Object Storage continueront d'exister (chaque nom de journal incluant l'OCID de la fonction associée, comme précédemment).
- Si la stratégie de journalisation existante indique une URL Syslog, prenez connaissance de ce qui suit :
- Si vous commencez à utiliser Oracle Cloud Infrastructure Logging pour stocker les journaux, les détails existants de l'URL Syslog sont conservés. Par conséquent, si vous décidez plus tard de reprendre l'envoi de journaux de fonction à la destination de journalisation externe, vous devez simplement désactiver Oracle Cloud Infrastructure Logging et les journaux seront à nouveau envoyés à l'URL Syslog.
- Pour modifier l'URL Syslog dans la stratégie de journalisation existante, vous devez utiliser l'interface de ligne de commande du projet Fn.