Group ​
The Group resource allows you to manage AWS Greengrass Groups for deploying and managing IoT applications at the edge.
Minimal Example ​
Create a basic Greengrass Group with a specified name and role ARN.
ts
import AWS from "alchemy/aws/control";
const greengrassGroup = await AWS.Greengrass.Group("myGreengrassGroup", {
name: "MyGreengrassGroup",
roleArn: "arn:aws:iam::123456789012:role/GreengrassGroupRole"
});
Advanced Configuration ​
Configure a Greengrass Group with an initial version and tags for better management.
ts
import AWS from "alchemy/aws/control";
const initialVersion = {
// Define the initial version structure according to your needs
groupId: "myGreengrassGroup",
// Additional version configurations can go here
};
const advancedGreengrassGroup = await AWS.Greengrass.Group("advancedGreengrassGroup", {
name: "AdvancedGreengrassGroup",
roleArn: "arn:aws:iam::123456789012:role/GreengrassGroupRole",
initialVersion: initialVersion,
tags: {
Project: "IoTApp",
Environment: "Production"
}
});
Adding Existing Resources ​
If you want to adopt an existing Greengrass Group instead of failing when it already exists, you can set the adopt
property to true
.
ts
import AWS from "alchemy/aws/control";
const adoptGreengrassGroup = await AWS.Greengrass.Group("existingGreengrassGroup", {
name: "ExistingGreengrassGroup",
adopt: true
});
Using Initial Version with Lambda Functions ​
Create a Greengrass Group with an initial version that defines Lambda functions.
ts
import AWS from "alchemy/aws/control";
const lambdaFunction = {
// Define Lambda function configuration here
functionArn: "arn:aws:lambda:us-west-2:123456789012:function:MyGreengrassFunction",
functionConfiguration: {
// Add your function configuration details here
memorySize: 128,
timeout: 3,
environment: {
MY_ENV_VARIABLE: "value"
}
}
};
const greengrassGroupWithLambda = await AWS.Greengrass.Group("greengrassWithLambda", {
name: "GreengrassWithLambda",
roleArn: "arn:aws:iam::123456789012:role/GreengrassGroupRole",
initialVersion: {
groupId: "greengrassWithLambda",
functions: [lambdaFunction]
}
});