Architecture diagram includes both implemented components and future planned modules (such as severe weather alerts).
☁️ Overview
This project implements a serverless, event-driven weather notification system using AWS CDK (TypeScript).
It retrieves live weather data from an external API and automates several workflows:
- ✅ Daily weather summary email (7 AM Australia/Sydney)
- ⚙️ Simulated AWS automation tasks triggered every 3 hours
- ⚠️ Severe weather alerts — planned module (not implemented in v1.0)
The architecture is intentionally modular so new features can be added without modifying core infrastructure.
🧱 AWS Services Used
| Service | Purpose |
|---|---|
| AWS Lambda | Runs forecast and automation logic |
| EventBridge Scheduler | Triggers the daily summary at 7:00 AM Sydney time |
| EventBridge Rules | Triggers the automation Lambda every 3 hours |
| Amazon SNS | Sends notifications (email/SMS) for summaries and future alerts |
| Secrets Manager | Secure storage for the external API key |
| AWS CDK (TypeScript) | Defines all resources using Infrastructure as Code |
| Jest | Logic tests + infrastructure tests using CDK assertions |
🧩 Key Features
✔ 1. Daily Weather Summary (Implemented)
- Fetches weather from an external API
- Sends a summary email via SNS each morning
- Timezone-aware scheduler (Australia/Sydney)
✔ 2. Weather-Driven Automation (Implemented)
- Runs every 3 hours using EventBridge Rules
- AutomationHandler Lambda simulates actions such as:
- pausing workloads on low sunlight
- activating tasks on sunny days
- Outputs behaviour to CloudWatch Logs
⚠ 3. Severe Weather Alerts (Planned, Not Implemented)
The architecture includes a planned module for:
- Storm alerts
- Heatwave/high-temperature alerts
- High wind warnings
- Severe rainfall
This is intentionally excluded from v1.0 to keep scope manageable.
It remains a future enhancement.
🧠 Lessons Learned
- Differences between EventBridge Scheduler (timezone-aware) and EventBridge Rules
- Securely injecting API keys into Lambda via Secrets Manager
- Writing CDK tests using assertions
- Clear separation between implemented modules and planned future components
- How modular stacks make future upgrades easier
🧪 Testing & Validation
- Lambda logic tested with Jest (mocked API + behaviour mapping)
- CDK infrastructure tests validate SNS, Scheduler, Lambda, IAM policies
- Manual verification in AWS Console
- Full cleanup confirmed via
cdk destroy
🖼️ Screenshots
| Screenshot | Description |
|---|---|
![]() | ⏰ EventBridge Scheduler running at 7:00 AM (Australia/Sydney) |
![]() | 🔄 EventBridge Rule for 3-hour automation |
![]() | 📘 CloudWatch logs from the automation Lambda |
![]() | ✅ All unit and CDK tests passing |
📘 Documentation
- Main README: View on GitHub
- Release Notes: v1.0.0
- ADR / Design Decisions:
docs/adr.md
🏁 Project Status
✅ Version 1.0 – Complete and Stable
Daily summaries and automation modules implemented.
Severe alerts module planned for a future release.
© 2025 Nicolas Gloss — AWS Cloud Engineer Portfolio
Built with AWS CDK and Hugo PaperMod.



