11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/jets/stack/main/extensions/sqs.rb', line 11
def sqs_queue_with_lambda_trigger(id, props={})
defaults = {
dlq: {
queue_name: "#{id}-DLQ"
},
queue: {
queue_name: "#{id}",
redrive_policy: {
dead_letter_target_arn: "!GetAtt #{id}DeadLetterQueue.Arn",
},
visibility_timeout: 900
},
lambda: {
batch_size: 10,
enabled: true,
event_source_arn: "!GetAtt #{id}Queue.Arn",
}
}
sqs_queue("#{id}DeadLetterQueue", defaults[:dlq].deep_merge(props.fetch(:dlq, {})))
sqs_queue("#{id}Queue", defaults[:queue].deep_merge(props.fetch(:queue, {})))
sqs_lambda_trigger("#{id}LambdaTrigger", defaults[:lambda].deep_merge(props.fetch(:lambda, {})))
[output("#{id}DeadLetterQueue"), output("#{id}Queue"), output("#{id}LambdaTrigger")]
end
|