Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
283 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
.PHONY: build clean deploy gomodgen | ||
|
||
build: gomodgen | ||
export GO111MODULE=on | ||
env GOOS=linux go build -ldflags="-s -w" -o bin/hello hello/main.go | ||
env GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go | ||
|
||
clean: | ||
rm -rf ./bin ./vendor Gopkg.lock | ||
|
||
deploy: clean build | ||
sls deploy --verbose | ||
|
||
gomodgen: | ||
chmod u+x gomod.sh | ||
./gomod.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Serverless directories | ||
.serverless | ||
|
||
# golang output binary directory | ||
bin | ||
|
||
# golang vendor (dependencies) directory | ||
vendor | ||
|
||
# Binaries for programs and plugins | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
|
||
# Test binary, build with `go test -c` | ||
*.test | ||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#!/bin/bash | ||
set -eu | ||
|
||
touch go.mod | ||
|
||
PROJECT_NAME=$(basename $(pwd | xargs dirname)) | ||
CURRENT_DIR=$(basename $(pwd)) | ||
|
||
CONTENT=$(cat <<-EOD | ||
module github.com/${PROJECT_NAME}/${CURRENT_DIR} | ||
require github.com/aws/aws-lambda-go v1.6.0 | ||
EOD) | ||
echo "$CONTENT" > go.mod |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package main | ||
|
||
import ( | ||
"bytes" | ||
"context" | ||
"encoding/json" | ||
|
||
"github.com/aws/aws-lambda-go/events" | ||
"github.com/aws/aws-lambda-go/lambda" | ||
) | ||
|
||
// Response is of type APIGatewayProxyResponse since we're leveraging the | ||
// AWS Lambda Proxy Request functionality (default behavior) | ||
// | ||
// https://serverless.com/framework/docs/providers/aws/events/apigateway/#lambda-proxy-integration | ||
type Response events.APIGatewayProxyResponse | ||
|
||
// Handler is our lambda handler invoked by the `lambda.Start` function call | ||
func Handler(ctx context.Context) (Response, error) { | ||
var buf bytes.Buffer | ||
|
||
body, err := json.Marshal(map[string]interface{}{ | ||
"message": "Go Serverless v1.0! Your function executed successfully!", | ||
}) | ||
if err != nil { | ||
return Response{StatusCode: 404}, err | ||
} | ||
json.HTMLEscape(&buf, body) | ||
|
||
resp := Response{ | ||
StatusCode: 200, | ||
IsBase64Encoded: false, | ||
Body: buf.String(), | ||
Headers: map[string]string{ | ||
"Content-Type": "application/json", | ||
"X-MyCompany-Func-Reply": "hello-handler", | ||
}, | ||
} | ||
|
||
return resp, nil | ||
} | ||
|
||
func main() { | ||
lambda.Start(Handler) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# Welcome to Serverless! | ||
# | ||
# This file is the main config file for your service. | ||
# It's very minimal at this point and uses default values. | ||
# You can always add more config options for more control. | ||
# We've included some commented out config examples here. | ||
# Just uncomment any of them to get that config option. | ||
# | ||
# For full config options, check the docs: | ||
# docs.serverless.com | ||
# | ||
# Happy Coding! | ||
|
||
service: aws-go-mod # NOTE: update this with your service name | ||
|
||
# You can pin your service to only deploy with a specific Serverless version | ||
# Check out our docs for more details | ||
# frameworkVersion: "=X.X.X" | ||
frameworkVersion: ">=1.28.0 <2.0.0" | ||
|
||
provider: | ||
name: aws | ||
runtime: go1.x | ||
|
||
# you can overwrite defaults here | ||
# stage: dev | ||
# region: us-east-1 | ||
|
||
# you can add statements to the Lambda function's IAM Role here | ||
# iamRoleStatements: | ||
# - Effect: "Allow" | ||
# Action: | ||
# - "s3:ListBucket" | ||
# Resource: { "Fn::Join" : ["", ["arn:aws:s3:::", { "Ref" : "ServerlessDeploymentBucket" } ] ] } | ||
# - Effect: "Allow" | ||
# Action: | ||
# - "s3:PutObject" | ||
# Resource: | ||
# Fn::Join: | ||
# - "" | ||
# - - "arn:aws:s3:::" | ||
# - "Ref" : "ServerlessDeploymentBucket" | ||
# - "/*" | ||
|
||
# you can define service wide environment variables here | ||
# environment: | ||
# variable1: value1 | ||
|
||
package: | ||
exclude: | ||
- ./** | ||
include: | ||
- ./bin/** | ||
|
||
functions: | ||
hello: | ||
handler: bin/hello | ||
events: | ||
- http: | ||
path: hello | ||
method: get | ||
world: | ||
handler: bin/world | ||
events: | ||
- http: | ||
path: world | ||
method: get | ||
|
||
# The following are a few example events you can configure | ||
# NOTE: Please make sure to change your handler code to work with those events | ||
# Check the event documentation for details | ||
# events: | ||
# events: | ||
# - http: | ||
# path: users/create | ||
# method: get | ||
# - s3: ${env:BUCKET} | ||
# - schedule: rate(10 minutes) | ||
# - sns: greeter-topic | ||
# - stream: arn:aws:dynamodb:region:XXXXXX:table/foo/stream/1970-01-01T00:00:00.000 | ||
# - alexaSkill: amzn1.ask.skill.xx-xx-xx-xx | ||
# - alexaSmartHome: amzn1.ask.skill.xx-xx-xx-xx | ||
# - iot: | ||
# sql: "SELECT * FROM 'some_topic'" | ||
# - cloudwatchEvent: | ||
# event: | ||
# source: | ||
# - "aws.ec2" | ||
# detail-type: | ||
# - "EC2 Instance State-change Notification" | ||
# detail: | ||
# state: | ||
# - pending | ||
# - cloudwatchLog: '/aws/lambda/hello' | ||
# - cognitoUserPool: | ||
# pool: MyUserPool | ||
# trigger: PreSignUp | ||
|
||
# Define function environment variables here | ||
# environment: | ||
# variable2: value2 | ||
|
||
# you can add CloudFormation resource templates here | ||
#resources: | ||
# Resources: | ||
# NewResource: | ||
# Type: AWS::S3::Bucket | ||
# Properties: | ||
# BucketName: my-new-bucket | ||
# Outputs: | ||
# NewOutput: | ||
# Description: "Description for the output" | ||
# Value: "Some output value" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package main | ||
|
||
import ( | ||
"bytes" | ||
"context" | ||
"encoding/json" | ||
|
||
"github.com/aws/aws-lambda-go/events" | ||
"github.com/aws/aws-lambda-go/lambda" | ||
) | ||
|
||
// Response is of type APIGatewayProxyResponse since we're leveraging the | ||
// AWS Lambda Proxy Request functionality (default behavior) | ||
// | ||
// https://serverless.com/framework/docs/providers/aws/events/apigateway/#lambda-proxy-integration | ||
type Response events.APIGatewayProxyResponse | ||
|
||
// Handler is our lambda handler invoked by the `lambda.Start` function call | ||
func Handler(ctx context.Context) (Response, error) { | ||
var buf bytes.Buffer | ||
|
||
body, err := json.Marshal(map[string]interface{}{ | ||
"message": "Okay so your other function also executed successfully!", | ||
}) | ||
if err != nil { | ||
return Response{StatusCode: 404}, err | ||
} | ||
json.HTMLEscape(&buf, body) | ||
|
||
resp := Response{ | ||
StatusCode: 200, | ||
IsBase64Encoded: false, | ||
Body: buf.String(), | ||
Headers: map[string]string{ | ||
"Content-Type": "application/json", | ||
"X-MyCompany-Func-Reply": "world-handler", | ||
}, | ||
} | ||
|
||
return resp, nil | ||
} | ||
|
||
func main() { | ||
lambda.Start(Handler) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters