Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stefanfreitag/cdk-budget-notifier
Create simple AWS Budgets notifications
https://github.com/stefanfreitag/cdk-budget-notifier
aws budgets cdk
Last synced: 2 months ago
JSON representation
Create simple AWS Budgets notifications
- Host: GitHub
- URL: https://github.com/stefanfreitag/cdk-budget-notifier
- Owner: stefanfreitag
- License: apache-2.0
- Created: 2020-07-12T10:59:05.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-01T20:19:17.000Z (3 months ago)
- Last Synced: 2024-12-15T13:50:24.452Z (2 months ago)
- Topics: aws, budgets, cdk
- Language: TypeScript
- Homepage:
- Size: 1.78 MB
- Stars: 15
- Watchers: 4
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# AWS Budget Notifier
Setup a AWS Budget notification using AWS Cloud Development Kit (CDK).
The construct supports notifying to- users via e-mail. Up to 10 e-mail addresses are supported
- an SNS topic
The SNS topic needs to exist and publishing to the topic needs to be allowed.## Properties
[API.md](API.md)
## Example usages
### Notification on breaching forecasted cost
This example is handy for keeping control over your private AWS Bill.
For myself I aim to not spent more than 10 Euro / 10 USD per month and this alarm
reminds me.```typescript
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");// Define the SNS topic and setup the resource policy
const topic = new Topic(stack, "topic");const statement = new PolicyStatement({
effect: Effect.ALLOW,
principals: [new ServicePrincipal("budgets.amazonaws.com")],
actions: ["SNS:Publish"],
sid: "Allow budget to publish to SNS"
});
topic.addToResourcePolicy(statement);// Setup the budget notifier and pass the ARN of the SNS topic
new BudgetNotifier(stack, "notifier", {
topicArn: topic.topicArn,
// Filter on the availability zone `eu-central-1`
availabilityZones: ["eu-central-1"],
costCenter: "myCostCenter",
// Limit and unit defining the budget limit
limit: 10,
unit: "USD",
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});```
### Notification via e-Mail
As alternative to the notification via SNS you can specify a list of e-mail
recipients.```typescript
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");new BudgetNotifier(stack, 'notifier', {
recipients: ['[email protected]'],
// Filter on the availability zone `eu-central-1`
availabilityZones: ['eu-central-1'],
costCenter: 'MyCostCenter',
// Limit and unit defining the budget limit
limit: 10,
unit: 'USD',
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```## Contributions
dedominicisfa
Philip M. Gollucci
## Links
- [AWS Cloud Development Kit (CDK)](https://github.com/aws/aws-cdk)
- [Cost Explorer filters](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-filtering.html)