Skip to content

Commit 6abdf15

Browse files
committed
add log group and logfilter event
1 parent bf51e23 commit 6abdf15

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

lambda.cfndsl.rb

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,16 @@
7171
Tags tags
7272
end
7373

74+
Logs_LogGroup("#{function_name}LogGroup") do
75+
LogGroupName FnSub("/aws/lambda/${function_name}")
76+
RetentionInDays lambda_config['log_retention'] if lambda_config.has_key? 'log_retention'
77+
end
78+
7479
lambda_config['events'].each do |name,event|
7580

7681
case event['type']
7782
when 'schedule'
83+
7884
Events_Rule("#{function_name}Schedule#{name}") do
7985
ScheduleExpression event['expression']
8086
State event['disable'] ? 'DISABLED' : 'ENABLED'
@@ -86,14 +92,15 @@
8692
Targets([target])
8793
end
8894

89-
Lambda_Permission("#{function_name}Permissions") do
95+
Lambda_Permission("#{function_name}#{name}Permissions") do
9096
FunctionName Ref(function_name)
9197
Action 'lambda:InvokeFunction'
9298
Principal 'events.amazonaws.com'
9399
SourceArn FnGetAtt("#{function_name}Schedule#{name}", 'Arn')
94100
end
95101

96102
when 'sns'
103+
97104
SNS_Topic("#{function_name}Sns#{name}") do
98105
Subscription([
99106
{
@@ -103,12 +110,29 @@
103110
])
104111
end
105112

106-
Lambda_Permission("#{function_name}Permissions") do
113+
Lambda_Permission("#{function_name}#{name}Permissions") do
107114
FunctionName Ref(function_name)
108115
Action 'lambda:InvokeFunction'
109116
Principal 'sns.amazonaws.com'
110117
SourceArn Ref("#{function_name}Sns#{name}")
111118
end
119+
120+
when 'filter'
121+
122+
Logs_SubscriptionFilter("#{function_name}SubscriptionFilter#{name}") do
123+
DestinationArn FnGetAtt(function_name, 'Arn')
124+
FilterPattern event['pattern']
125+
LogGroupName Ref(event['log_group'])
126+
end
127+
128+
Lambda_Permission("#{function_name}#{name}Permissions") do
129+
FunctionName Ref(function_name)
130+
Action 'lambda:InvokeFunction'
131+
Principal FnSub('logs.${AWS::Region}.amazonaws.com')
132+
SourceAccount Ref('AWS::AccountId')
133+
SourceArn FnSub("arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/#{event['log_group']}:*")
134+
end
135+
112136
end
113137

114138
end if lambda_config.has_key?('events')

lambda.config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,15 @@ maximum_availability_zones: 5
2525
# Resource:
2626
# - '*'
2727
# enable_eni: true
28+
# log_retention: 7
2829
# events:
2930
# cron:
3031
# type: schedule
3132
# expression: cron(0 12 * * ? *)
3233
# payload: "{ 'a': 1, 'b': 2 }"
3334
# trigger:
3435
# type: sns
36+
# filter:
37+
# type: filter
38+
# pattern: '[date, deployment_id, bytes]'
39+
# log_group: myloggroup

0 commit comments

Comments
 (0)