Skip to content

moritzzimmer/func

Repository files navigation

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 and deployment automation using make
  • IaaS using terraform modules (terraform-aws-lambda)
  • continuous integration using GitHub actions

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.21/func_0.0.21_darwin_amd64.tar.gz
$ tar -xvzf func_0.0.21_darwin_amd64.tar.gz
$ sudo mv func /usr/local/bin/func

GNU/Linux

$ wget https://github.com/moritzzimmer/func/releases/download/v0.0.21/func_0.0.21_linux_amd64.tar.gz
$ tar -xvzf func_0.0.21_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, gh] (default "none")
  -d, --dry-run        dry run
  -e, --event string   event type triggering the Lambda function [cloudwatch-event, dynamodb, kinesis, s3, sns, sqs] (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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published