Skip to content

BillingGroup

The BillingGroup resource lets you manage AWS IoT BillingGroups that allow you to group billing for multiple devices. This is essential for tracking costs associated with your IoT devices efficiently.

Minimal Example

Create a basic BillingGroup with a specified name and tags.

ts
import AWS from "alchemy/aws/control";

const billingGroup = await AWS.IoT.BillingGroup("myBillingGroup", {
  BillingGroupName: "MyBillingGroup",
  Tags: [
    { Key: "Environment", Value: "Production" },
    { Key: "Project", Value: "IoTIntegration" }
  ]
});

Advanced Configuration

Configure a BillingGroup with additional properties and billing group properties.

ts
const advancedBillingGroup = await AWS.IoT.BillingGroup("advancedBillingGroup", {
  BillingGroupName: "AdvancedBillingGroup",
  BillingGroupProperties: {
    BillingGroupArn: "arn:aws:iot:us-west-2:123456789012:billinggroup/AdvancedBillingGroup"
  },
  Tags: [
    { Key: "Environment", Value: "Staging" },
    { Key: "Team", Value: "Development" }
  ]
});

Adoption of Existing Resource

Adopt an existing BillingGroup if it already exists to avoid failures.

ts
const adoptBillingGroup = await AWS.IoT.BillingGroup("adoptedBillingGroup", {
  BillingGroupName: "ExistingBillingGroup",
  adopt: true // This will adopt the existing resource instead of failing
});

Creating Multiple BillingGroups

Create multiple BillingGroups to manage different environments.

ts
const productionBillingGroup = await AWS.IoT.BillingGroup("prodBillingGroup", {
  BillingGroupName: "ProductionBillingGroup",
  Tags: [
    { Key: "Environment", Value: "Production" }
  ]
});

const stagingBillingGroup = await AWS.IoT.BillingGroup("stagingBillingGroup", {
  BillingGroupName: "StagingBillingGroup",
  Tags: [
    { Key: "Environment", Value: "Staging" }
  ]
});