0.5.0 • Published 3 years ago

@imaware/gcp-function v0.5.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Google Cloud Functions Generator

Generate a Google Cloud Function within a Nx workspace with dev tools:

  • Create : nx generate @imaware/gcp-function:http functionName
  • Serve : nx serve functionName
  • Test : nx test functionName
  • Deploy : nx deploy functionName

Setup

Before you begin

  1. Install Node.js version 10 or greater

  2. 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.

  3. Create a Nx workspace.

    npx create-nx-workspace@latest workspaceName
    cd workspaceName
    yarn add tslib
    yarn add -D @imaware/gcp-function @google-cloud/functions-framework supertest @nrwl/lint @nrwl/jest @types/express

    Read more about Nx Workspace

Create a function

Trigger: HTTP

nx generate @imaware/gcp-function:http functionName

Trigger: Pub/Sub

nx generate @imaware/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

Others

Reporting Errors to Stackdriver Error Reporting

// 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

Nx Commands

nx lint functionName
nx format:write functionName
nx format:write  functionName
nx format:check  functionName
nx affected --target=build
nx build functionName --with-deps

Google Cloud Commands

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

Hire Me

Joel Turcotte Gaucher - linkedin - joelturcotte.g@gmail.com