-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate.yml
103 lines (97 loc) · 2.59 KB
/
template.yml
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: hentak-kaki
Parameters:
TelegramBotToken:
Description: Bot token
Type: String
Globals:
Function:
MemorySize: 256
Timeout: 30
Resources:
BotFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: dist/
FunctionName: hentak-kaki
Handler: lambda.lambdaHandler
Runtime: nodejs16.x
FunctionUrlConfig:
AuthType: NONE
Environment:
Variables:
TELEGRAM_BOT_TOKEN: !Ref TelegramBotToken
NODE_ENV: production
NODE_OPTIONS: --enable-source-maps
Policies:
- DynamoDBCrudPolicy:
TableName: !Ref SessionTable
- DynamoDBCrudPolicy:
TableName: !Ref SectorTable
- DynamoDBCrudPolicy:
TableName: !Ref SubscriberTable
- DynamoDBCrudPolicy:
TableName: !Ref CacheTable
TimerFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: dist/
FunctionName: hentak-kaki-timer
Handler: lambda.timer
Runtime: nodejs16.x
Environment:
Variables:
TELEGRAM_BOT_TOKEN: !Ref TelegramBotToken
NODE_ENV: production
NODE_OPTIONS: --enable-source-maps
Events:
ScheduledRun:
Type: Schedule
Properties:
Schedule: rate(1 hour)
Name: hentak-kaki-timer-schedule
Description: Runs once an hour
Enabled: true
Policies:
- DynamoDBCrudPolicy:
TableName: !Ref SessionTable
- DynamoDBCrudPolicy:
TableName: !Ref SectorTable
- DynamoDBCrudPolicy:
TableName: !Ref SubscriberTable
- DynamoDBCrudPolicy:
TableName: !Ref CacheTable
SessionTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: chatId
Type: Number
TableName: hentak-kaki-session-table
SectorTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: name
Type: String
TableName: hentak-kaki-sector-table
SubscriberTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: chatId
Type: Number
TableName: hentak-kaki-subscriber-table
CacheTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: id
Type: String
TableName: hentak-kaki-cache-table
Outputs:
FunctionUrlEndpoint:
Description: "Lambda Function URL Endpoint"
Value:
Fn::GetAtt: BotFunctionUrl.FunctionUrl