Mah*_*bub 5 php amazon-s3 amazon-web-services amazon-dynamodb aws-sdk
我正在尝试在我的 php 应用程序中使用 amazon dynamodb。我已正确设置凭据。现在,我尝试将数据从 Amazon DynamoDB 获取到我的应用程序。但它在查询行给了我一个例外。
完整的异常错误是
无法查询:在“ https://dynamodb.my-region.amazonaws.com ”上执行“查询”时出错;AWS HTTP 错误:客户端错误:
POST https://dynamodb.my-region.amazonaws.com导致400 Bad Request响应:{"__type":"com.amazon.coral.validate#ValidationException","message":"KeyConditions 或 KeyConditionExpression(已截断...)ValidationException(客户端):必须在请求中指定 KeyConditions 或 KeyConditionExpression 参数。 - {"__type":"com.amazon.coral.validate#ValidationException","message":"必须在请求中指定 KeyConditions 或 KeyConditionExpression 参数。" }
这是我的代码,
$sdk = new Aws\Sdk([
'region' => 'my region',
'version' => 'latest',
'credentials' => [
'key' => 'my key',
'secret' => 'my secret key'
],
'DynamoDb' => [
'region' => 'my region',
],
]);
$dynamodb = $sdk->createDynamoDb();
$marshaler = new Marshaler();
$tableName = 'My Table Name';
$params = [
'TableName' => $tableName
];
try {
$result = $dynamodb->query($params);
} catch (DynamoDbException $e) {
echo "Unable to query:\n";
echo $e->getMessage() . "\n";
}
Run Code Online (Sandbox Code Playgroud)
错误来自 try-catch 块。谁能告诉我这个错误的原因和解决方案吗?对于这个错误有什么建议吗?提前致谢。
请添加KeyConditionExpressionwith 值。
$params = [
'TableName' => $tableName,
'KeyConditionExpression' => 'yourHashKey = :v_hash'
'ExpressionAttributeValues' => array (
':v_hash' => array('S' => 'Hash_Value')
)
];
Run Code Online (Sandbox Code Playgroud)