Skip to content
GitHubXDiscordRSS

Workspace

Learn how to create, update, and manage AWS WorkSpaces Workspaces using Alchemy Cloud Control.

The Workspace resource allows you to create and manage AWS WorkSpaces effectively. AWS WorkSpaces is a cloud-based service that allows you to provision virtual desktops for your users.

Create a basic WorkSpace with required properties and a couple of common optional settings.

import AWS from "alchemy/aws/control";
const userWorkspace = await AWS.WorkSpaces.Workspace("user-workspace", {
BundleId: "wsb-12345678", // Example Bundle ID
DirectoryId: "d-1234567890", // Example Directory ID
UserName: "john.doe",
RootVolumeEncryptionEnabled: true,
UserVolumeEncryptionEnabled: true,
VolumeEncryptionKey: "arn:aws:kms:us-west-2:123456789012:key/abcd1234-ef56-78gh-90ij-klmnopqrstuv",
});

Configure a WorkSpace with specific properties to enhance security and performance.

const advancedWorkspace = await AWS.WorkSpaces.Workspace("advanced-workspace", {
BundleId: "wsb-87654321", // Another Example Bundle ID
DirectoryId: "d-0987654321", // Another Example Directory ID
UserName: "jane.smith",
RootVolumeEncryptionEnabled: true,
UserVolumeEncryptionEnabled: true,
VolumeEncryptionKey: "arn:aws:kms:us-west-2:123456789012:key/wxyz1234-abcd-ef56-78gh-ijklmnopqrstuv",
Tags: [
{ Key: "Project", Value: "Development" },
{ Key: "Environment", Value: "Production" }
],
WorkspaceProperties: {
RunningMode: "AUTO_STOP", // Automatically stop when not in use
RunningModeAutoStopTimeoutInMinutes: 60, // Auto-stop after 60 minutes
}
});

Create a WorkSpace and apply multiple tags for better resource organization.

const taggedWorkspace = await AWS.WorkSpaces.Workspace("tagged-workspace", {
BundleId: "wsb-12341234", // Example Bundle ID
DirectoryId: "d-1234987654", // Example Directory ID
UserName: "alex.jones",
Tags: [
{ Key: "Department", Value: "Engineering" },
{ Key: "CostCenter", Value: "12345" },
{ Key: "Owner", Value: "alex.jones@company.com" }
]
});

If you’re migrating existing resources, you can adopt them instead of failing on creation.

const existingWorkspace = await AWS.WorkSpaces.Workspace("existing-workspace", {
BundleId: "wsb-12345678", // Existing Bundle ID
DirectoryId: "d-1234567890", // Existing Directory ID
UserName: "mike.wilson",
adopt: true // Adopt existing resource if it already exists
});