-
Notifications
You must be signed in to change notification settings - Fork 6
/
serverless.yml
62 lines (57 loc) · 1.55 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
service: better-dynamodb-scaling
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: us-east-1
iamRoleStatements:
- Effect: Allow
Action:
- cloudwatch:PutMetricAlarm
- cloudwatch:PutMetricData
- cloudwatch:DescribeAlarms
- cloudwatch:GetMetricStatistics
- cloudwatch:SetAlarmState
Resource: "*"
- Effect: Allow
Action:
- dynamodb:BatchWriteItem
- dynamodb:PutItem
- dynamodb:UpdateTable
Resource: "*"
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource: "arn:aws:lambda:us-east-1:*:function:${self:service}-${opt:stage, self:provider.stage}-*"
functions:
scale_up_dynamodb:
handler: functions/scale_up_dynamodb.handler
events:
- sns:
topicName: scale_up_dynamodb
displayName: Scale Up DynamoDB table
generate_linear_load:
handler: functions/generate_linear_load.handler
timeout: 300
generate_head_heavy_load:
handler: functions/generate_head_heavy_load.handler
timeout: 300
change_cw_alarm:
handler: functions/change_cw_alarm.handler
environment:
accountId:
Ref: AWS::AccountId
region:
${opt:region, self:provider.region}
events:
- cloudwatchEvent:
event:
source:
- aws.monitoring
detail-type:
- AWS API Call via CloudTrail
detail:
eventSource:
- monitoring.amazonaws.com
eventName:
- PutMetricAlarm