Skip to content
GitHub no longer supports this web browser. Learn more about the browsers we support.
Func is a CLI app to simplify development and deployment of serverless functions using Go, Terraform and AWS.
Go Makefile
Branch: master
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.

README.md

func Go Report Card License: MIT

Func is a CLI app to simplify development and deployment of AWS Lambda functions using Go and Terraform. It'll scaffold an optionated project structure generating code for

  • function code
  • build automation using make
  • infrastructure and deployment automation using terraform-aws-lambda
  • continuous integration/deployment providers like Travis

Func is in an early alpha stage so expect bugs and breaking changes but give it a try!

installation

Before installing func please make sure your system meets the following requirements:

Homebrew (macOS)

brew install moritzzimmer/tap/func

from release archive - 64 bits

MacOS

$ curl -OL https://github.com/moritzzimmer/func/releases/download/v0.0.14/func_0.0.14_darwin_amd64.tar.gz
$ tar -xvzf func_0.0.14_darwin_amd64.tar.gz
$ sudo mv func /usr/local/bin/func

GNU/Linux

$ wget https://github.com/moritzzimmer/func/releases/download/v0.0.14/func_0.0.14_linux_amd64.tar.gz
$ tar -xvzf func_0.0.14_linux_amd64.tar.gz
$ sudo mv func /usr/local/bin/

verify installation

$ func
Func is a CLI app to simplify development and deployment
	of serverless functions using Go, Terraform and AWS.

Usage:
  func [command]

Available Commands:
  help        Help about any command
  new         Creates a new Lambda project
  version     Print version information of func

Flags:
  -h, --help   help for func

Use "func [command] --help" for more information about a command.

generate new project

quickstart

(outside of $GOPATH)

$ func new github.com/you/foo
$ cd foo/
$ make init package deploy

all options

$ func help new
Creates Terraform, CI and Go ressources for a new AWS Lambda project
in a new directory.

Usage:
  func new [module name] [flags]

Aliases:
  new, initialize, initialise, create, init

Examples:
func new github.com/you/app

Flags:
      --ci string      ci provider config file to generate [none, travis] (default "none")
  -d, --dry-run        dry run
  -e, --event string   event type triggering the Lambda function [cloudwatch-event, dynamodb, s3, sns] (default "cloudwatch-event")
  -h, --help           help for new

shoulders of giants

func would not be possible if not for all of the great projects it depends on. Please see SHOULDERS.md to see a list of them.

You can’t perform that action at this time.