Skip to content
GitHubXDiscordRSS

GlobalTable

Learn how to create, update, and manage AWS DynamoDB GlobalTables using Alchemy Cloud Control.

The GlobalTable resource allows you to create and manage AWS DynamoDB GlobalTables for globally distributed applications with multi-region replication.

Create a basic DynamoDB GlobalTable with required properties and one optional setting.

import AWS from "alchemy/aws/control";
const globalTable = await AWS.DynamoDB.GlobalTable("myGlobalTable", {
TableName: "MyGlobalTable",
AttributeDefinitions: [
{ AttributeName: "UserID", AttributeType: "S" }
],
KeySchema: [
{ AttributeName: "UserID", KeyType: "HASH" }
],
Replicas: [
{
RegionName: "us-east-1"
},
{
RegionName: "eu-west-1"
}
],
StreamSpecification: {
StreamViewType: "NEW_AND_OLD_IMAGES"
}
});

Configure a GlobalTable with provisioned throughput settings and additional indexes.

const advancedGlobalTable = await AWS.DynamoDB.GlobalTable("advancedGlobalTable", {
TableName: "AdvancedGlobalTable",
AttributeDefinitions: [
{ AttributeName: "OrderID", AttributeType: "S" },
{ AttributeName: "CustomerID", AttributeType: "S" }
],
KeySchema: [
{ AttributeName: "OrderID", KeyType: "HASH" }
],
Replicas: [
{
RegionName: "us-west-1",
GlobalSecondaryIndexes: [
{
IndexName: "CustomerIndex",
KeySchema: [
{ AttributeName: "CustomerID", KeyType: "HASH" }
],
Projection: {
ProjectionType: "ALL"
},
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
}
]
}
],
WriteProvisionedThroughputSettings: {
ReadCapacityUnits: 10,
WriteCapacityUnits: 10
}
});

Set up a GlobalTable with Time to Live (TTL) specification for automatic data expiration.

const ttlGlobalTable = await AWS.DynamoDB.GlobalTable("ttlGlobalTable", {
TableName: "TTLGlobalTable",
AttributeDefinitions: [
{ AttributeName: "SessionID", AttributeType: "S" }
],
KeySchema: [
{ AttributeName: "SessionID", KeyType: "HASH" }
],
Replicas: [
{
RegionName: "ap-south-1"
}
],
TimeToLiveSpecification: {
AttributeName: "ExpirationTime",
Enabled: true
}
});

Configure a GlobalTable with write on demand settings to handle unpredictable workloads.

const onDemandGlobalTable = await AWS.DynamoDB.GlobalTable("onDemandGlobalTable", {
TableName: "OnDemandGlobalTable",
AttributeDefinitions: [
{ AttributeName: "ProductID", AttributeType: "S" }
],
KeySchema: [
{ AttributeName: "ProductID", KeyType: "HASH" }
],
Replicas: [
{
RegionName: "us-east-2"
}
],
WriteOnDemandThroughputSettings: {
Enabled: true
}
});