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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
cmd
generate
.gitignore
.goreleaser.yml
LICENSE
Makefile
README.md
SHOULDERS.md
VERSION.txt
go.mod
go.sum
logo.png
main.go
tools.go

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.