@imaware/gcp-function
v0.5.0
Published
Generate a Google Cloud Function within a Nx workspace with dev tools:
Downloads
1
Readme
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
Install Node.js version 10 or greater
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.
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 - [email protected]