es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Registro de HTTP para Cloud Functions para ver la información de las solicitudes?

Estoy buscando ver si hay una forma de agregar registros a las Cloud Functions para poder ver la información de la solicitud en mis registros.

Tengo mi aplicación de Cloud Functions configurada de la siguiente manera:

const app: express.Application = express();

// Middleware del registro
app.use(morgan("dev"));

app.use(cors({origin: true}));

// Rutas
app.get("/api", async (req: express.Request, res: express.Response) => {
  console.log("Obteniendo todos los usuarios..3.");
  const usuarios = await User.getAllUsers();
  return res.json(usuarios);
});

exports.app = functions.https.onRequest(app);

Cuando hago una solicitud HTTP a mi punto de enlace de functions, los registros solo muestran que se está iniciando la aplicación “function execution” y luego imprime mi console.log en el controlador del punto de enlace.

Sin embargo, estoy tratando de ver si puedo obtener algún registro, similar a cómo funciona Morgan, pero no se formatea bien con el registro de Cloud Functions.

¿Hay una mejor manera para que pueda ver qué punto de enlace se ha alcanzado, información de la solicitud, etc. con el registro de las functions?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para agregar registro a las Cloud Functions, puede utilizar la función de registro incorporada de Google Cloud Platform. Esto le permite ver información de solicitud y otros datos relacionados con sus Cloud Functions en un lugar centralizado.

    Para habilitar el registro, puede utilizar la API de registro de Stackdriver proporcionada por Google Cloud Platform. Esta API le permite crear registros y escribirlos en el servicio de registro de Google Cloud Platform. Luego puede ver estos registros en la Consola de Google Cloud.

    Para integrar esto con su aplicación de Cloud Functions, puede utilizar el SDK de Cloud Functions para crear un objeto de registro y registrar la información de solicitud en él. Por ejemplo, puede utilizar el siguiente código para registrar el método de solicitud, la ruta y las cabeceras de cada solicitud a su punto de enlace de Cloud Functions:

    const functions = require('firebase-functions');
    const {Logging} = require('@google-cloud/logging');
    const logging = new Logging({
            projectId: process.env.GCLOUD_PROJECT
        });
    const app = require('express')();
    
    app.use((req, res, next) => {
         const log = logging.log('requests');
         const metadata = {
            resource: {
                type: 'cloud_function',
                labels: { function_name: process.env.FUNCTION_NAME }
            },
         };
         const data = Object.assign({}, req.headers, { method: req.method, url: req.originalUrl, body: req.body });
         log.write(log.entry(metadata, data));
         next();
    });
    
    // Rutas
    app.get("/", async (req, res) => {
      const users = await User.getAllUsers();
      return res.json(users);
    });
    
    exports.app = functions.https.onRequest(app);
    

    En este código, creamos un nuevo objeto de registro utilizando la API de Registro de Google Cloud Platform y lo configuramos para escribir registros en un flujo de registro llamado “requests”. Luego, utilizamos este objeto de registro para registrar los detalles de cada solicitud a nuestro punto de enlace de Cloud Functions, incluyendo el método de solicitud, la ruta y las cabeceras. Finalmente, llamamos a next() para pasar la solicitud al controlador de nuestro punto de enlace.

    Con este registro en su lugar, puede ver la información de solicitud de sus Cloud Functions en la Consola de Cloud, navegando a la Vista de registros y seleccionando el flujo de registro “requests”.

    Visor de registros de la Consola de Cloud

Comments are closed.