Deploying a Functions (serverless) app on Google Cloud

Campion
Google Cloud - Community
2 min readApr 19, 2018
Google Cloud

This tutorial will show you how to deploy a Functions app to Google Cloud

Prerequisites

  • You have the gcloud tool installed
  • You have a project in GCP

Note: you must have the gcloud beta version installed

To install gcloud beta use:

gcloud components update && gcloud components install beta

Let’s Get Started

First, let’s make a directory and enter it:

mkdir ~/hello_functions && cd hello_functions

Now, make a index.js file and put this in it:

exports.helloFunctions = (req, res) => {
res.send('Hello Functions!');
};

This makes a function called helloFunctions that responds to a GET request with Hello Functions!

That’s it?

Yep, pretty much. Let Google Cloud do the rest.

Make sure your Project ID (from GCP) is set as an environmental variable and configure gcloud to use it:

PROJECT_ID=<project-id>
gcloud config set project $PROJECT_ID

Now to deploy your Functions app:

gcloud beta functions deploy helloFunctions --trigger-http

Note: it may ask you to enable the functions API, go ahead and say yes

Once it’s deployed, you can find your function’s URL with:

gcloud beta functions describe helloFunctions | grep url

The URL should look like:

https://[GCP-REGION]-[PROJECT_ID].cloudfunctions.net/helloFunctions

Open that URL in your browser and you should see Hello Functions!

Testing Locally

If you want to test your Function locally before deploying, the cloud-functions-emulator makes it super easy!

First install the functions-emulator:

npm install -g @google-cloud/functions-emulator

Then start it up:

functions-emulator start

And now deploy the function locally:

functions-emulator deploy helloFunctions --trigger-http

And test it!

functions-emulator call helloFunctions

You should see something like:

ExecutionId: d02ce9e7-bf2c-44fb-89ab-ab8445277ecd
Result: Hello Functions!

⒡ → 👋 Functions

Thanks for reading! If you have any questions, comment below!

--

--