-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate.yml
116 lines (108 loc) · 3.71 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
SendTweet:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
TWITTER_CONSUMER_KEY: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_CONSUMER_KEY}}'
TWITTER_CONSUMER_SECRET: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_CONSUMER_SECRET}}'
TWITTER_ACCESS_KEY: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_ACCESS_KEY}}'
TWITTER_ACCESS_SECRET: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_ACCESS_SECRET}}'
RANDOM_ORG_KEY: '{{resolve:secretsmanager:OtherCreds:SecretString:RANDOM_ORG_KEY}}'
Handler: twitter.textHandler
Runtime: nodejs12.x
Role: arn:aws:iam::435716529842:role/LambdaReadOnly
TweetEvent:
Type: AWS::Events::Rule
Properties:
ScheduleExpression: cron(0 18,6 * * ? *)
State: 'DISABLED'
Targets:
- Arn:
Fn::GetAtt:
- 'SendTweet'
- 'Arn'
Id: 'TargetFunctionV1'
TweetPermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName:
Ref: 'SendTweet'
Action: 'lambda:InvokeFunction'
Principal: 'events.amazonaws.com'
SourceArn:
Fn::GetAtt:
- 'TweetEvent'
- 'Arn'
SendImageTweet:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
TWITTER_CONSUMER_KEY: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_CONSUMER_KEY}}'
TWITTER_CONSUMER_SECRET: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_CONSUMER_SECRET}}'
TWITTER_ACCESS_KEY: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_ACCESS_KEY}}'
TWITTER_ACCESS_SECRET: '{{resolve:secretsmanager:TwitterCreds:SecretString:TWITTER_ACCESS_SECRET}}'
RANDOM_ORG_KEY: '{{resolve:secretsmanager:OtherCreds:SecretString:RANDOM_ORG_KEY}}'
Handler: twitter.imageHandler
Runtime: nodejs12.x
Timeout: 60
Role: arn:aws:iam::435716529842:role/LambdaReadOnly
ImageTweetEvent:
Type: AWS::Events::Rule
Properties:
ScheduleExpression: cron(0 0/6 * * ? *)
State: 'ENABLED'
Targets:
- Arn:
Fn::GetAtt:
- 'SendImageTweet'
- 'Arn'
Id: 'TargetFunctionV1'
ImageTweetPermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName:
Ref: 'SendImageTweet'
Action: 'lambda:InvokeFunction'
Principal: 'events.amazonaws.com'
SourceArn:
Fn::GetAtt:
- 'ImageTweetEvent'
- 'Arn'
PostToInstagram:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
IG_USERNAME: '{{resolve:secretsmanager:InstagramCreds:SecretString:IG_USERNAME}}'
IG_PASSWORD: '{{resolve:secretsmanager:InstagramCreds:SecretString:IG_PASSWORD}}'
RANDOM_ORG_KEY: '{{resolve:secretsmanager:OtherCreds:SecretString:RANDOM_ORG_KEY}}'
Handler: instagram.handler
Runtime: nodejs12.x
Timeout: 60
Role: arn:aws:iam::435716529842:role/LambdaReadOnly
InstagramEvent:
Type: AWS::Events::Rule
Properties:
ScheduleExpression: cron(0 12,20 * * ? *)
State: 'ENABLED'
Targets:
- Arn:
Fn::GetAtt:
- 'PostToInstagram'
- 'Arn'
Id: 'TargetFunctionV1'
InstagramPermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName:
Ref: 'PostToInstagram'
Action: 'lambda:InvokeFunction'
Principal: 'events.amazonaws.com'
SourceArn:
Fn::GetAtt:
- 'InstagramEvent'
- 'Arn'