In this quick post, I will show you how to build a Serverless function in Go to get the latest 9Gag Memes using OpenFaaS.
This tutorial assume that you have:
curl -sSL https://cli.openfaas.com | sudo sh
1 — Create a function
Create a “handler.go” file with the following content:
The code is self-explanatory, it uses 9Gag Web Crawler to parse the website and fetch memes by their tag.
2 — Docker Image
I wrote a simple Dockerfile using the Multi-stage builds technique to reduce the image size down:
3 — Configuration file
Note: If pushing to a remote registry change the name from _mlabouardy_to your own Hub account.
4 — Build
Issue the following command:
faas-cli build -f ./stack.yml
5 — Deploy
faas-cli push -f ./stack.yml
faas-cli deploy -f ./stack.yml
6 — Tests
Once deployed, you can invoke the function via:
cURL:
curl http://localhost:8080/function/memes-9gag -d “GoT”
FaaS CLI:
echo “GoT” | faas-cli invoke memes-9gag
UI:
JSON Example:
Note: all code used in this demo, is available on my Github
Taking it further ?
You can build an Android application which consumes the function JSON response as below: