diff --git a/Readme.md b/Readme.md index 2badc20..2533e12 100644 --- a/Readme.md +++ b/Readme.md @@ -23,9 +23,10 @@ apex upgrade Currently supports: -- Nodejs +- Node.js - Golang - Python +- Java ## Features diff --git a/_examples/babel-browserify/project.json b/_examples/babel-browserify/project.json index de37c4b..913c18e 100644 --- a/_examples/babel-browserify/project.json +++ b/_examples/babel-browserify/project.json @@ -1,11 +1,9 @@ { "name": "babel", - "description": "Node.js Babel example project", + "description": "Node.js Babel (using browserify) example project", "role": "arn:aws:iam::293503197324:role/lambda", "runtime": "nodejs", "handler": "main.default", - "memory": 128, - "timeout": 30, "hooks": { "build": "../../node_modules/.bin/browserify -s default -t babelify -o main.js index.js", "clean": "rm -f main.js" diff --git a/_examples/babel-webpack/project.json b/_examples/babel-webpack/project.json index fddcbd4..457ce8d 100644 --- a/_examples/babel-webpack/project.json +++ b/_examples/babel-webpack/project.json @@ -1,11 +1,9 @@ { "name": "babel", - "description": "Node.js Babel example project", + "description": "Node.js Babel (using webpack) example project", "role": "arn:aws:iam::293503197324:role/lambda", "runtime": "nodejs", "handler": "lib.default", - "memory": 128, - "timeout": 30, "hooks": { "build": "../../node_modules/.bin/webpack --config ../../webpack.config.js", "clean": "rm -fr lib" diff --git a/_examples/go/functions/baz/function.json b/_examples/go/functions/baz/function.json deleted file mode 100644 index 4867f5b..0000000 --- a/_examples/go/functions/baz/function.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "description": "Go example function", - "timeout": 10 -} diff --git a/_examples/go/functions/baz/main.go b/_examples/go/functions/baz/main.go deleted file mode 100644 index 9362768..0000000 --- a/_examples/go/functions/baz/main.go +++ /dev/null @@ -1,17 +0,0 @@ -package main - -import ( - "encoding/json" - - "github.com/apex/go-apex" -) - -type message struct { - Hello string `json:"hello"` -} - -func main() { - apex.HandleFunc(func(event json.RawMessage, ctx *apex.Context) (interface{}, error) { - return &message{"baz"}, nil - }) -} diff --git a/_examples/go/functions/foo/main.go b/_examples/go/functions/foo/main.go deleted file mode 100644 index d73b7b5..0000000 --- a/_examples/go/functions/foo/main.go +++ /dev/null @@ -1,17 +0,0 @@ -package main - -import ( - "encoding/json" - - "github.com/apex/go-apex" -) - -type message struct { - Hello string `json:"hello"` -} - -func main() { - apex.HandleFunc(func(event json.RawMessage, ctx *apex.Context) (interface{}, error) { - return &message{"foo"}, nil - }) -} diff --git a/_examples/go/functions/simple/.apexignore b/_examples/go/functions/simple/.apexignore new file mode 100644 index 0000000..472fecd --- /dev/null +++ b/_examples/go/functions/simple/.apexignore @@ -0,0 +1 @@ +*.go \ No newline at end of file diff --git a/_examples/go/functions/bar/main.go b/_examples/go/functions/simple/main.go similarity index 68% rename from _examples/go/functions/bar/main.go rename to _examples/go/functions/simple/main.go index b18125e..b9ae57e 100644 --- a/_examples/go/functions/bar/main.go +++ b/_examples/go/functions/simple/main.go @@ -12,6 +12,12 @@ type message struct { func main() { apex.HandleFunc(func(event json.RawMessage, ctx *apex.Context) (interface{}, error) { - return &message{"bar"}, nil + var m message + + if err := json.Unmarshal(event, &m); err != nil { + return nil, err + } + + return m, nil }) } diff --git a/_examples/go/project.json b/_examples/go/project.json index af281cd..9a4f541 100644 --- a/_examples/go/project.json +++ b/_examples/go/project.json @@ -1,8 +1,5 @@ { "name": "go", "description": "Go example project", - "runtime": "golang", - "memory": 128, - "timeout": 5, "role": "arn:aws:iam::293503197324:role/lambda" } diff --git a/_examples/java/functions/bar/function.json b/_examples/java/functions/bar/function.json deleted file mode 100644 index 6ea9981..0000000 --- a/_examples/java/functions/bar/function.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "description": "Java example function", - "timeout": 1, - "memory": 256, - "runtime": "java", - "handler": "lambda.Example::handler" -} diff --git a/_examples/java/functions/foo/function.json b/_examples/java/functions/foo/function.json deleted file mode 100644 index 49bbc7d..0000000 --- a/_examples/java/functions/foo/function.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "description": "Java example function", - "timeout": 1, - "memory": 512, - "runtime": "java", - "handler": "lambda.Hello::handler" -} diff --git a/_examples/java/functions/foo/src/main/java/lambda/Hello.java b/_examples/java/functions/foo/src/main/java/lambda/Hello.java deleted file mode 100755 index 8739528..0000000 --- a/_examples/java/functions/foo/src/main/java/lambda/Hello.java +++ /dev/null @@ -1,49 +0,0 @@ -package lambda; - -import com.amazonaws.services.lambda.runtime.Context; - -public class Hello { - - public static class ExampleRequest { - String hello; - - public String getHello() { - return hello; - } - - public void setHello(String hello) { - this.hello = hello; - } - - public ExampleRequest(String hello) { - this.hello = hello; - } - - public ExampleRequest() { - } - } - - - public static class ExampleResponse { - String hello; - - public String getHello() { - return hello; - } - - public void setHello(String hello) { - this.hello = hello; - } - - public ExampleResponse(String hello) { - this.hello = hello; - } - - public ExampleResponse() { - } - } - - public ExampleResponse handler(ExampleRequest event, Context context) { - return new ExampleResponse("foo"); - } -} diff --git a/_examples/java/functions/simple/.apexignore b/_examples/java/functions/simple/.apexignore new file mode 100644 index 0000000..2a9bbbd --- /dev/null +++ b/_examples/java/functions/simple/.apexignore @@ -0,0 +1 @@ +*.java \ No newline at end of file diff --git a/_examples/java/functions/baz/src/main/java/lambda/Main.java b/_examples/java/functions/simple/src/main/java/lambda/Main.java similarity index 88% rename from _examples/java/functions/baz/src/main/java/lambda/Main.java rename to _examples/java/functions/simple/src/main/java/lambda/Main.java index c48740e..c432c7f 100755 --- a/_examples/java/functions/baz/src/main/java/lambda/Main.java +++ b/_examples/java/functions/simple/src/main/java/lambda/Main.java @@ -1,6 +1,6 @@ package lambda; -import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.Context; public class Main { @@ -23,7 +23,6 @@ public ExampleRequest() { } } - public static class ExampleResponse { String hello; @@ -44,6 +43,6 @@ public ExampleResponse() { } public ExampleResponse handler(ExampleRequest event, Context context) { - return new ExampleResponse("baz"); + return new ExampleResponse(event.getHello()); } } diff --git a/_examples/java/functions/with-pom/.apexignore b/_examples/java/functions/with-pom/.apexignore new file mode 100644 index 0000000..2a9bbbd --- /dev/null +++ b/_examples/java/functions/with-pom/.apexignore @@ -0,0 +1 @@ +*.java \ No newline at end of file diff --git a/_examples/java/functions/with-pom/function.json b/_examples/java/functions/with-pom/function.json new file mode 100644 index 0000000..51f0518 --- /dev/null +++ b/_examples/java/functions/with-pom/function.json @@ -0,0 +1,4 @@ +{ + "description": "Java example function with existing pom.xml", + "handler": "lambda.Example::handler" +} diff --git a/_examples/java/functions/bar/pom.xml b/_examples/java/functions/with-pom/pom.xml similarity index 100% rename from _examples/java/functions/bar/pom.xml rename to _examples/java/functions/with-pom/pom.xml diff --git a/_examples/java/functions/bar/src/main/java/lambda/Example.java b/_examples/java/functions/with-pom/src/main/java/lambda/Example.java similarity index 88% rename from _examples/java/functions/bar/src/main/java/lambda/Example.java rename to _examples/java/functions/with-pom/src/main/java/lambda/Example.java index 3ce479b..ee7f196 100755 --- a/_examples/java/functions/bar/src/main/java/lambda/Example.java +++ b/_examples/java/functions/with-pom/src/main/java/lambda/Example.java @@ -1,6 +1,6 @@ package lambda; -import com.amazonaws.services.lambda.runtime.Context; +import com.amazonaws.services.lambda.runtime.Context; public class Example { @@ -23,7 +23,6 @@ public ExampleRequest() { } } - public static class ExampleResponse { String hello; @@ -44,6 +43,6 @@ public ExampleResponse() { } public ExampleResponse handler(ExampleRequest event, Context context) { - return new ExampleResponse("bar"); + return new ExampleResponse(event.getHello()); } } diff --git a/_examples/java/project.json b/_examples/java/project.json index 5f6e9b0..885e614 100644 --- a/_examples/java/project.json +++ b/_examples/java/project.json @@ -1,7 +1,5 @@ { "name": "java", "description": "Java example project", - "memory": 128, - "timeout": 5, "role": "arn:aws:iam::293503197324:role/lambda" } diff --git a/_examples/node/functions/bar/function.json b/_examples/node/functions/bar/function.json deleted file mode 100644 index 94c658f..0000000 --- a/_examples/node/functions/bar/function.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "description": "Node.js example function", - "timeout": 1, - "memory": 512, - "environment": { - "LOGGLY_TOKEN": "9999999999" - } -} diff --git a/_examples/node/functions/bar/index.js b/_examples/node/functions/bar/index.js deleted file mode 100644 index 88d2722..0000000 --- a/_examples/node/functions/bar/index.js +++ /dev/null @@ -1,6 +0,0 @@ - -console.log('start bar LOGGLY_TOKEN=%s', process.env.LOGGLY_TOKEN) -exports.handle = function(e, ctx) { - console.log('processing event: %j', e) - ctx.succeed({ hello: 'bar' }) -} diff --git a/_examples/node/functions/foo/function.json b/_examples/node/functions/foo/function.json deleted file mode 100644 index fcaaf6b..0000000 --- a/_examples/node/functions/foo/function.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "description": "Node.js example function", - "timeout": 10, - "memory": 128 -} diff --git a/_examples/node/functions/foo/index.js b/_examples/node/functions/foo/index.js deleted file mode 100644 index f770e6b..0000000 --- a/_examples/node/functions/foo/index.js +++ /dev/null @@ -1,6 +0,0 @@ - -console.log('start foo LOGGLY_TOKEN=%s', process.env.LOGGLY_TOKEN) -exports.handle = function(e, ctx) { - console.log('processing event: %j', e) - ctx.succeed({ hello: 'foo' }) -} diff --git a/_examples/node/functions/more-resources/function.json b/_examples/node/functions/more-resources/function.json new file mode 100644 index 0000000..3d93986 --- /dev/null +++ b/_examples/node/functions/more-resources/function.json @@ -0,0 +1,5 @@ +{ + "description": "Node.js example function with more memory and higher timeout", + "timeout": 10, + "memory": 128 +} diff --git a/_examples/node/functions/more-resources/index.js b/_examples/node/functions/more-resources/index.js new file mode 100644 index 0000000..12ee2df --- /dev/null +++ b/_examples/node/functions/more-resources/index.js @@ -0,0 +1,6 @@ + +console.log('start more-resources') +exports.handle = function(e, ctx) { + console.log('processing event: %j', e) + ctx.succeed({ hello: e.hello }) +} \ No newline at end of file diff --git a/_examples/node/functions/baz/index.js b/_examples/node/functions/simple/index.js similarity index 56% rename from _examples/node/functions/baz/index.js rename to _examples/node/functions/simple/index.js index 297aafa..c135553 100644 --- a/_examples/node/functions/baz/index.js +++ b/_examples/node/functions/simple/index.js @@ -1,6 +1,6 @@ -console.log('start baz') +console.log('start simple') exports.handle = function(e, ctx) { console.log('processing event: %j', e) - ctx.succeed({ hello: 'baz' }) + ctx.succeed({ hello: e.hello }) } diff --git a/_examples/node/functions/using-env/function.json b/_examples/node/functions/using-env/function.json new file mode 100644 index 0000000..eac688c --- /dev/null +++ b/_examples/node/functions/using-env/function.json @@ -0,0 +1,6 @@ +{ + "description": "Node.js example function using environment variables", + "environment": { + "LOGGLY_TOKEN": "some token defined in function.json" + } +} diff --git a/_examples/node/functions/using-env/index.js b/_examples/node/functions/using-env/index.js new file mode 100644 index 0000000..8bd0c71 --- /dev/null +++ b/_examples/node/functions/using-env/index.js @@ -0,0 +1,9 @@ + +console.log('start using-env LOGGLY_TOKEN=%s', process.env.LOGGLY_TOKEN) +exports.handle = function(e, ctx) { + console.log('processing event: %j', e) + ctx.succeed({ + hello: 'bar', + token_used: process.env.LOGGLY_TOKEN + }) +} diff --git a/_examples/node/project.json b/_examples/node/project.json index d2bdce5..76a0071 100644 --- a/_examples/node/project.json +++ b/_examples/node/project.json @@ -1,10 +1,8 @@ { "name": "node", "description": "Node.js example project", - "memory": 128, - "timeout": 5, "role": "arn:aws:iam::293503197324:role/lambda", "environment": { - "LOGGLY_TOKEN": "123123123123" + "LOGGLY_TOKEN": "some token defined in project.json" } } diff --git a/_examples/python/functions/bar/main.py b/_examples/python/functions/bar/main.py deleted file mode 100644 index 04e9eb5..0000000 --- a/_examples/python/functions/bar/main.py +++ /dev/null @@ -1,5 +0,0 @@ - -print "start bar" -def handle(event, context): - print "processing event" - return event diff --git a/_examples/python/functions/dependency/.apexignore b/_examples/python/functions/dependency/.apexignore index d9de23f..303da17 100644 --- a/_examples/python/functions/dependency/.apexignore +++ b/_examples/python/functions/dependency/.apexignore @@ -1 +1 @@ -*.dist-info/* \ No newline at end of file +*.dist-info/ \ No newline at end of file diff --git a/_examples/python/functions/dependency/function.json b/_examples/python/functions/dependency/function.json index c83aa21..55315f1 100644 --- a/_examples/python/functions/dependency/function.json +++ b/_examples/python/functions/dependency/function.json @@ -1,4 +1,3 @@ { - "name": "dependency", "description": "Example with python dependency on an external package" } diff --git a/_examples/python/functions/foo/main.py b/_examples/python/functions/foo/main.py deleted file mode 100644 index dc0c9a8..0000000 --- a/_examples/python/functions/foo/main.py +++ /dev/null @@ -1,5 +0,0 @@ - -print "start foo" -def handle(event, context): - print "processing event" - return event diff --git a/_examples/python/functions/baz/main.py b/_examples/python/functions/simple/main.py similarity index 71% rename from _examples/python/functions/baz/main.py rename to _examples/python/functions/simple/main.py index 1acb130..fe76c97 100644 --- a/_examples/python/functions/baz/main.py +++ b/_examples/python/functions/simple/main.py @@ -1,5 +1,5 @@ -print "start baz" +print "start simple function" def handle(event, context): print "processing event" return event diff --git a/_examples/python/project.json b/_examples/python/project.json index d9eaac8..892892a 100644 --- a/_examples/python/project.json +++ b/_examples/python/project.json @@ -1,7 +1,5 @@ { "name": "python", "description": "Python example project", - "memory": 128, - "timeout": 5, "role": "arn:aws:iam::293503197324:role/lambda" }