Skip to content

Commit ef39bce

Browse files
Create dynamodb-eventbridge-scheduler.json
1 parent d48a2e1 commit ef39bce

1 file changed

Lines changed: 109 additions & 0 deletions

File tree

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
{
2+
"title": "Dynamic Amazon EventBridge Scheduler from Amazon DynamoDB Streams",
3+
"description": "Automatically create, update, and delete EventBridge Scheduler schedules based on DynamoDB table changes using DynamoDB Streams.",
4+
"language": "Python",
5+
"level": "200",
6+
"framework": "AWS SAM",
7+
"introBox": {
8+
"headline": "How it works",
9+
"text": [
10+
"This pattern demonstrates how to dynamically manage EventBridge Scheduler schedules by storing schedule configurations in a DynamoDB table.",
11+
"When items are inserted, updated, or deleted from the DynamoDB table, a Lambda function is automatically triggered via DynamoDB Streams.",
12+
"The Lambda function then creates, updates, or deletes the corresponding EventBridge Scheduler schedule.",
13+
"When the scheduled time arrives, EventBridge Scheduler invokes the target Lambda function with the configured payload.",
14+
"This pattern includes an auto-test feature that creates a sample schedule 2 minutes after deployment to verify the solution works end-to-end."
15+
]
16+
},
17+
"gitHub": {
18+
"template": {
19+
"repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/dynamodb-eventbridge-scheduler",
20+
"templateURL": "serverless-patterns/dynamodb-eventbridge-scheduler",
21+
"projectFolder": "dynamodb-eventbridge-scheduler",
22+
"templateFile": "template.yaml"
23+
}
24+
},
25+
"resources": {
26+
"bullets": [
27+
{
28+
"text": "Amazon EventBridge Scheduler",
29+
"link": "https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html"
30+
},
31+
{
32+
"text": "DynamoDB Streams",
33+
"link": "https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html"
34+
},
35+
{
36+
"text": "AWS Lambda Event Source Mapping",
37+
"link": "https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html"
38+
},
39+
{
40+
"text": "Schedule expressions for EventBridge Scheduler",
41+
"link": "https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html"
42+
}
43+
]
44+
},
45+
"deploy": {
46+
"text": [
47+
"sam build",
48+
"sam deploy --guided"
49+
]
50+
},
51+
"testing": {
52+
"text": [
53+
"See the GitHub repo for detailed testing instructions."
54+
]
55+
},
56+
"cleanup": {
57+
"text": [
58+
"Delete the stack: <code>sam delete</code>."
59+
]
60+
},
61+
"authors": [
62+
{
63+
"name": "Luigi Napoleone Capasso",
64+
"bio": "Technical Account Manager @ AWS",
65+
"linkedin": ""
66+
}
67+
],
68+
"patternArch": {
69+
"icon1": {
70+
"x": 15,
71+
"y": 50,
72+
"service": "dynamodb",
73+
"label": "Amazon DynamoDB"
74+
},
75+
"icon2": {
76+
"x": 40,
77+
"y": 50,
78+
"service": "lambda",
79+
"label": "AWS Lambda"
80+
},
81+
"icon3": {
82+
"x": 65,
83+
"y": 50,
84+
"service": "eventbridge",
85+
"label": "EventBridge"
86+
},
87+
"icon4": {
88+
"x": 90,
89+
"y": 50,
90+
"service": "lambda",
91+
"label": "AWS Lambda"
92+
},
93+
"line1": {
94+
"from": "icon1",
95+
"to": "icon2",
96+
"label": "streams"
97+
},
98+
"line2": {
99+
"from": "icon2",
100+
"to": "icon3",
101+
"label": "schedules"
102+
},
103+
"line3": {
104+
"from": "icon3",
105+
"to": "icon4",
106+
"label": "invokes"
107+
}
108+
}
109+
}

0 commit comments

Comments
 (0)