Skip to content
GitHubXDiscord

Namespace

The Namespace resource allows you to create and manage AWS RedshiftServerless Namespaces for serverless data warehousing.

Create a basic RedshiftServerless Namespace with required properties and a common optional property.

import AWS from "alchemy/aws/control";
const namespace = await AWS.RedshiftServerless.Namespace("myNamespace", {
namespaceName: "myDataWarehouse",
adminUsername: "admin",
adminUserPassword: "StrongPassword123!",
manageAdminPassword: true
});

Configure a Namespace with advanced options such as IAM roles and snapshot copy configurations.

const advancedNamespace = await AWS.RedshiftServerless.Namespace("advancedNamespace", {
namespaceName: "advancedDataWarehouse",
adminUsername: "admin",
adminUserPassword: "AnotherStrongPassword456!",
manageAdminPassword: true,
iamRoles: [
"arn:aws:iam::123456789012:role/myRedshiftRole"
],
snapshotCopyConfigurations: [{
destinationRegion: "us-west-2",
retentionPeriod: 7
}],
tags: [
{ key: "Project", value: "RedshiftServerless" },
{ key: "Environment", value: "Production" }
]
});

Create a Namespace with final snapshot settings and KMS key for enhanced security.

const secureNamespace = await AWS.RedshiftServerless.Namespace("secureNamespace", {
namespaceName: "secureDataWarehouse",
adminUsername: "admin",
adminUserPassword: "SecurePassword789!",
finalSnapshotName: "finalSnapshot",
finalSnapshotRetentionPeriod: 30,
kmsKeyId: "arn:aws:kms:us-east-1:123456789012:key/my-key-id"
});

Define a Namespace with a custom resource policy to manage access permissions.

const policyNamespace = await AWS.RedshiftServerless.Namespace("policyNamespace", {
namespaceName: "policyDataWarehouse",
adminUsername: "admin",
adminUserPassword: "PolicyPassword321!",
namespaceResourcePolicy: {
Version: "2012-10-17",
Statement: [
{
Effect: "Allow",
Principal: {
AWS: "arn:aws:iam::123456789012:role/myAccessRole"
},
Action: "redshift-serverless:DescribeNamespaces",
Resource: "*"
}
]
}
});