Skip to content

Instantly share code, notes, and snippets.

Matt Weagle mweagle

Block or report user

Report or block mweagle

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@mweagle
mweagle / main.go
Created Aug 24, 2019
Code for Serverless Day Challenge on AWS Twitch
View main.go
package main
import (
"context"
"os"
"time"
gocf "github.com/mweagle/go-cloudformation"
"github.com/aws/aws-sdk-go/aws"
@mweagle
mweagle / design_doc_template.md
Created Jan 9, 2019
Design Document Template
View design_doc_template.md

Design Document

Design Document Template Title: Date: Status: (draft, in review, approved, in progress)

Executive Summary

(2–4 sentences explaining the project)

@mweagle
mweagle / provision.log
Created Oct 21, 2018
Hello World Sparta Provision
View provision.log
$ mage provision
INFO[0000] ════════════════════════════════════════════════
INFO[0000] ╔═╗╔═╗╔═╗╦═╗╔╦╗╔═╗ Version : 1.5.0
INFO[0000] ╚═╗╠═╝╠═╣╠╦╝ ║ ╠═╣ SHA : bdfb9d6
INFO[0000] ╚═╝╩ ╩ ╩╩╚═ ╩ ╩ ╩ Go : go1.11.1
INFO[0000] ════════════════════════════════════════════════
INFO[0000] Service: MyHelloWorldStack-mweagle LinkFlags= Option=provision UTC="2018-10-21T03:59:20Z"
INFO[0000] ════════════════════════════════════════════════
INFO[0000] Using `git` SHA for StampedBuildID Command="git rev-parse HEAD" SHA=b114e329ed37b532e1f7d2e727aa8211d9d5889c
INFO[0000] Provisioning service BuildID=b114e329ed37b532e1f7d2e727aa8211d9d5889c CodePipelineTrigger= InPlaceUpdates=false NOOP=false Tags=
View provision.log
INFO[0000] ════════════════════════════════════════════════
INFO[0000] ╔═╗┌─┐┌─┐┬─┐┌┬┐┌─┐ Version : 1.0.1
INFO[0000] ╚═╗├─┘├─┤├┬┘ │ ├─┤ SHA : 840ab43
INFO[0000] ╚═╝┴ ┴ ┴┴└─ ┴ ┴ ┴ Go : go1.9.2
INFO[0000] ════════════════════════════════════════════════
INFO[0000] Service: SpartaHTML-mweagle LinkFlags= Option=provision UTC="2018-01-22T02:34:47Z"
INFO[0000] ════════════════════════════════════════════════
INFO[0000] Provisioning service BuildID=d64f878f9a00d1300e3c8f2ec60cff856487de61 CodePipelineTrigger= InPlaceUpdates=false NOOP=false Tags=
INFO[0000] Verifying IAM Lambda execution roles
INFO[0000] IAM roles verified Count=1
View delegate.go
// Deploy it
stackName := spartaCF.UserScopedStackName("SpartaHTML")
sparta.Main(stackName,
fmt.Sprintf("SpartaHTML provisions a static S3 hosted website with an API Gateway resource backed by a custom Lambda function"),
spartaHTMLLambdaFunctions(apiGateway),
apiGateway,
s3Site)
View define_resource.go
if nil != api {
apiGatewayResource, _ := api.NewResource("/hello", lambdaFn)
// We only return http.StatusOK
apiMethod, apiMethodErr := apiGatewayResource.NewMethod("GET",
http.StatusOK,
http.StatusOK)
if nil != apiMethodErr {
panic("Failed to create /hello resource: " + apiMethodErr.Error())
}
View api_gateway_register.go
// Register the function with the API Gateway
apiStage := sparta.NewStage("v1")
apiGateway := sparta.NewAPIGateway("SpartaHTML", apiStage)
// Enable CORS s.t. the S3 site can access the resources
apiGateway.CORSOptions = &sparta.CORSOptions{
Headers: map[string]interface{}{
"Access-Control-Allow-Headers": "Content-Type,X-Amz-Date,Authorization,X-Api-Key",
"Access-Control-Allow-Methods": "*",
"Access-Control-Allow-Origin": gocf.GetAtt(s3Site.CloudFormationS3ResourceName(), "WebsiteURL"),
},
View hello_world_handler.go
type helloWorldResponse struct {
Message string
Request spartaAPIG.APIGatewayRequest
}
////////////////////////////////////////////////////////////////////////////////
// Hello world event handler
func helloWorld(ctx context.Context,
gatewayEvent spartaAPIG.APIGatewayRequest) (helloWorldResponse, error) {
View new_invalid_def.go
// AWS Lambda go style
func helloWorld() string {
return “Hello World”
}
View new_style_init.go
lambdaFn := sparta.HandleAWSLambda(“Hello World”,
helloWorld,
sparta.IAMRoleDefinition{})
You can’t perform that action at this time.