Я считаю, что это должно работать, но это не так:
$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)
),
));
KeyConditionExpression
это параметр, используемый для Query
.
Условие, которое указывает ключевые значения для элементов, которые должны быть получены действием Query.
Вы пытаетесь позвонить UpdateItem
, что требует Key
. Вы получаете ошибку проверки, потому что вы не установили обязательный параметр запроса Key
,
Других решений пока нет …