package main
import (
"encoding/json"
"log"
"net/http"
"os"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
"github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
"github.com/demo/db"
)
var region, tableName string
var sess *session.Session
var svc *dynamodb.DynamoDB
func handler(w http.ResponseWriter, r *http.Request) {
param := &dynamodb.ScanInput{
TableName: aws.String(tableName),
}
result, err := svc.Scan(param)
if err != nil {
log.Fatal(err)
}
items := []db.Item{}
err = dynamodbattribute.UnmarshalListOfMaps(result.Items, &items)
if err != nil {
log.Fatal(err)
}
json.NewEncoder(w).Encode(items)
}
func init() {
region = os.Getenv("AWS_REGION")
tableName = os.Getenv("TABLE")
sess, err := session.NewSession(&aws.Config{
Region: aws.String(region),
})
if err != nil {
log.Fatal(err)
}
svc = dynamodb.New(sess)
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Last active
August 19, 2018 14:12
-
-
Save crazyguitar/ccca74eb13c3011d8461ceb47a7ae01e to your computer and use it in GitHub Desktop.
Dynamodb Go
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment