Elon Musk, Serverless y Node.js

elon musk

Serverless, Node.js y Elon Musk: una combinación hecha en el cielo de la tecnología

En esta publicación, le mostraremos cómo crear una aplicación sin servidor usando Node.js que recuperará los últimos tweets del único e inigualable Elon Musk. Ahora, puede estar pensando: “¿Por qué querría saber sobre qué está tuiteando Elon Musk? Ya sé que probablemente sea sobre el espacio, Tesla o cómo colonizar Marte”. Bueno, nunca se sabe, puede que tuitee sobre su tipo de cerveza favorita.

 

¡Bienvenido al salvaje mundo de la informática sin servidor! Si eres como yo, probablemente estés pensando: “¡Pero no quiero lidiar con servidores! ¡Solo quiero codificar y tomar una cerveza fría! Bueno, amigo, estás de suerte porque con la informática sin servidor, puedes hacer precisamente eso.

 


Para comenzar, deberá tener una cuenta con un proveedor de la nube que admita funciones sin servidor, como AWS Lambda o Google Cloud Functions.

  • Para este ejemplo, usaremos AWS Lambda porque, seamos sinceros, son el rey de la jungla sin servidor.
    • Primero, crearemos una nueva función Lambda y le daremos un nombre pegadizo como “Muskwatch” o “The Tweetening”
    • y luego elegiremos el entorno de tiempo de ejecución para nuestra función.
      • En este caso, usaremos Node.js 18.x porque ¿quién quiere trabajar con una versión anterior de Node? Eso es como seguir usando un teléfono plegable 😜.

Ahora que tenemos nuestra función configurada

Podemos comenzar a escribir nuestro código. Usaremos la biblioteca “twit” para interactuar con la API de Twitter y recuperar los tweets porque desplazarse manualmente por Twitter para encontrar los tweets de Elon llevaría mucho tiempo.

  • Puede instalar esta biblioteca ejecutando npm install twit en el directorio de su proyecto y deje que comience la magia.
const Twit = require('twit');

exports.handler = async (event, context) => {
const T = new Twit({
consumer_key: 'your_consumer_key',
consumer_secret: 'your_consumer_secret',
access_token: 'your_access_token',
access_token_secret: 'your_access_token_secret',
});

const params = {
screen_name: 'elonmusk',
count: 1
};

try {
const tweets = await T.get('statuses/user_timeline', params);
const latestTweet = tweets.data[0];
return {
statusCode: 200,
body: JSON.stringify(latestTweet)
};
} catch (err) {
console.log(err);
return {
statusCode: 500,
body: JSON.stringify({ error: "This is not an error, this is just a failed attempt at colonizing Mars" })
};
}
};

En este fragmento de código, primero requerimos la biblioteca twit y luego creamos una instancia de la clase Twit pasando nuestras claves API de Twitter.

A continuación, creamos un objeto params para especificar el nombre de pantalla (en este caso, “elonmusk”) y la cantidad de tweets que queremos recuperar (1 para el último tweet).

  • Luego, usamos el método get para recuperar los tweets y el operador await para esperar a que se resuelva la promesa.
  • Y después, devolvemos el primer tweet en la matriz de tweets como el último tweet.

En el caso de un error, lo manejaremos con un bloque catch, pero en lugar de devolver un viejo y aburrido mensaje de error, lo animaremos y devolveremos algo como “Esto no es un error, es solo un intento fallido de Colonizando Marte.”

Ahora que nuestro código está completo

Podemos implementarlo en nuestra función Lambda y probarlo invocándolo y ver si nos da el último tweet de Elon Musk.

¡Y eso es! Acaba de crear una aplicación sin servidor que recupera el último tweet de Elon Musk mediante Node.js y AWS Lambda. Ahora puede relajarse mientras su aplicación hace todo el trabajo duro por usted.

Este es solo un ejemplo básico, puede ampliar la funcionalidad de esta aplicación agregando más funciones, como almacenar el tweet en una base de datos o enviar el tweet como una notificación a un usuario a través de SMS o correo electrónico.

La computación sin servidor es una forma poderosa y rentable de crear y ejecutar aplicaciones

Y con la creciente popularidad de Node.js, es una combinación perfecta. ¡Ahora avance y conquiste el mundo de la computación sin servidor con sus nuevas habilidades!

Y no olvide, si las cosas no salen según lo planeado y encuentra algún error, solo recuerde que es solo un intento fallido de colonizar Marte.

Y una última cosa, si alguna vez llegas a conocer a Elon Musk en persona, pregúntale cuál es su tipo de cerveza favorito y cuéntame, tengo curiosidad.

En resumen, la computación sin servidor es una excelente manera de crear y ejecutar aplicaciones y servicios sin tener que administrar la infraestructura subyacente.

Le mostramos cómo usar Node.js y la biblioteca de twit para recuperar los últimos tweets de Elon Musk y cómo usar AWS Lambda para implementar la aplicación.

  • Con un poco de imaginación y creatividad, puedes expandir esta aplicación aún más y divertirte haciéndolo. Saludos a eso!
  • Vale la pena señalar que la informática sin servidor viene con algunas limitaciones,
    • Por ejemplo, hay un tiempo de espera para la ejecución de funciones y límites estrictos en la cantidad de memoria que puede usar.
  • También es una tecnología relativamente nueva y sus mejores prácticas y patrones aún están evolucionando.
    • Aunque tiene un gran potencial de rentabilidad y escalabilidad.

Antes de continuar con la tecnología sin servidor

  • Asegúrese de que sea la mejor opción para su caso de uso,
    • ya que otras opciones de hospedaje pueden ser más apropiadas para ciertos tipos de cargas de trabajo.
  • También es importante tener en cuenta que serverless no significa que los servidores no estén involucrados,
    • sino que abstrae la administración de los mismos y solo paga por los recursos consumidos por su código.
  • En general, la computación sin servidor es una excelente opción para muchos casos de uso,
    • y usarla con Node.js puede encajar perfectamente si está buscando crear aplicaciones escalables, rentables y de alto rendimiento.

¿Entonces, Qué esperas?


Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.

Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel:

Recent Post