-
Notifications
You must be signed in to change notification settings - Fork 928
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
79 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
{ | ||
"title": "Amazon API Gateway with a Amazon S3 integration", | ||
"description": "Create a REST API Gateway with a S3 read-only integration", | ||
"language": "", | ||
"level": "200", | ||
"framework": "SAM", | ||
"introBox": { | ||
"headline": "How it works", | ||
"text": [ | ||
"This pattern deploys an Amazon API Gateway REST API endpoint with a S3 read-only integration", | ||
"The API exposes 3 GET methods:", | ||
"Root GET method: it provides a list of the S3 buckets of the account where the stack is deployed.", | ||
"{folder} GET method: it provides a list of the objects contained in the bucket {folder}", | ||
"{item} GET method: it returns the contents of the object in Folders and Sub-folders {item+}", | ||
"The template also deploys an IAM role with S3 read-only capabilities that is used by API Gateway to integrate with S3.", | ||
"Since this is API Gateway effectively acts as a proxy S3, every GET method is protected by IAM authentication to prevent public access." | ||
] | ||
}, | ||
"gitHub": { | ||
"template": { | ||
"repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/apigw-s3-proxy", | ||
"templateURL": "serverless-patterns/apigw-s3-proxy", | ||
"projectFolder": "apigw-s3-proxy", | ||
"templateFile": "template.yaml" | ||
} | ||
}, | ||
"resources": { | ||
"bullets": [ | ||
{ | ||
"text": "REST API with S3 integration", | ||
"link": "https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html" | ||
} | ||
] | ||
}, | ||
"deploy": { | ||
"text": [ | ||
"Deploy the stack: <code>sam deploy</code>." | ||
] | ||
}, | ||
"testing": { | ||
"text": [ | ||
"Once the application is deployed, retrieve the API URL provided as output and open it in a browser page.", | ||
"Replace the folder and item place holder with S3 bucket name and path to your file", | ||
"Example: https://12345abcde.execute-api.{region}.amazonaws.com/Prod/mybucket/folder1/folder2/index.html" | ||
] | ||
}, | ||
"cleanup": { | ||
"text": [ | ||
"Delete the stack: <code>sam delete</code>." | ||
] | ||
}, | ||
"authors": [ | ||
{ | ||
"name": "Vamsi Pulikonda", | ||
"image": "https://raw.githubusercontent.com/vamsipulikonda/my-photo/main/vamsi-photo.jpg", | ||
"bio": "I am a cloud computing enthusiast working as a Cloud Engineer at Amazon Web Services.", | ||
"linkedin": "vamsipulikonda" | ||
} | ||
], | ||
"patternArch": { | ||
"icon1": { | ||
"x": 20, | ||
"y": 50, | ||
"service": "apigw", | ||
"label": "API Gateway REST API" | ||
}, | ||
"icon2": { | ||
"x": 80, | ||
"y": 50, | ||
"service": "s3", | ||
"label": "Amazon S3" | ||
}, | ||
"line1": { | ||
"from": "icon1", | ||
"to": "icon2", | ||
"label": "" | ||
} | ||
} | ||
} |