Funciones sin servidor como proxies | Programar Plus

La primera vez que hice clic en las funciones en la nube / funciones sin servidor fue cuando vi y probé la Webtask de Auth0 (ahora desaparecida). Era un pequeño IDE similar a CodePen, pero en realidad no veía nada más que código y registros. El punto era escribir pequeños fragmentos de Node cuando presionas la URL de las funciones (eso es, literalmente, exactamente lo que es una función sin servidor). Incluso almacenaría sus secretos para usted, lo que significa que podría usar la función sin servidor como proxy. Presiona la función, la función ingresa a la API usando sus secretos de clave API no expuestos, la API devuelve datos, la función luego devuelve datos y esos datos están disponibles para que usted trabaje con el lado del cliente. Todo el punto era 1) puede obtener datos de un sitio web que de otro modo sería totalmente estático, y 2) sus claves API están protegidas. Brillante.

Todavía extraño Webtask, pero estoy seguro de que hay cosas mejores y más elegantes en estos días. No tengo un manejo sólido de todo el paisaje. Incluso AWS tiene un editor en línea para lambdas (una “lambda” es la implementación de establecimiento de estándares de AWS de lo que es una función sin servidor), pero usar la consola de AWS directamente para cualquier cosa no suele ser … muy bueno. Las funciones de AWS Amplify probablemente sean una mejor apuesta allí.

Supongo que la forma moderna adecuada de construir estas cosas son cosas como …

  • use el marco de Serverless.com para construir / probar / implementar sus funciones sin servidor
  • usar Netlify Functions + Netlify Dev
  • use las funciones sin servidor de Vercel, o Next.js /pages/api cosas con cualquier host de nodo, como Heroku

Pero hay todo tipo de otras herramientas que parecen bastante modernas con las que no puedo hablar también, pero que parecen buenas:

  • Begin.com
  • SLAppForge
  • Deno, el nuevo lenguaje JavaScript del lado del servidor de próxima generación, se está implementando como un servicio.

Pero lo que me hace pensar en todo esto, y también en la categoría de cosas con las que no tengo ninguna experiencia personal, es Pipedream. Me enteré a través de Raymond, que tiene una historia similar a la mía:

Una de las primeras cosas que me intrigó acerca de la tecnología sin servidor, y honestamente, no es tan novedosa, es la capacidad de crear proxies para otras API. Entonces, por ejemplo, imagine una API genial que requiera autenticación de algún tipo para su uso, como una clave de API. Si usa esto en JavaScript del lado del cliente, cualquiera puede ver su código y obtener su clave. Los mejores servicios le permiten bloquear una clave para un dominio, pero si no tiene esa opción, entonces un uso simple de sin servidor es simplemente darle un punto final que hace la llamada a la API con su clave.

Raymond Camden, “Uso de Pipedream para proxy de otras API”

Pipedream se ve muy elegante:

No solo es un IDE basado en la web para crear funciones, sino que puedo activarlo de muchas maneras: una URL, por supuesto, pero también en un CRON, o cosas como por correo electrónico o RSS. Limpio. Mire todas las otras opciones también. ¿Flojo? GitHub? ¿Gorjeo? Es un poco como se ve Zapier de esa manera, solo donde Zapier es completamente sin código (creo). Pipedream hace del código un ciudadano de primera clase.

Y hace secretos a través de variables de entorno a nivel de cuenta.

La pantalla de Pipedream para variables de entorno.  Una barra lateral gris oscuro está a la izquierda con diferentes opciones de menú donde Configuración es el elemento seleccionado actualmente en la lista vertical.  El lado derecho de la pantalla contiene la información de la variable de entorno con un párrafo que la define, un ejemplo, luego un botón azul brillante para crear una nueva variable de entorno.

Por lo tanto, es perfecto para ser un proxy sin servidor. Lea la publicación de Raymond para ver ejemplos de código e implementación reales.