Метод UpdateTable
Статья создана
Обновлена 26 февраля 2024 г.
Обновляет глобальные вторичные индексы и настройки стриминга указанной таблицы.
Вы можете выполнить только одну из этих операций за один запрос:
- Добавить глобальный вторичный индекс в таблицу.
- Удалить глобальный вторичный индекс из таблицы.
- включить/выключить стриминг изменений.
Запрос
Запрос содержит данные в формате JSON.
{
"AttributeDefinitions": [
{
"AttributeName": "string",
"AttributeType": "string"
}
],
"BillingMode": "string",
"GlobalSecondaryIndexUpdates": [
{
"Create": {
"IndexName": "string",
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"Projection": {
"NonKeyAttributes": [ "string" ],
"ProjectionType": "string"
}
},
"Delete": {
"IndexName": "string"
}
}
],
"StreamSpecification": {
"StreamEnabled": boolean,
"StreamViewType": "string"
},
"TableName": "string"
}
Параметры
Параметр | Описание |
---|---|
TableName |
Имя обновляемой таблицы. Может содержать путь в иерархии каталогов вида path/to/table. Тип: Строка Длина: 3 - 255 символов. Шаблон: [a-zA-Z0-9_.-]+ Обязательно: Да |
AttributeDefinitions |
Массив атрибутов, описывающих схему ключей для таблицы и индексов. Тип: Массив объектов типа AttributeDefinition .Обязательно: Нет |
GlobalSecondaryIndexUpdates |
Массив операций, описывающий действия над глобальными вторичными индексами:
При создании индекса нужно указывать следующие параметры:
Обязательно: Нет При удалении таблицы достаточно указать только IndexName . |
StreamSpecification |
Описание настроек стрима изменений для таблицы:
Тип: объект типа StreamSpecification .Обязательно: Нет |
Ответ
В случае успеха вернется HTTP с кодом 200.
Запрос возвращает данные в формате JSON.
{
"TableDescription": {
"ArchivalSummary": {
"ArchivalBackupArn": "string",
"ArchivalDateTime": number,
"ArchivalReason": "string"
},
"AttributeDefinitions": [
{
"AttributeName": "string",
"AttributeType": "string"
}
],
"BillingModeSummary": {
"BillingMode": "string",
"LastUpdateToPayPerRequestDateTime": number
},
"CreationDateTime": number,
"GlobalTableVersion": "string",
"ItemCount": number,
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"LatestStreamArn": "string",
"LatestStreamLabel": "string",
"Replicas": [
{
"KMSMainKeyId": "string",
"RegionName": "string",
"ReplicaStatus": "string",
"ReplicaStatusDescription": "string",
"ReplicaStatusPercentProgress": "string"
}
],
"RestoreSummary": {
"RestoreDateTime": number,
"RestoreInProgress": boolean,
"SourceBackupArn": "string",
"SourceTableArn": "string"
},
"SSEDescription": {
"InaccessibleEncryptionDateTime": number,
"KMSMainKeyArn": "string",
"SSEType": "string",
"Status": "string"
},
"StreamSpecification": {
"StreamEnabled": boolean,
"StreamViewType": "string"
},
"TableArn": "string",
"TableId": "string",
"TableName": "string",
"TableSizeBytes": number,
"TableStatus": "string"
}
}
Параметры
Параметр | Описание |
---|---|
TableDescription |
Свойства созданной таблицы. Тип: объект типа TableDescription |
Ошибки
Параметр | Описание |
---|---|
InternalServerError |
Произошла внутренняя ошибка на стороне сервера. Код состояния HTTP: 500 |
LimitExceededException |
Превышен лимит операций над таблицами. Одновременно допускается до 50 операций над таблицами, включая CreateTable , UpdateTable , DeleteTable , UpdateTimeToLive , RestoreTableFromBackup , и RestoreTableToPointInTime .Код состояния HTTP: 400 |
ResourceInUseException |
Попытка создать таблицу с уже существующим именем. Код состояния HTTP: 400 |
ResourceNotFoundException |
Указанная таблица не существует, или она еще создается методом createTable Код состояния HTTP: 400 |
ValidationException |
Попытка включить стриминг изменений, если он уже включен. Попытка выключить стриминг изменений, если он выключен. Попытка добавить индекс с уже занятым именем. |
Также могут возникать Общие ошибки, одинаковые для всех методов.