Almacenamiento y visualización de logs de funciones
Descubra cómo almacenar y ver logs de funciones con OCI Functions.
Cuando se llama a una función, lo normal es que se quiera acceder a los logs de la función en caso de tener que solucionar problemas. El servicio Oracle Cloud Infrastructure Logging es la opción por defecto y recomendada para acceder, buscar y almacenar logs de funciones. Si activa Oracle Cloud Infrastructure Logging para una aplicación, se crean logs de llamada por defecto siempre que se llame a las funciones de la aplicación. Consulte Uso de la consola para activar y ver logs de funciones en Oracle Cloud Infrastructure Logging. Para obtener más información sobre el contenido de los logs de funciones, consulte Detalles para Functions.
También puede haber ocasiones en las que quiera enviar logs de funciones a un destino de registro externo como Papertrail. Para enviar logs a un destino de registro externo en lugar de al servicio Oracle Cloud Infrastructure Logging, utilice la CLI de Fn Project para especificar una URL de syslog. Consulte Uso de los comandos de la CLI de Fn Project para especificar una URL de syslog.
Tenga en cuenta que, para almacenar y ver logs de una función (distintos de los logs de llamada por defecto almacenados en el servicio Oracle Cloud Infrastructure Logging), la función debe incluir sentencias de impresión. Por ejemplo:
Para node.js: console.log('Entering Hello Node.js function');
Para java: System.err.println("Entering Java Hello World Function");
Para go: fmt.Println("Entering Hello Go function")
Uso de la consola para activar y ver logs de funciones en Oracle Cloud Infrastructure Logging
Para activar y ver logs de funciones en el servicio Oracle Cloud Infrastructure Logging:
En la página de lista Aplicaciones, seleccione la aplicación con las funciones para las que desea crear, activar y ver logs. Si necesita ayuda para buscar la página de lista o la aplicación, consulte Listado de aplicaciones.
Para crear y activar un nuevo log de una función en el servicio Oracle Cloud Infrastructure Logging:
En Recursos, seleccione Logs, seleccione el menú Acciones () y, a continuación, seleccione Activar log y especifique:
Compartimento: compartimento en el que se va a crear el nuevo log. Por defecto, el compartimento actual.
Grupo de logs: grupo de logs en el que se va a crear el nuevo log. Seleccione un grupo de logs existente o seleccione:
Crear automáticamente un grupo de logs por defecto para crear un grupo de logs por defecto con un nombre por defecto (DEFAULT_GROUP), si no existe ya uno.
Crear un nuevo grupo de logs para crear un nuevo grupo de logs con un nombre y una descripción que proporcione usted.
Nombre del log: nombre del nuevo log. Por defecto, <application-name>_invoke.
Retención del log: tiempo durante el que retener los datos del log.
Seleccione Activar log para crear el nuevo log (y el nuevo grupo de logs, si ha especificado uno).
Para activar un log de funciones existente, en Recursos, seleccione Logs, seleccione el menú Acciones () y, a continuación, seleccione Activar log.
Para ver los datos de un log de una función existente, en Recursos, seleccione Logs y, a continuación, seleccione el nombre del grupo de logs que contiene el log que desea ver en la columna Grupo de logs.
El log se abre en la página Detalles de log del grupo de logs, lo que le permite ver los datos del log y ordenar y filtrar los datos del log por tiempo.
Seleccione la flecha hacia abajo junto a un evento de log para ver los datos de log de ese evento.
Seleccione Explorar con búsqueda de log para buscar datos de log.
Consejo
Al buscar datos de log, puede utilizar el campo data.opcRequestId para filtrar logs por ID de solicitud. Si un despliegue de API en API Gateway llama a una función en un backend de OCI Functions, puede ver logs relacionados con la solicitud de API Gateway y la solicitud de OCI Functions mediante el mismo campo data.opcRequestId junto con un comodín, de la siguiente forma:
En la página Búsqueda de Logging, seleccione la flecha hacia abajo junto a un evento de log para ver los datos de log de ese evento.
Seleccione el campo "data.opcRequestId" en el log de funciones y seleccione Filtrar coincidencia en el menú emergente.
Por ejemplo, supongamos que el log de funciones contiene el campo "data.opcRequestId": "/01FJA5VCVM0000000000025M1Z/01FJA5VCVM0000000000025M20". El campo "data.opcRequestId": "/01FJA5VCVM0000000000025M1Z/01FJA5VCVM0000000000025M20" se copia en la página Búsqueda de Log (Modo Básico) como filtro.
En la página Búsqueda de Log (Modo Básico), seleccione Mostrar Modo Avanzado y sustituya la segunda mitad del valor del campo "data.opcRequestId" que se muestra en el campo Consulta por el comodín * (asterisco).
Por ejemplo, para que lea data.opcRequestId: '/01FJA5VCVM0000000000025M1Z/*'
Seleccione Buscar.
Uso de los comandos de la CLI de Fn Project para especificar una URL de syslog 🔗
Consejo
De vez en cuando, se lanzan nuevas versiones de la CLI de Fn Project. Le recomendamos que compruebe regularmente que la última versión está instalada. Para obtener más información, consulte Steps to upgrade the Fn Project CLI.
El servicio Oracle Cloud Infrastructure Logging es la opción por defecto y recomendada para acceder, buscar y almacenar logs de funciones.
También puede enviar logs de funciones a un destino de registro externo como Papertrail mediante la CLI de Fn Project para especificar una URL de syslog. Tenga en cuenta que para utilizar un destino de registro externo, debe haber configurado una VCN con subredes públicas y un gateway de Internet (consulte Creación de subredes y VCN para utilizarlas con OCI Functions, si aún no existen).
Para enviar logs de funciones a un destino de registro externo configurando la URL de syslog:
Conéctese al entorno de desarrollo como desarrollador de funciones.
Para crear una nueva aplicación y especificar que todas las funciones de la aplicación envíen sus logs a un destino de registro externo, introduzca:
<app-name> es el nombre de la nueva aplicación. Evite introducir información confidencial.
<logging-service-url> es la URL de syslog a la que enviar los logs.
<subnet-ocid> es el OCID de la subred pública (o subredes, hasta un máximo de seis) en la que ejecutar las funciones. Si se ha definido una subred regional, la práctica recomendada es seleccionar esa subred para que el failover entre los dominios de disponibilidad sea más fácil de implementar. Si no se ha definido una subred regional y necesita cumplir requisitos de alta disponibilidad, seleccione varias subredes (incluya cada OCID entre comillas dobles separados por comas, en el formato '["<subnet-ocid>","<subnet-ocid>"]'). Recomendamos que las subredes públicas estén en la misma región que el registro de Docker especificado en el contexto de la CLI de Fn Project (consulte Creating an Fn Project CLI Context to Connect to Oracle Cloud Infrastructure).
Tenga en cuenta que si posteriormente configura Oracle Cloud Infrastructure Logging para almacenar los logs, los detalles de la URL de syslog existente se conservarán. Por lo tanto, si más adelante decide reanudar el envío de logs de funciones al destino de registro externo, simplemente tendrá que desactivar Oracle Cloud Infrastructure Logging y los logs se enviarán de nuevo a la URL de syslog.
Para actualizar una aplicación existente y especificar que todas las funciones de la aplicación envíen sus logs a un destino de registro externo, introduzca:
Para actualizar una aplicación existente y eliminar el destino de registro externo especificado para la URL de syslog, introduzca:
Comando
CopiarProbar
fn update app <app-name> --syslog-url ''
donde:
<app-name> es el nombre de la aplicación que se va a actualizar
Por ejemplo:
Comando
CopiarProbar
fn update app acmeapp --syslog-url ''
Opciones de registro soportadas anteriormente 🔗
En versiones anteriores de OCI Functions (antes del lanzamiento del servicio Oracle Cloud Infrastructure Logging), se podía especificar dónde almacenaba OCI Functions los logs de una función mediante la configuración de una 'política de registro' para la aplicación que contenía la función. Anteriormente, se podía utilizar la consola para configurar una política de registro para:
Almacenar los logs como objetos en un cubo de almacenamiento de Oracle Cloud Infrastructure Object Storage al seleccionar la opción Registro de OCI.
Para ver los logs de funciones de un cubo de almacenamiento, debe haberse otorgado acceso al grupo al que pertenece con las siguientes sentencias de política de identidad:
Allow group <group-name> to manage object-family in compartment <compartment-name>
Almacenar los logs enviándolos a un destino de registro externo como Papertrail al seleccionar la opción URL de syslog.
Para una aplicación existente en la que ya haya configurado anteriormente una política de registro, la funcionalidad anterior todavía está soportada y la política de registro existente se sigue aplicando. Sin embargo, tenga en cuenta lo siguiente:
No puede utilizar la consola para configurar una nueva política de registro ni editar una política de registro existente.
Si la política de registro existente especificó que se almacenasen los logs de funciones como objetos en un cubo de almacenamiento de Oracle Cloud Infrastructure Object Storage:
La capacidad de almacenar logs en Object Storage estará en desuso en una próxima versión.
Recomendamos cambiar al almacenamiento de logs mediante Oracle Cloud Infrastructure Logging.
Si decide cambiar y utilizar Oracle Cloud Infrastructure Logging para almacenar los logs, no puede volver a almacenar los logs en Object Storage.
Los logs almacenados en Object Storage seguirán existiendo (con cada nombre de log incluyendo el OCID de la función asociada, como antes).
Si la política de registro existente especificó una URL de syslog:
Si pasa a utilizar Oracle Cloud Infrastructure Logging para almacenar los logs, los detalles de la URL de syslog existente se conservarán. Por lo tanto, si más adelante decide reanudar el envío de logs de funciones al destino de registro externo, simplemente tendrá que desactivar Oracle Cloud Infrastructure Logging y los logs se enviarán de nuevo a la URL de syslog.
Si desea cambiar la URL de syslog en la política de registro existente, debe utilizar la CLI de Fn Project para hacerlo.