-
Notifications
You must be signed in to change notification settings - Fork 2
/
serverless.yml
66 lines (60 loc) · 1.63 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
org: alvaromrveiga
app: print-stocks-serverless
service: print-stocks-serverless
frameworkVersion: "3"
useDotenv: true
provider:
name: aws
runtime: nodejs14.x
region: us-east-1
stage: ${opt:stage, 'dev'}
environment:
STOCKS: ${env:STOCKS}
BUCKET_NAME: ${self:custom.StockChartsBucket.name}
SENDER_EMAIL: ${env:SENDER_EMAIL}
RECEIVER_EMAIL: ${env:RECEIVER_EMAIL}
iamRoleStatements:
- Effect: Allow
Action:
- s3:PutObject
Resource: arn:aws:s3:::${self:custom.StockChartsBucket.name}/*
- Effect: Allow
Action:
- ses:SendEmail
Resource: arn:aws:ses:*
functions:
printStocks:
handler: dist/handlers/printStocks.handler
memorySize: 2048
timeout: 30
layers:
- arn:aws:lambda:${aws:region}:764866452798:layer:chrome-aws-lambda:31
events:
- schedule: cron(30 21 ? * MON-FRI *)
# UTF 0 time
resources:
Resources:
StockChartsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:custom.StockChartsBucket.name}
LifecycleConfiguration:
Rules:
- Id: ExpireCharts
Status: Enabled
ExpirationInDays: 2
StockChartsBucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref StockChartsBucket
PolicyDocument:
Statement:
- Sid: PublicRead
Effect: Allow
Principal: "*"
Action:
- s3:GetObject
Resource: arn:aws:s3:::${self:custom.StockChartsBucket.name}/*
custom:
StockChartsBucket:
name: stock-charts-bucket-veiga-${self:provider.stage}