UpdateGlobalTable - Amazon DynamoDB

UpdateGlobalTable

Adds or removes replicas in the specified global table. The global table must already exist to be able to use this operation. Any replica to be added must be empty, have the same name as the global table, have the same key schema, have DynamoDB Streams enabled, and have the same provisioned and maximum write capacity units.

Important

This documentation is for version 2017.11.29 (Legacy) of global tables, which should be avoided for new global tables. Customers should use Global Tables version 2019.11.21 (Current) when possible, because it provides greater flexibility, higher efficiency, and consumes less write capacity than 2017.11.29 (Legacy).

To determine which version you're using, see Determining the global table version you are using. To update existing global tables from version 2017.11.29 (Legacy) to version 2019.11.21 (Current), see Upgrading global tables.

Note

For global tables, this operation only applies to global tables using Version 2019.11.21 (Current version). If you are using global tables Version 2019.11.21 you can use UpdateTable instead.

Although you can use UpdateGlobalTable to add replicas and remove replicas in a single request, for simplicity we recommend that you issue separate requests for adding or removing replicas.

If global secondary indexes are specified, then the following conditions must also be met:

  • The global secondary indexes must have the same name.

  • The global secondary indexes must have the same hash key and sort key (if present).

  • The global secondary indexes must have the same provisioned and maximum write capacity units.

Request Syntax

{ "GlobalTableName": "string", "ReplicaUpdates": [ { "Create": { "RegionName": "string" }, "Delete": { "RegionName": "string" } } ] }

Request Parameters

The request accepts the following data in JSON format.

Note

In the following list, the required parameters are described first.

GlobalTableName

The global table name.

Type: String

Length Constraints: Minimum length of 3. Maximum length of 255.

Pattern: [a-zA-Z0-9_.-]+

Required: Yes

ReplicaUpdates

A list of Regions that should be added or removed from the global table.

Type: Array of ReplicaUpdate objects

Required: Yes

Response Syntax

{ "GlobalTableDescription": { "CreationDateTime": number, "GlobalTableArn": "string", "GlobalTableName": "string", "GlobalTableStatus": "string", "ReplicationGroup": [ { "GlobalSecondaryIndexes": [ { "IndexName": "string", "OnDemandThroughputOverride": { "MaxReadRequestUnits": number }, "ProvisionedThroughputOverride": { "ReadCapacityUnits": number }, "WarmThroughput": { "ReadUnitsPerSecond": number, "Status": "string", "WriteUnitsPerSecond": number } } ], "KMSMasterKeyId": "string", "OnDemandThroughputOverride": { "MaxReadRequestUnits": number }, "ProvisionedThroughputOverride": { "ReadCapacityUnits": number }, "RegionName": "string", "ReplicaInaccessibleDateTime": number, "ReplicaStatus": "string", "ReplicaStatusDescription": "string", "ReplicaStatusPercentProgress": "string", "ReplicaTableClassSummary": { "LastUpdateDateTime": number, "TableClass": "string" }, "WarmThroughput": { "ReadUnitsPerSecond": number, "Status": "string", "WriteUnitsPerSecond": number } } ] } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

GlobalTableDescription

Contains the details of the global table.

Type: GlobalTableDescription object

Errors

For information about the errors that are common to all actions, see Common Errors.

GlobalTableNotFoundException

The specified global table does not exist.

HTTP Status Code: 400

InternalServerError

An error occurred on the server side.

HTTP Status Code: 500

ReplicaAlreadyExistsException

The specified replica is already part of the global table.

HTTP Status Code: 400

ReplicaNotFoundException

The specified replica is no longer part of the global table.

HTTP Status Code: 400

TableNotFoundException

A source table with the name TableName does not currently exist within the subscriber's account or the subscriber is operating in the wrong AWS Region.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: