inital commit
This commit is contained in:
@@ -47,12 +47,20 @@ function App(): JSX.Element {
|
||||
<li>
|
||||
<Link to='/'>Home</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link to='/players'>Players</Link>
|
||||
</li>
|
||||
{
|
||||
/*
|
||||
|
||||
<li>
|
||||
<Link to='/tournaments/stray_sheep_0/players'>Players</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link to='/tournaments/stray_sheep_0/scoreboard'>Scoreboard</Link>
|
||||
</li>
|
||||
*/
|
||||
}
|
||||
<li>
|
||||
<Link to='/guide'>Guide</Link>
|
||||
</li>
|
||||
|
||||
@@ -14,17 +14,15 @@ export const Home: FunctionComponent<ComponentProps> = (props): JSX.Element => {
|
||||
return (
|
||||
<div className={style.mainBody}>
|
||||
<div className={style.chalice} />
|
||||
<div className={style.titleImageStrayShip0} />
|
||||
<div className={style.players} />
|
||||
<div className={style.titleImageStrayShip4} />
|
||||
<div className={style.padding} />
|
||||
<div className={style.tonamel}>
|
||||
<a href='https://tonamel.com/competition/49WpE' rel='noopener noreferrer' target='_blank'> </a>
|
||||
</div>
|
||||
<div className={style.padding} />
|
||||
<div className={style.rule} />
|
||||
<div className={style.twitchHome}>
|
||||
<a href='https://www.twitch.tv/catherine_faito_crab' rel='noopener noreferrer' target='_blank'> </a>
|
||||
</div>
|
||||
<YouTube
|
||||
videoId={'oetCaugzOew'}
|
||||
opts={opts}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -464,6 +464,14 @@
|
||||
background-size: contain;
|
||||
background-repeat: none;
|
||||
}
|
||||
.titleImageStrayShip4 {
|
||||
width: 808px;
|
||||
height: 119px;
|
||||
margin: auto;
|
||||
background-image: url('https://static.catherine-fc.com/media/straysheepcup4.png');
|
||||
background-size: contain;
|
||||
background-repeat: none;
|
||||
}
|
||||
.rule {
|
||||
width: 900px;
|
||||
height: 637px;
|
||||
@@ -472,7 +480,19 @@
|
||||
background-size: contain;
|
||||
background-repeat: none;
|
||||
}
|
||||
|
||||
.tonamel {
|
||||
width: 900px;
|
||||
height: 637px;
|
||||
margin: auto;
|
||||
background-image: url('https://static.catherine-fc.com/media/tonamel.png');
|
||||
background-size: contain;
|
||||
background-repeat: none;
|
||||
&> a {
|
||||
display:block;
|
||||
width: 900px;
|
||||
height: 637px;
|
||||
}
|
||||
}
|
||||
.padding {
|
||||
width: 900px;
|
||||
height: 100px;
|
||||
|
||||
@@ -7,6 +7,7 @@ import dotenv from 'dotenv';
|
||||
import { v1 } from 'uuid';
|
||||
|
||||
import { IJankenSelect, IJankenResult } from './models/message';
|
||||
import { IRoom } from './models';
|
||||
|
||||
dotenv.config();
|
||||
const port: number = 8080;
|
||||
@@ -157,13 +158,9 @@ httpServer.listen(port, () => {
|
||||
|
||||
// Janken Tool
|
||||
|
||||
let room: boolean = false;
|
||||
let playerOne: string = '';
|
||||
let playerTwo: string = '';
|
||||
let playerOneOption: string = '';
|
||||
let playerTwoOption: string = '';
|
||||
let stages: string[] = [];
|
||||
let currentIndex: number = 0;
|
||||
let rooms: Record<string, IRoom> = {};
|
||||
const defaultStages: string[] = ['cementery', 'prison', 'torture', 'inquisition', 'quadrangle', 'clock', 'spiral', 'empireo', 'cathedral', 'close', 'arrange'];
|
||||
|
||||
io.on('connection', (socket: socketIo.Socket) => {
|
||||
@@ -174,45 +171,74 @@ io.on('connection', (socket: socketIo.Socket) => {
|
||||
socket.on('exitGame', () => {
|
||||
console.log('exitGame');
|
||||
io.emit('exitGame');
|
||||
room = false;
|
||||
initRoom();
|
||||
rooms = {};
|
||||
Object.keys(io.sockets.sockets).forEach((s: string) => {
|
||||
io.sockets.sockets[s].disconnect(true);
|
||||
});
|
||||
});
|
||||
socket.on('janken', (data: IJankenSelect) => {
|
||||
console.log('janken', data);
|
||||
if (playerOne === data.userName) {
|
||||
playerOneOption = data.option;
|
||||
} else if (playerTwo === data.userName) {
|
||||
playerTwoOption = data.option;
|
||||
}
|
||||
console.log('playerOneOption', playerOneOption);
|
||||
console.log('playerTwoOption', playerTwoOption);
|
||||
if (playerOneOption !== '' && playerTwoOption !== '') {
|
||||
const message: IJankenResult = {
|
||||
playerOne,
|
||||
playerOneOption,
|
||||
playerTwo,
|
||||
playerTwoOption
|
||||
};
|
||||
io.emit('jankenResult', message);
|
||||
const currentRoom = rooms[data.room];
|
||||
if (currentRoom) {
|
||||
if (currentRoom.playerOne === data.userName) {
|
||||
currentRoom.playerOneOption = data.option;
|
||||
} else if (currentRoom.playerTwo === data.userName) {
|
||||
currentRoom.playerTwoOption = data.option;
|
||||
}
|
||||
console.log('playerOneOption', currentRoom.playerOneOption);
|
||||
console.log('playerTwoOption', currentRoom.playerTwoOption);
|
||||
if (currentRoom.playerOneOption !== '' && currentRoom.playerTwoOption !== '') {
|
||||
const message: IJankenResult = {
|
||||
playerOne: currentRoom.playerOne,
|
||||
playerOneOption: currentRoom.playerOneOption,
|
||||
playerTwo: currentRoom.playerTwo,
|
||||
playerTwoOption: currentRoom.playerTwoOption
|
||||
};
|
||||
io.to(data.room).emit('jankenResult', message);
|
||||
const sqlToPrepare = 'INSERT INTO `janken` (`match`, `result`) VALUES(?, ?);';
|
||||
const sql = mysql.format(sqlToPrepare, [data.room, JSON.stringify(message)]);
|
||||
connection.query(sql,
|
||||
(error: mysql.MysqlError | null, results: any) => {
|
||||
if (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
);
|
||||
if (currentRoom.playerOneOption !== currentRoom.playerTwoOption) {
|
||||
delete rooms[data.room];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
socket.on('registerUser', (data: string) => {
|
||||
socket.on('registerUser', (data: {username: string, room: string}) => {
|
||||
console.log('registerUser', data);
|
||||
if (playerOne === '') {
|
||||
playerOne = data;
|
||||
socket.emit('registerUser', data);
|
||||
} else if (playerTwo === '') {
|
||||
playerTwo = data;
|
||||
socket.emit('registerUser', data);
|
||||
let currentRoom: IRoom = {
|
||||
playerOne: '',
|
||||
playerTwo: '',
|
||||
playerOneOption: '',
|
||||
playerTwoOption: ''
|
||||
};
|
||||
if (rooms[data.room]) {
|
||||
currentRoom = rooms[data.room];
|
||||
} else {
|
||||
rooms = {
|
||||
...rooms,
|
||||
[data.room]: currentRoom
|
||||
};
|
||||
}
|
||||
socket.join(data.room);
|
||||
if (currentRoom.playerOne === '') {
|
||||
currentRoom.playerOne = data.username;
|
||||
socket.emit('registerUser', data.username);
|
||||
} else if (currentRoom.playerTwo === '') {
|
||||
currentRoom.playerTwo = data.username;
|
||||
socket.emit('registerUser', data.username);
|
||||
}
|
||||
const message = {
|
||||
playerOne,
|
||||
playerTwo
|
||||
playerOne: currentRoom.playerOne,
|
||||
playerTwo: currentRoom.playerTwo
|
||||
};
|
||||
io.emit('login', message);
|
||||
io.to(data.room).emit('login', message);
|
||||
});
|
||||
socket.on('moveToStage', () => {
|
||||
console.log('moveToStage');
|
||||
@@ -227,11 +253,14 @@ io.on('connection', (socket: socketIo.Socket) => {
|
||||
io.emit('updateIndex', currentIndex);
|
||||
}
|
||||
});
|
||||
socket.on('againGame', () => {
|
||||
console.log('againGame');
|
||||
io.emit('againGame');
|
||||
playerOneOption = '';
|
||||
playerTwoOption = '';
|
||||
socket.on('againGame', (room: string) => {
|
||||
const currentRoom = rooms[room];
|
||||
if (currentRoom) {
|
||||
console.log('againGame');
|
||||
io.to(room).emit('againGame');
|
||||
currentRoom.playerOneOption = '';
|
||||
currentRoom.playerTwoOption = '';
|
||||
}
|
||||
});
|
||||
socket.on('previousIndex', () => {
|
||||
console.log('previousIndex');
|
||||
@@ -240,6 +269,7 @@ io.on('connection', (socket: socketIo.Socket) => {
|
||||
io.emit('updateIndex', currentIndex);
|
||||
}
|
||||
});
|
||||
/*
|
||||
if (!room) {
|
||||
// create new room
|
||||
initRoom();
|
||||
@@ -264,15 +294,14 @@ io.on('connection', (socket: socketIo.Socket) => {
|
||||
socket.emit('stages', message);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
const initialmessage = {
|
||||
playerOne: '',
|
||||
playerTwo: '',
|
||||
};
|
||||
socket.emit('login', initialmessage);
|
||||
});
|
||||
const shuffle = (array: string[]): string[] => {
|
||||
return array.sort(() => Math.random() - 0.5);
|
||||
};
|
||||
|
||||
const initRoom = (): void => {
|
||||
playerOne = '';
|
||||
playerTwo = '';
|
||||
playerOneOption = '';
|
||||
playerTwoOption = '';
|
||||
};
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
export interface IRoom {
|
||||
playerOne: string;
|
||||
playerTwo: string;
|
||||
playerOneOption: string;
|
||||
playerTwoOption: string;
|
||||
}
|
||||
|
||||
@@ -16,5 +16,6 @@ export interface ILogin {
|
||||
|
||||
export interface IJankenSelect {
|
||||
userName: string;
|
||||
room: string;
|
||||
option: string;
|
||||
}
|
||||
|
||||
1
main-web/serverless/go/.gitignore
vendored
Normal file
1
main-web/serverless/go/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
pkg/
|
||||
BIN
main-web/serverless/go/bin/go-outline
Normal file
BIN
main-web/serverless/go/bin/go-outline
Normal file
Binary file not shown.
BIN
main-web/serverless/go/bin/gopls
Normal file
BIN
main-web/serverless/go/bin/gopls
Normal file
Binary file not shown.
21
main-web/serverless/go/src/catherine-fc-api/.gitignore
vendored
Normal file
21
main-web/serverless/go/src/catherine-fc-api/.gitignore
vendored
Normal file
@@ -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
|
||||
91
main-web/serverless/go/src/catherine-fc-api/Gopkg.lock
generated
Normal file
91
main-web/serverless/go/src/catherine-fc-api/Gopkg.lock
generated
Normal file
@@ -0,0 +1,91 @@
|
||||
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
|
||||
|
||||
|
||||
[[projects]]
|
||||
digest = "1:1f2ee62e40b3b0ca8403e49a07afb9ae8c0980391be1986e9f6c4ac9de1b1a90"
|
||||
name = "github.com/aws/aws-lambda-go"
|
||||
packages = [
|
||||
"events",
|
||||
"lambda",
|
||||
"lambda/handlertrace",
|
||||
"lambda/messages",
|
||||
"lambdacontext",
|
||||
]
|
||||
pruneopts = ""
|
||||
revision = "55dc88be4cdfaaf4bb4d9f65debd8d4310e0a83c"
|
||||
version = "v1.19.1"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:913aa8374d300095f235fe6762f74a9ca82bf1fb30d4f830540b2a5dd6f993e4"
|
||||
name = "github.com/aws/aws-sdk-go"
|
||||
packages = [
|
||||
"aws",
|
||||
"aws/awserr",
|
||||
"aws/awsutil",
|
||||
"aws/client",
|
||||
"aws/client/metadata",
|
||||
"aws/corehandlers",
|
||||
"aws/credentials",
|
||||
"aws/credentials/ec2rolecreds",
|
||||
"aws/credentials/endpointcreds",
|
||||
"aws/credentials/processcreds",
|
||||
"aws/credentials/stscreds",
|
||||
"aws/csm",
|
||||
"aws/defaults",
|
||||
"aws/ec2metadata",
|
||||
"aws/endpoints",
|
||||
"aws/request",
|
||||
"aws/session",
|
||||
"aws/signer/v4",
|
||||
"internal/context",
|
||||
"internal/ini",
|
||||
"internal/sdkio",
|
||||
"internal/sdkmath",
|
||||
"internal/sdkrand",
|
||||
"internal/sdkuri",
|
||||
"internal/shareddefaults",
|
||||
"internal/strings",
|
||||
"internal/sync/singleflight",
|
||||
"private/protocol",
|
||||
"private/protocol/json/jsonutil",
|
||||
"private/protocol/jsonrpc",
|
||||
"private/protocol/query",
|
||||
"private/protocol/query/queryutil",
|
||||
"private/protocol/rest",
|
||||
"private/protocol/xml/xmlutil",
|
||||
"service/ssm",
|
||||
"service/sts",
|
||||
"service/sts/stsiface",
|
||||
]
|
||||
pruneopts = ""
|
||||
revision = "2bec4e3ae9cb717c0082a489e75ab9db71c98b23"
|
||||
version = "v1.34.22"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:a67f9275b42e8bb95ba38f705062175ef65538bcdc107e0771763e6cde80c3c3"
|
||||
name = "github.com/go-sql-driver/mysql"
|
||||
packages = ["."]
|
||||
pruneopts = ""
|
||||
revision = "17ef3dd9d98b69acec3e85878995ada9533a9370"
|
||||
version = "v1.5.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:13fe471d0ed891e8544eddfeeb0471fd3c9f2015609a1c000aefdedf52a19d40"
|
||||
name = "github.com/jmespath/go-jmespath"
|
||||
packages = ["."]
|
||||
pruneopts = ""
|
||||
revision = "c2b33e84"
|
||||
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
input-imports = [
|
||||
"github.com/aws/aws-lambda-go/events",
|
||||
"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/ssm",
|
||||
"github.com/go-sql-driver/mysql",
|
||||
]
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
||||
25
main-web/serverless/go/src/catherine-fc-api/Gopkg.toml
Normal file
25
main-web/serverless/go/src/catherine-fc-api/Gopkg.toml
Normal file
@@ -0,0 +1,25 @@
|
||||
# Gopkg.toml example
|
||||
#
|
||||
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
|
||||
# for detailed Gopkg.toml documentation.
|
||||
#
|
||||
# required = ["github.com/user/thing/cmd/thing"]
|
||||
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project"
|
||||
# version = "1.0.0"
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project2"
|
||||
# branch = "dev"
|
||||
# source = "github.com/myfork/project2"
|
||||
#
|
||||
# [[override]]
|
||||
# name = "github.com/x/y"
|
||||
# version = "2.4.0"
|
||||
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/aws/aws-lambda-go"
|
||||
version = "1.x"
|
||||
12
main-web/serverless/go/src/catherine-fc-api/Makefile
Normal file
12
main-web/serverless/go/src/catherine-fc-api/Makefile
Normal file
@@ -0,0 +1,12 @@
|
||||
.PHONY: build clean deploy
|
||||
|
||||
build:
|
||||
dep ensure -v
|
||||
env GOOS=linux go build -ldflags="-s -w" -o bin/archive archive/main.go
|
||||
env GOOS=linux go build -ldflags="-s -w" -o bin/guide guide/main.go
|
||||
|
||||
clean:
|
||||
rm -rf ./bin ./vendor Gopkg.lock
|
||||
|
||||
deploy: clean build
|
||||
sls deploy --verbose
|
||||
72
main-web/serverless/go/src/catherine-fc-api/archive/main.go
Normal file
72
main-web/serverless/go/src/catherine-fc-api/archive/main.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
|
||||
"github.com/aws/aws-lambda-go/events"
|
||||
"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/ssm"
|
||||
)
|
||||
|
||||
// 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) {
|
||||
svc := ssm.New(session.New(), &aws.Config{
|
||||
Region: aws.String("ap-northeast-1"),
|
||||
})
|
||||
res, _ := svc.GetParameter(&ssm.GetParameterInput{
|
||||
Name: aws.String("db-endpoint"),
|
||||
WithDecryption: aws.Bool(true),
|
||||
})
|
||||
dbendpoint := *res.Parameter.Value
|
||||
|
||||
/*
|
||||
res, _ = svc.GetParameter(&ssm.GetParameterInput{
|
||||
Name: aws.String("db-username"),
|
||||
WithDecryption: aws.Bool(true),
|
||||
})
|
||||
dbusername := *res.Parameter.Value
|
||||
res, _ = svc.GetParameter(&ssm.GetParameterInput{
|
||||
Name: aws.String("db-password"),
|
||||
WithDecryption: aws.Bool(true),
|
||||
})
|
||||
dbpassword := *res.Parameter.Value
|
||||
*/
|
||||
var buf bytes.Buffer
|
||||
|
||||
body, err := json.Marshal(map[string]interface{}{
|
||||
"message": "Okay so your other function also executed successfully!",
|
||||
"dbendpoint": dbendpoint,
|
||||
})
|
||||
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)
|
||||
}
|
||||
45
main-web/serverless/go/src/catherine-fc-api/guide/main.go
Normal file
45
main-web/serverless/go/src/catherine-fc-api/guide/main.go
Normal file
@@ -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)
|
||||
}
|
||||
152
main-web/serverless/go/src/catherine-fc-api/serverless.yml
Normal file
152
main-web/serverless/go/src/catherine-fc-api/serverless.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
# 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: catherine-fc-api
|
||||
# app and org for use with dashboard.serverless.com
|
||||
#app: your-app-name
|
||||
#org: your-org-name
|
||||
custom:
|
||||
VpcId:
|
||||
dev: "vpc-c54553a2"
|
||||
sqa: "vpc-c54553a2"
|
||||
int: "vpc-c54553a2"
|
||||
uat: "vpc-c54553a2"
|
||||
prd: "vpc-c54553a2"
|
||||
Subnet1:
|
||||
dev: "subnet-0d0fdf45"
|
||||
sqa: "subnet-0d0fdf45"
|
||||
int: "subnet-0d0fdf45"
|
||||
uat: "subnet-0d0fdf45"
|
||||
prd: "subnet-0d0fdf45"
|
||||
Subnet2:
|
||||
dev: "subnet-4dcecc16"
|
||||
sqa: "subnet-4dcecc16"
|
||||
int: "subnet-4dcecc16"
|
||||
uat: "subnet-4dcecc16"
|
||||
prd: "subnet-4dcecc16"
|
||||
|
||||
# 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
|
||||
region: ap-northeast-1
|
||||
versionFunctions: false
|
||||
logRetentionInDays: 14
|
||||
memorySize: 128
|
||||
deploymentBucket: catherine-fc-serverless-bucket
|
||||
stage: dev
|
||||
# you can overwrite defaults here
|
||||
# stage: dev
|
||||
# region: us-east-1
|
||||
iamRoleStatements:
|
||||
- Effect: "Allow"
|
||||
Action:
|
||||
- "lambda:InvokeFunction"
|
||||
Resource:
|
||||
- "arn:aws:lambda:*:*:function:*"
|
||||
|
||||
- Effect: "Allow"
|
||||
Action:
|
||||
- "logs:CreateLogGroup"
|
||||
- "logs:CreateLogStream"
|
||||
- "logs:PutLogEvents"
|
||||
Resource:
|
||||
- "arn:aws:logs:*:*:*"
|
||||
|
||||
- Effect: "Allow"
|
||||
Action:
|
||||
- "ssm:GetParameter"
|
||||
Resource:
|
||||
- "arn:aws:ssm:*:*:parameter/*"
|
||||
|
||||
# you can define service wide environment variables here
|
||||
# environment:
|
||||
# variable1: value1
|
||||
|
||||
package:
|
||||
exclude:
|
||||
- ./**
|
||||
include:
|
||||
- ./bin/**
|
||||
|
||||
functions:
|
||||
guideAPI:
|
||||
handler: bin/guide
|
||||
timeout: 3
|
||||
events:
|
||||
- http:
|
||||
path: guide
|
||||
method: get
|
||||
archiveAPI:
|
||||
handler: bin/archive
|
||||
timeout: 3
|
||||
events:
|
||||
- http:
|
||||
path: archive
|
||||
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
|
||||
# - websocket: $connect
|
||||
# - 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
|
||||
# - alb:
|
||||
# listenerArn: arn:aws:elasticloadbalancing:us-east-1:XXXXXX:listener/app/my-load-balancer/50dc6c495c0c9188/
|
||||
# priority: 1
|
||||
# conditions:
|
||||
# host: example.com
|
||||
# path: /hello
|
||||
|
||||
# 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"
|
||||
Reference in New Issue
Block a user