Skip to content

Commit 06d3c4f

Browse files
Added missing example-pattern.json
1 parent 76c26fc commit 06d3c4f

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"title": "Amazon API Gateway to Amazon Kinesis Data Stream to AWS Lambda to Amazon DynamoDB",
3+
"description": "This pattern explains how to deploy a SAM application with Amazon API Gateway, Amazon Kinesis Data Stream, AWS Lambda, and Amazon DynamoDB. When an HTTP POST request is made to the Amazon API Gateway endpoint, Gateway authorizes the request by checking Basic auth credentials and on valid credentials, request payload is sent to Amazon Kinesis Data Stream. This pattern is especially useful in cases of large payloads since Kinesis Data Stream can support upto 1MB paylod size. AWS Lambda function consumes event from the Data Stream and inserts the event/payload into the Amazon DynamoDB table. Amazon Lambda is also configured with a Dead Letter Queue where events are sent when retries to process those messages are repeatedly failed.",
4+
"language": "Python",
5+
"level": "300",
6+
"framework": "SAM",
7+
"introBox": {
8+
"headline": "How it works",
9+
"text": [
10+
"This pattern deploys an Amazon API Gateway HTTP API with route /submit/{streamName}/{eventId} configured with basic authentication.",
11+
"On receiving a request, API Gateway will invoke a Lambda authorizer which validates the request and returns a policy informing API Gateway to accept or deny the request.",
12+
"When request is accepted, API Gateway sends the message payload to Kinesis Data Stream.",
13+
"Messages from Kinesis Data Streams is posted to a lambda function to process them. Lambda uses a SQS queue as Dead Letter Queue to send the messages in case of continued failures to process the messages.",
14+
"Lambda saves the received messages into a DynamoDB table."
15+
]
16+
},
17+
"gitHub": {
18+
"template": {
19+
"repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/apigw-kinesis-lambda-ddb",
20+
"templateURL": "serverless-patterns/apigw-kinesis-lambda-ddb",
21+
"projectFolder": "apigw-kinesis-lambda-ddb",
22+
"templateFile": "apigw-kinesis-lambda-ddb/template.yaml"
23+
}
24+
},
25+
"resources": {
26+
"bullets": [
27+
{
28+
"text": "Lambda Authorizers",
29+
"link": "https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html"
30+
},
31+
{
32+
"text": "Dead Letter Queues",
33+
"link": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html"
34+
},
35+
{
36+
"text": "Amazon Kinesis Data Streams",
37+
"link": "https://docs.aws.amazon.com/streams/latest/dev/introduction.html"
38+
}
39+
]
40+
},
41+
"deploy": {
42+
"text": [
43+
"sam deploy"
44+
]
45+
},
46+
"testing": {
47+
"text": [
48+
"See the GitHub repo for detailed testing instructions."
49+
]
50+
},
51+
"cleanup": {
52+
"text": [
53+
"Delete the stack: <code>sam delete</code>."
54+
]
55+
},
56+
"authors": [
57+
{
58+
"name": "Ravi Kiran Ganji",
59+
"bio": "I am a Senior Cloud Application Architect at AWS Professional Services, and Serverless Enthusiast.",
60+
"linkedin": "ravi-kiran-ganji"
61+
}
62+
]
63+
}

0 commit comments

Comments
 (0)