Author: Nic Raboy
Deploying Native Node.js Dependencies On AWS Lambda
I was recently working on a Functions as a Service (FaaS) project using AWS Lambda and Node.js. However, I was running into an issue where my package dependencies found in my node_modules directory were for the wrong platform once deployed to Lambda. This is not the first time I experienced a problem like this. I knew the issue straight away because I encountered the same thing when trying to use a node_modules directory generated on Mac from a Windows computer.
When uploading a package developed with Node.js to AWS Lambda, the package.json file is not considered. Instead you are uploading a package that contains the node_modules directory and all dependencies. So how do you develop for AWS Lambda from Mac and Windows, but have it work once deployed?
We're going to see how to use Docker to get our Node.js FaaS project dependencies designed for Amazon's flavor of Linux.
Read MoreConvert A Node.js RESTful API To Serverless With OpenWhisk
When it comes to serverless solutions, there are many options available. If you're a fan of the Microsoft cloud, you could create Azure Functions. If you've been keeping up, I wrote a tutorial called, Take a Node.js with Express API Serverless Using AWS Lambda, which used the Amazon Web Services cloud. Another solution is Apache OpenWhisk, a solution available on IBM's Bluemix cloud.
We're going to see how to convert the Node.js with Express application that I had written about in a previous article, and make it serverless with OpenWhisk.
Read MoreTake A Node.js With Express API Serverless Using AWS Lambda
Not too long ago I had written about creating an API with Node.js and Express that accepted image uploads and manipulated the images to be Android compliant before returning them in a ZIP archive. This article was titled, Create an Android Launcher Icon Generator RESTful API with Node.js, and Jimp, and it was a great example of creating APIs that that did most of their work in memory. I even demonstrated how to containerize the application with Docker.
Applications that manipulate media will need to be able to scale, otherwise there is a risk of the application crashing from not enough resources, or too many resources can get expensive. For this reason, it makes perfect sense to take the previous example serverless with Amazon's Lambda and API Gateway offerings.
We're going to see how to use API Gateway to accept HTTP requests with binary image data and process that data with Lambda to return various sized Android launcher images packaged in a ZIP archive.
Read MoreContainerizing A Node.js With Express Image Processing RESTful API Using Docker
Docker is a great way to package and deploy web applications. Applications that have been containerized can easily be created, destroyed, or even moved between servers, as long as the servers are using the Docker runtime.
Not too long ago I wrote about creating a RESTful API that could process images and generate Android compliant launcher icons. This article was titled, Create an Android Launcher Icon Generator RESTful API with Node.js, and Jimp and it was powered by Express Framework. The application could be served on any properly configured server with Node.js. The catch here is that server configuration is never easy or quick.
We're going to see how to package our web application into a container using Docker.
Read MoreCreate An Android Launcher Icon Generator RESTful API With Node.js, And Jimp
When you're developing an Android mobile application, it is critical that you come up with a nice launcher icon for all possible Android screen densities. If you're not too familiar with Android, there are mdpi, hdpi, xhdpi, xxhdpi, and xxxhdpi densities as of now. This number could change in the future.
Once you've got your icon, resampling or resizing it for each possible screen density can become a pain in the butt. Instead, it makes sense to use or create a script for this.
If you've been keeping up, you'll remember I wrote about image generators in an article titled, Generating Splash Screens and Application Icons for NativeScript Mobile Apps. Since we're talented developers, we're going to create our own service this time around.
We're going to see how to create a RESTful API that accepts an image and generates various sizes of that same image, bundled within a ZIP archive. We're going to accomplish this task with Node.js and Express.
Read MoreUpload Files To A Remote Web Service Via A Vue.js Web Application
A few weeks back I wrote about accepting file uploads in a Node.js application that uses Hapi framework. This was a followup to an article I wrote titled, Upload Files to Node.js Using Angular. What if we wanted to use a different front-end framework instead of Angular?
We're going to take a look at using FormData and Vue.js to upload files, such as images, to a remote web service. Either of the two web services that we've previously created, whether it be with Hapi or Express, will work for this example.
Read MoreSend Emails With Mailgun Using Golang
When building an application of any kind, there may be a need to have it send emails. For example, let's say you're building a script and that script needs to send a report through email when it has completed. Or another example is a web application with a form for collecting user feedback. There are many more application scenarios beyond the two listed.
Now let's say that you don't have your own email server for sending emails.
Sending emails without a server is easy when you use a transactional email service like the Mailgun API. Through HTTP, emails can be sent from any application and for a very affordable price. We're going to see how to send emails using Mailgun with Golang.
Read MoreSearch
Recent Posts
- Introducing CFP Manager to Manage Speaking Engagements for the Team
- Using Dot Notation to Query Nested Fields in MongoDB
- Build a Movie Watchlist with Node.js, TypeScript, and MongoDB
- Easy Automated Docker Volume Backups That Are Database Friendly
- Migrating Your Content Management System (CMS) Assets With MongoDB and Node.js