AnomalySubscription
The AnomalySubscription resource allows you to create and manage AWS Cost Explorer Anomaly Subscriptions for monitoring cost anomalies in your AWS account. For more details, refer to the AWS CE AnomalySubscriptions documentation.
Minimal Example
Create a basic AnomalySubscription with the required properties and one optional property.
ts
import AWS from "alchemy/aws/control";
const basicAnomalySubscription = await AWS.CE.AnomalySubscription("basicAnomalySubscription", {
MonitorArnList: [
"arn:aws:ce::123456789012:monitor:example-monitor"
],
Frequency: "DAILY",
SubscriptionName: "DailyCostAnomalyAlert",
Subscribers: [
{
Address: "alert@example.com",
Type: "EMAIL"
}
]
});
Advanced Configuration
Configure an AnomalySubscription with additional options such as resource tags and a threshold.
ts
const advancedAnomalySubscription = await AWS.CE.AnomalySubscription("advancedAnomalySubscription", {
MonitorArnList: [
"arn:aws:ce::123456789012:monitor:example-monitor"
],
ResourceTags: [
{
Key: "Environment",
Value: "Production"
}
],
Frequency: "WEEKLY",
SubscriptionName: "WeeklyCostAnomalyAlert",
Subscribers: [
{
Address: "dev-team@example.com",
Type: "EMAIL"
}
],
Threshold: 100,
ThresholdExpression: "GreaterThan"
});
Using Multiple Subscribers
Demonstrate how to set up an AnomalySubscription with multiple subscribers to receive notifications.
ts
const multiSubscriberAnomalySubscription = await AWS.CE.AnomalySubscription("multiSubscriberAnomalySubscription", {
MonitorArnList: [
"arn:aws:ce::123456789012:monitor:example-monitor"
],
Frequency: "DAILY",
SubscriptionName: "TeamCostAnomalyAlerts",
Subscribers: [
{
Address: "team-lead@example.com",
Type: "EMAIL"
},
{
Address: "devops-team@example.com",
Type: "EMAIL"
}
],
Threshold: 50
});
Adopting Existing Resources
Create an AnomalySubscription that adopts an existing resource if it already exists.
ts
const adoptExistingAnomalySubscription = await AWS.CE.AnomalySubscription("adoptExistingAnomalySubscription", {
MonitorArnList: [
"arn:aws:ce::123456789012:monitor:example-monitor"
],
Frequency: "MONTHLY",
SubscriptionName: "MonthlyCostAnomalyAdoption",
Subscribers: [
{
Address: "alert-team@example.com",
Type: "EMAIL"
}
],
adopt: true
});