BudgetsAction
The BudgetsAction resource allows you to manage AWS Budgets BudgetsActions that automate actions based on budget thresholds.
Minimal Example
Section titled “Minimal Example”Create a basic BudgetsAction that specifies an execution role and action type:
import AWS from "alchemy/aws/control";
const basicBudgetsAction = await AWS.Budgets.BudgetsAction("basicBudgetsAction", { ExecutionRoleArn: "arn:aws:iam::123456789012:role/BudgetsActionRole", ActionType: "CANCEL", NotificationType: "ACTUAL", ActionThreshold: { Type: "PERCENTAGE", Threshold: 80 }, Definition: { Enable: true, Action: { Type: "CANCEL", ResourceIds: ["arn:aws:ec2:us-west-2:123456789012:instance/i-0abcd1234efgh5678"] } }, Subscribers: [ { Address: "user@example.com", Type: "EMAIL" } ], BudgetName: "MonthlyBudget"});
Advanced Configuration
Section titled “Advanced Configuration”Configure a BudgetsAction with an approval model and additional resource tags:
const advancedBudgetsAction = await AWS.Budgets.BudgetsAction("advancedBudgetsAction", { ExecutionRoleArn: "arn:aws:iam::123456789012:role/BudgetsActionRole", ActionType: "SAVE", NotificationType: "FORECASTED", ActionThreshold: { Type: "ABSOLUTE", Threshold: 1000 }, Definition: { Enable: true, Action: { Type: "SAVE", ResourceIds: ["arn:aws:s3:::my-budget-bucket"] } }, ApprovalModel: "AUTOMATIC", ResourceTags: [ { Key: "Project", Value: "BudgetManagement" } ], Subscribers: [ { Address: "team@example.com", Type: "EMAIL" } ], BudgetName: "QuarterlyBudget"});
Custom Subscriber Notifications
Section titled “Custom Subscriber Notifications”Set up the BudgetsAction with multiple subscribers for notifications:
const customSubscriberBudgetsAction = await AWS.Budgets.BudgetsAction("customSubscriberBudgetsAction", { ExecutionRoleArn: "arn:aws:iam::123456789012:role/BudgetsActionRole", ActionType: "CANCEL", NotificationType: "ACTUAL", ActionThreshold: { Type: "PERCENTAGE", Threshold: 90 }, Definition: { Enable: true, Action: { Type: "CANCEL", ResourceIds: ["arn:aws:ec2:us-west-2:123456789012:instance/i-0abcd1234efgh5678"] } }, Subscribers: [ { Address: "devops@example.com", Type: "EMAIL" }, { Address: "finance@example.com", Type: "EMAIL" } ], BudgetName: "AnnualBudget"});