Nefariously Pushing Master

    @imaware/gcp-function
    TypeScript icon, indicating that this package has built-in type declarations

    0.5.0 • Public • Published

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

    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

    HTTP Function Structure

    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

    Add Microservice (Google Cloud Functions) to NX

    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

    Keywords

    none

    Install

    npm i @imaware/gcp-function

    DownloadsWeekly Downloads

    5

    Version

    0.5.0

    License

    MIT

    Unpacked Size

    126 kB

    Total Files

    69

    Last publish

    Collaborators

    • imaware-irutner
    • cmanzi-imaware