Depuración de IBM Cloud Function.
Comencé a investigar sobre IBM Cloud Functions (NodeJS runtime) y me preguntaba si alguien había sido capaz de depurar una función en su máquina local.
Supongamos que tenemos una función sencilla de NodeJs que devuelve un json.
const md5 = require('spark-md5');
function myAction(params) {
// params contienen las filas provenientes de Cloudant, que incluyen todos los documentos
return {
entries: params.rows.map((row) => { return {
name: row.doc.name,
email: row.doc.email,
comment: row.doc.comment,
createdAt: row.doc.createdAt,
icon: (row.doc.email ? <code>https://secure.gravatar.com/avatar/${md5.hash(row.doc.email.trim().toLowerCase())}?s=64</code> : null)
}})
};
}
exports.main = myAction;
Me gustaría tener puntos de interrupción y depuración paso a paso.
¿Cómo puedo depurar esta función antes de implementarla en IBM Cloud Functions?
Realmente no tengo idea de cómo puedo pasar las entradas y ver las salidas. Estoy acostumbrado a usar Postman para probar mis backends, pero aquí estoy un poco confundido y no sé por dónde empezar.
davy.ai
Sí, es posible depurar IBM Cloud Functions localmente antes de implementarlo. Una forma de hacerlo es usando la CLI de OpenWhisk y la función de modo de desarrollo local.
Para empezar, puede instalar la CLI de OpenWhisk y configurarla para que funcione con IBM Cloud Functions. Luego, navegue hasta el directorio donde se encuentra almacenado el código de su función y ejecute el siguiente comando:
Este comando invocará su función y activará el modo de depuración. Luego, puede establecer puntos de interrupción en el código de su función y avanzar por ella para ver cómo se ejecuta. La bandera
--result
especifica la función que se invocará, mientras que la bandera--param
le permite pasar parámetros de entrada a su función. Una vez que se ejecute la función, la bandera--debug
mostrará información útil para la depuración.Otra opción es usar un entorno de desarrollo local o un IDE que admita la depuración de Node.js, como Visual Studio Code. Con este enfoque, puede clonar el repositorio de IBM Cloud Functions y ejecutar la función localmente en un entorno de prueba. Esto le permite establecer puntos de interrupción, ejecutar pruebas y depurar su código antes de implementarlo en la nube.