Skip to content

SubscriptionDefinition ​

The SubscriptionDefinition resource allows you to manage AWS Greengrass SubscriptionDefinitions that enable communication between Greengrass components.

Minimal Example ​

Create a basic SubscriptionDefinition with required properties and one optional parameter.

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

const subscriptionDefinition = await AWS.Greengrass.SubscriptionDefinition("mySubscriptionDefinition", {
  Name: "MySubscriptionDefinition",
  InitialVersion: {
    Subscriptions: [
      {
        Id: "mySubscription",
        Source: "myPublisher",
        Subject: "my/topic",
        Target: "mySubscriber"
      }
    ]
  }
});

Advanced Configuration ​

Configure a SubscriptionDefinition with multiple subscriptions and tags for better management.

ts
const advancedSubscriptionDefinition = await AWS.Greengrass.SubscriptionDefinition("advancedSubscriptionDefinition", {
  Name: "AdvancedSubscriptionDefinition",
  Tags: {
    Environment: "Production",
    Project: "MyGreengrassProject"
  },
  InitialVersion: {
    Subscriptions: [
      {
        Id: "subscription1",
        Source: "publisher1",
        Subject: "topic1",
        Target: "subscriber1"
      },
      {
        Id: "subscription2",
        Source: "publisher2",
        Subject: "topic2",
        Target: "subscriber2"
      }
    ]
  }
});

Using Tags for Resource Management ​

Manage resources effectively by adding tags to the SubscriptionDefinition.

ts
const taggedSubscriptionDefinition = await AWS.Greengrass.SubscriptionDefinition("taggedSubscriptionDefinition", {
  Name: "TaggedSubscriptionDefinition",
  Tags: {
    Owner: "Dev Team",
    CostCenter: "12345"
  },
  InitialVersion: {
    Subscriptions: [
      {
        Id: "taggedSubscription",
        Source: "taggedPublisher",
        Subject: "tagged/topic",
        Target: "taggedSubscriber"
      }
    ]
  }
});

Adoption of Existing Resources ​

Configure the SubscriptionDefinition to adopt an existing resource if it already exists.

ts
const adoptExistingSubscriptionDefinition = await AWS.Greengrass.SubscriptionDefinition("existingSubscriptionDefinition", {
  Name: "ExistingSubscriptionDefinition",
  adopt: true,
  InitialVersion: {
    Subscriptions: [
      {
        Id: "existingSubscription",
        Source: "existingPublisher",
        Subject: "existing/topic",
        Target: "existingSubscriber"
      }
    ]
  }
});