-
Notifications
You must be signed in to change notification settings - Fork 5
/
serverless.yml
102 lines (95 loc) · 3.04 KB
/
serverless.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
plugins:
- serverless-offline
- serverless-plugin-tracing
- serverless-prune-plugin
- serverless-latest-layer-version
service: eth-event-listener
provider:
name: aws
runtime: python3.7
memorySize: 1024
timeout: 180
region: ${file(./config.${self:provider.stage}.json):REGION}
stage: ${opt:stage,'dev'}
deploymentBucket:
name: snet-serverless-artifacts
serverSideEncryption: AES256
tags:
key1: ethereum-event-listener
key2: ethereum-event-publisher
deploymentPrefix: serverless
tracing: true
custom:
pythonRequirements:
fileName: requirements.txt
dockerizePip: true
useDownloadCache: true
useStaticCache: true
cacheLocation: "/var/cache/serverless"
prune:
automatic: true
includeLayers: true
number: 2
package:
exclude:
- .circleci/**
- .serverless/**
- node_modules/**
- package.json
- package-lock.json
- .gitignore
- serverless.yml
- README.md
- LICENSE
- config.rt-v2.json
functions:
listen-to-ethereum-events:
handler: application/handlers/event_listener_handler.listen_to_ethereum_events
role: ${file(./config.${self:provider.stage}.json):ROLE}
vpc:
securityGroupIds:
- ${file(./config.${self:provider.stage}.json):SG1}
- ${file(./config.${self:provider.stage}.json):SG2}
subnetIds:
- ${file(./config.${self:provider.stage}.json):VPC1}
- ${file(./config.${self:provider.stage}.json):VPC2}
layers:
- ${file(./config.${self:provider.stage}.json):EthEventListener}
monitor-events:
handler: application/handlers/event_listener_handler.monitor_events
role: ${file(./config.${self:provider.stage}.json):ROLE}
vpc:
securityGroupIds:
- ${file(./config.${self:provider.stage}.json):SG1}
- ${file(./config.${self:provider.stage}.json):SG2}
subnetIds:
- ${file(./config.${self:provider.stage}.json):VPC1}
- ${file(./config.${self:provider.stage}.json):VPC2}
layers:
- ${file(./config.${self:provider.stage}.json):EthEventListener}
events:
- schedule:
rate: rate(2 minutes)
enabled: ${file(./config.${self:provider.stage}.json):monitor-events-service-cron-state}
publish-events:
handler: application/handlers/event_publisher_handler.publish_events
role: ${file(./config.${self:provider.stage}.json):ROLE}
vpc:
securityGroupIds:
- ${file(./config.${self:provider.stage}.json):SG1}
- ${file(./config.${self:provider.stage}.json):SG2}
subnetIds:
- ${file(./config.${self:provider.stage}.json):VPC1}
- ${file(./config.${self:provider.stage}.json):VPC2}
layers:
- ${file(./config.${self:provider.stage}.json):EthEventListener}
events:
- schedule:
rate: rate(2 minutes)
enabled: ${file(./config.${self:provider.stage}.json):publish-events-service-cron-state}
resources:
Resources:
CGVBridgePublisherTopic:
Type: AWS::SNS::Topic
Properties:
TopicName: ${self:provider.stage}CGVBridgePublisherTopic