Skip to content
GitHubXDiscordRSS

SubscriptionDefinition

Learn how to create, update, and manage AWS Greengrass SubscriptionDefinitions using Alchemy Cloud Control.

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

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

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"
}
]
}
});

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

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"
}
]
}
});

Manage resources effectively by adding tags to the SubscriptionDefinition.

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"
}
]
}
});

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

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