TagSyncTask ​
The TagSyncTask
resource allows you to manage AWS ResourceGroups TagSync tasks, which synchronize specified tags across AWS resources in a resource group. For more information, refer to the AWS ResourceGroups TagSyncTasks.
Minimal Example ​
Create a basic TagSyncTask with required properties.
ts
import AWS from "alchemy/aws/control";
const tagSyncTask = await AWS.ResourceGroups.TagSyncTask("myTagSyncTask", {
Group: "my-resource-group",
TagKey: "Environment",
TagValue: "Production",
RoleArn: "arn:aws:iam::123456789012:role/tagSyncRole"
});
Advanced Configuration ​
Configure a TagSyncTask with the option to adopt existing resources instead of failing when a resource already exists.
ts
const advancedTagSyncTask = await AWS.ResourceGroups.TagSyncTask("advancedTagSyncTask", {
Group: "my-resource-group",
TagKey: "Environment",
TagValue: "Staging",
RoleArn: "arn:aws:iam::123456789012:role/tagSyncRole",
adopt: true // Allows adoption of existing resources
});
Usage with IAM Role ​
Create a TagSyncTask that requires a specific IAM role to perform tagging operations. Ensure the role has the necessary permissions.
ts
const iamRoleArn = "arn:aws:iam::123456789012:role/tagSyncRole";
const iamPolicy = {
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Action: [
"resourcegroupstaggingapi:TagResources",
"resourcegroupstaggingapi:UntagResources"
],
Resource: "*"
}
]
};
const taskWithIamRole = await AWS.ResourceGroups.TagSyncTask("iamTagSyncTask", {
Group: "my-resource-group",
TagKey: "Department",
TagValue: "Engineering",
RoleArn: iamRoleArn
});
Synchronize Multiple Tags ​
Create a TagSyncTask to synchronize multiple tags across resources in a resource group.
ts
const multiTagSyncTask = await AWS.ResourceGroups.TagSyncTask("multiTagSyncTask", {
Group: "my-resource-group",
TagKey: "Owner",
TagValue: "TeamA",
RoleArn: "arn:aws:iam::123456789012:role/tagSyncRole"
});
// Assuming a similar task for another tag
const anotherTagSyncTask = await AWS.ResourceGroups.TagSyncTask("anotherTagSyncTask", {
Group: "my-resource-group",
TagKey: "Project",
TagValue: "ProjectX",
RoleArn: "arn:aws:iam::123456789012:role/tagSyncRole"
});