У меня есть простая небольшая таблица, которую я просто хочу обновить. Провел часы в документах и тестировании, не могу понять.
Моя таблица:
|environment |who|
-------------------
|ax |tom|
Первичный ключ находится в «среде»
Все, что я хочу сделать, это установить «кто» на «бен», где «среда» = «топор».
Я пробовал как устаревший способ ведения дел, так и способ выражения. Я также попробовал как нотацию квадратных скобок, которую AWS использует в своих документах, так и нотацию array() php. Ниже приведены некоторые из способов, которыми я пытался это сделать.
1:
$result = $client->updateItem(array(
'ConditionExpression' => 'environment = :env',
'ExpressionAttributeValues' => array(
':env' => array(
'S' => 'environment'
),
':who' => array(
'S' => $who
)
),
'Key' => array( // REQUIRED
':env' => array(
'S' => $env
)
),
'ReturnValues' => 'UPDATED_NEW',
'TableName' => 'areas',
'UpdateExpression' => 'SET who = :who'
));
2:
$result = $client->updateItem([
'ConditionExpression' => 'environment = :env',
'ExpressionAttributeValues' => [
':env' => [
'S' => 'environment'
],
':who' => [
'S' => $who
]
],
'Key' => [
':env' => [
'S' => $env
]
],
'ReturnValues' => 'UPDATED_NEW',
'TableName' => 'areas',
'UpdateExpression' => 'SET who = :who'
]);
3:
$result = $client->updateItem(array(
'AttributeUpdates' => array(
'who' => array(
'Action' => 'PUT',
'Value' => array(
'S' => $who
)
)
),
'Key' => array(
'environment' => array(
'S' => $env
)
),
'TableName' => 'areas'
));
Изменить: Я получаю сообщение об ошибке:
SerializationException (client): Start of list found where not expected - {"__type":"com.amazon.coral.service#SerializationException","Message":"Start of list found where not expected"}'
Любая помощь в этом очень ценится.