Как обновить элемент с использованием синтаксиса выражений для DynamodB в таблице с хешем и диапазоном

Я считаю, что это должно работать, но это не так:

$response = $client->updateItem(array(
'TableName' => 'ximoIsThisYou',
'KeyConditionExpression' => 'rep_num = :v_hash and record_created = :v_range',
'ExpressionAttributeValues' =>  array (
':v_hash'  => array('S' => $rep_num),
':v_range' => array('N' => $record_created),
':val1' => array('S' => '447747')
),
'UpdateExpression' => 'set vimeo_id = :val1',
'ReturnValues' => 'ALL_NEW'
));

Я получаю эту ошибку:

Uncaught Aws\DynamoDb\Exception\ValidationException:
AWS Error Code: ValidationException, Status Code: 400,
AWS Request ID: UOPKLQER1MI3ANF48PU92IAC3VVV4KQNSO5AEMVJF66Q9ASUAAJG,
AWS Error Type: client,
AWS Error Message: 1 validation error detected: Value null at 'key' failed to satisfy constraint: Member must not be null,
User-Agent: aws-sdk-php2/2.8.2 Guzzle/3.9.3 curl/7.35.0 PHP/5.5.9-1ubuntu4.11

Это, однако, работает:

$response = $client->query(array(
'TableName' => 'ximoIsThisYou',
'KeyConditionExpression' => 'rep_num = :v_hash and record_created = :v_range',
'ExpressionAttributeValues' =>  array (
':v_hash'  => array('S' => $rep_num),
':v_range' => array('N' => $record_created)
),
));

0

Решение

KeyConditionExpression это параметр, используемый для Query.

Условие, которое указывает ключевые значения для элементов, которые должны быть получены действием Query.

Вы пытаетесь позвонить UpdateItem, что требует Key. Вы получаете ошибку проверки, потому что вы не установили обязательный параметр запроса Key,

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector