Skip to content

Workspace ​

The Workspace resource lets you manage AWS APS Workspaces for your applications, providing an environment for your analytical workloads.

Minimal Example ​

Create a basic APS Workspace with essential properties.

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

const apsWorkspace = await AWS.APS.Workspace("myApsWorkspace", {
  Alias: "my-workspace-alias",
  KmsKeyArn: "arn:aws:kms:us-east-1:123456789012:key/abcd1234-5678-90ef-ghij-klmnopqrstuv",
  Tags: [
    { Key: "Environment", Value: "Development" },
    { Key: "Project", Value: "DataAnalytics" }
  ]
});

Advanced Configuration ​

Configure a workspace with logging and alert manager definitions for enhanced monitoring.

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

const advancedApsWorkspace = await AWS.APS.Workspace("advancedApsWorkspace", {
  Alias: "advanced-workspace",
  KmsKeyArn: "arn:aws:kms:us-east-1:123456789012:key/wxyz1234-5678-90ef-ghij-klmnopqrstuv",
  LoggingConfiguration: {
    LogGroupName: "aps-workspace-logs",
    LogStreamName: "workspace-log-stream"
  },
  AlertManagerDefinition: JSON.stringify({
    route: {
      group_by: ["alertname"],
      group_wait: "30s",
      group_interval: "5m",
      repeat_interval: "3h",
      routes: [
        {
          receiver: "email",
          match: { severity: "critical" }
        }
      ]
    },
    receivers: [
      {
        name: "email",
        email_configs: [
          {
            to: "alerts@example.com",
            from: "no-reply@example.com",
            smarthost: "smtp.example.com:587",
            auth_username: "smtp_user",
            auth_password: "smtp_password"
          }
        ]
      }
    ]
  }),
  Tags: [
    { Key: "Environment", Value: "Production" },
    { Key: "Project", Value: "AdvancedAnalytics" }
  ]
});

Custom Workspace Configuration ​

Set up a workspace with specific configurations tailored to application needs.

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

const customWorkspace = await AWS.APS.Workspace("customApsWorkspace", {
  Alias: "custom-workspace",
  KmsKeyArn: "arn:aws:kms:us-east-1:123456789012:key/ijkl1234-5678-90ef-ghij-klmnopqrstuv",
  WorkspaceConfiguration: {
    retentionPeriod: "30d",
    maxDiskSize: "100GB"
  },
  Tags: [
    { Key: "Environment", Value: "Staging" },
    { Key: "Project", Value: "CustomAnalytics" }
  ]
});