/
main.go
80 lines (63 loc) · 1.5 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package main
import (
"context"
"flag"
"log/slog"
"os"
"github.com/aws/aws-lambda-go/lambda"
"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/yunomu/auth/lib/db/userlist"
"github.com/yunomu/auth/api/restrictions/internal/handler"
)
var (
logger *slog.Logger
debug = flag.Bool("g", false, "Debug")
)
func init() {
levelVar := new(slog.LevelVar)
if *debug {
levelVar.Set(slog.LevelDebug)
}
logger = slog.New(slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{
Level: levelVar,
}))
}
type handlerLogger struct {
logger *slog.Logger
}
func (h *handlerLogger) Error(err error, msg string, req *handler.Request, args ...interface{}) {
h.logger.Error(msg, append([]interface{}{
"error", err,
"request", req,
}, args...)...)
}
func (h *handlerLogger) Info(msg string, req *handler.Request, args ...interface{}) {
h.logger.Info(msg, append([]interface{}{
"request", req,
}, args...)...)
}
func main() {
ctx := context.Background()
region := os.Getenv("REGION")
restrictionTable := os.Getenv("RESTRICTION_TABLE")
sess, err := session.NewSession(aws.NewConfig().WithRegion(region))
if err != nil {
logger.Error("NewSession",
"err", err,
"region", region,
)
return
}
h := handler.NewHandler(
userlist.NewDynamoDB(
dynamodb.New(sess),
restrictionTable,
),
handler.SetLogger(&handlerLogger{
logger: logger.With("module", "handler"),
}),
)
lambda.StartWithContext(ctx, h.Serve)
}