Code Monkey home page Code Monkey logo

serverless-go-build-extended's Introduction

Serverless Go Build Extended (For Compatibility with Serverless Offline)

Forked from Sean Keenan's super helpful serverless-go-build repository.

This version of the repository has an additional configuration option, useBinPathForHandler.

custom:
  go-build:
    useBinPathForHandler: true
functions:
  getWidget:
    handler: bin/entrypoints/widget/main
    events:
      - http:
          path: widget
          method: get

When useBinPathForHandler is set to true, the plugin will assume that the path set in your functions section of the serverless.yml file refers to the resulting build location, and not the source Go file.

If you set your handler to bin/hello/main, it will assume that the source Go file is at hello/main.go.

You can set binPath to a custom folder name. However, you must also make sure to use that folder name in the handler name if used in conjunction with useBinPathForHandler.

custom:
  go-build:
    useBinPathForHandler: true
    binPath: compiled
functions:
  getWidget:
    handler: compiled/entrypoints/widget/main
    events:
      - http:
          path: widget
          method: get

The above will look for a Go file at entrypoints/widget/main.go, and then compile it to compiled/entrypoints/widget/main.

But why though?

Other plugins such as serverless-offline require that the handler of a function point at the actual binary that needs to be run. The default configuration of serverless-go-build requires you to write the source Go file as the function handler. The use of the new useBinPathForHandler option allows the handler to be set to point at the compiled file as usual, making it possible to use plugins such as serverless-offline.

serverless-go-build-extended's People

Contributors

michaelcharles avatar sean9keenan avatar thinkski avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.