An AWS Lambda function that provides an HTTP API for Feedbag, a Ruby gem for discovering RSS/Atom feeds from URLs.
POST https://fitzwmnm61.execute-api.eu-west-3.amazonaws.com/default/feedbag/find
Send a URL as the POST body to discover RSS/Atom feeds:
# Discover feeds from a URL
curl -X POST -d "https://nytimes.com" \
https://fitzwmnm61.execute-api.eu-west-3.amazonaws.com/default/feedbag/find
# Response:
# {"codeStatus":200,"output":["https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"]}
# Invalid URL handling
curl -X POST -d "not-a-valid-url@#$" \
https://fitzwmnm61.execute-api.eu-west-3.amazonaws.com/default/feedbag/find
# Response:
# {"codeStatus":400,"output":"URI::InvalidURIError"}- Ruby 3.2+ (AWS Lambda supports Ruby 3.4)
- Docker (for container deployment)
- AWS CLI configured with appropriate credentials
# Install dependencies
bundle install
# Or use Make
make bundlemake deploy-zipThis bundles the code with vendored gems and uploads to Lambda.
# Build the Docker image
make build
# Follow the instructions to push to ECR and update Lambda
make deploy-containerEnvironment variables in the Makefile:
FUNCTION_NAME- Lambda function name (default:feedbag_find)AWS_REGION- AWS region (default:eu-west-3)ECR_REPO- ECR repository name for container deployment (default:feedbag-lambda)
{
"codeStatus": 200,
"output": ["https://example.com/feed.xml", "https://example.com/atom.xml"]
}| codeStatus | output | Description |
|---|---|---|
| 400 | "No data defined" |
No URL provided in POST body |
| 400 | "SocketError" |
Network error connecting to URL |
| 400 | "URI::InvalidURIError" |
Invalid URL format |
Same as Feedbag.