Google Cloud Functions Generator
Generate a Google Cloud Function within a Nx workspace with dev tools:
* Create :
nx generate @joelcode/gcp-function:http functionName
* Serve :
nx serve functionName
* Test :
nx test functionName
* Deploy :
nx deploy functionName
What is a Google Cloud Functions?
Cloud Functions is a serverless execution environment for building and
connecting cloud services. With Cloud Functions you write simple, single-purpose
functions that are attached to events emitted from your cloud infrastructure and
services. Your function is triggered when an event being watched is fired.
* Learn how to write a function from scratch.
What is NX?
Nx is a set of extensible dev tools for monorepo, which helps you develop like Google, Facebook, and Microsoft.
It has first-class support for many frontend and backend technologies, so its documentation comes in multiple flavours.
* Learn Nx features in 10 minutes.
Setup
$3
1. Install
Node.js version 10 or greater
1. Obtain authentication credentials.
Create local credentials by running the following command and following the
oauth2 flow (read more about the command
here):
gcloud auth application-default login
Read more about
Google Cloud Platform Authentication.
1. Create a Nx workspace.
npx create-nx-workspace@latest workspaceName
cd workspaceName
yarn add tslib
yarn add -D @joelcode/gcp-function @google-cloud/functions-framework supertest @nrwl/lint @nrwl/jest @types/express
Read more about
Nx Workspace
Create a function
HTTP Function Structure
$3
nx generate @joelcode/gcp-function:http functionName
$3
nx generate @joelcode/gcp-function:pubsub functionName
Test the function
nx serve functionName
nx test functionName
Deploy the function
nx build functionName
nx deploy functionName
> The 'build' option bundle all your internal dependencies in main.js & create a new package.json with your external dependencies (version number from root/package.json.)
App Composition
Add Microservice (Google Cloud Functions) to NX
Others
$3
// These WILL be reported to Stackdriver Error Reporting
console.error(new Error('I failed you'));
console.error('I failed you', new Error('I failed you too'));
throw new Error('I failed you'); // Will cause a cold start if not caught
$3
nx lint functionName
nx format:write functionName
nx format:write functionName
nx format:check functionName
nx affected --target=build
nx build functionName --with-deps
$3
gcloud functions deploy myFunction --set-env-vars foo=bar, zoo=lop
gcloud functions myFunction --update-env-vars foo=bar, zoo=lop
gcloud functions deploy myFunction --service-account emailOfServiceAccount
gcloud functions deploy myFunction --max-instances maxInstancesCount
gcloud functions deploy myFunction --clear-max-instances
gcloud functions logs read functionName
$3
Joel Turcotte Gaucher -
linkedin - joelturcotte.g@gmail.com