Php 提供的键元素与架构不匹配

Php 提供的键元素与架构不匹配,php,amazon-web-services,amazon-dynamodb,Php,Amazon Web Services,Amazon Dynamodb,我尝试从我的数据库中获取所有记录,它可以很好地处理: $client->scan([ 'TableName' => 'MyTableName' ]); 现在,当我尝试使用以下代码获取特定记录时,我得到了异常:提供的键 $client->getItem([ 'TableName' => 'MyTableName', 'Key' => [ 'id' => ['S

我尝试从我的数据库中获取所有记录,它可以很好地处理:

$client->scan([
      'TableName' => 'MyTableName'
    ]);
现在,当我尝试使用以下代码获取特定记录时,我得到了异常:提供的键

$client->getItem([
            'TableName' => 'MyTableName',
            'Key' => [
                'id'  => ['S' => '1234abcd']
            ]
        ]);
请注意,我没有为表创建索引,id列的类型是string

编辑:添加了分区键,仍然是相同的错误:


您确定您的
id
主键是简单的而不是复合的吗?换句话说,表中没有分区键和排序键。@KhalidT。这属于索引吗?因为正如我提到的,我没有为表创建索引。如果没有,我该怎么做,或者任何有帮助的链接呢?如果你有一个主键,那么你有一个索引。当你说你没有索引时,你的意思可能是“你没有辅助索引”,因为AmazonDynamodB自动为主键属性创建和维护索引。在调用
getItem
方法(即分区键和排序键,如果存在)时,只需确保为表提供了正确的主键即可。@KhalidT。“我在那张桌子上没有主键。”@KhalidT。添加了分区键,请参见上面的编辑-包括图像。您确定您的
id
主键是简单的而不是复合的吗?换句话说,表中没有分区键和排序键。@KhalidT。这属于索引吗?因为正如我提到的,我没有为表创建索引。如果没有,我该怎么做,或者任何有帮助的链接呢?如果你有一个主键,那么你有一个索引。当你说你没有索引时,你的意思可能是“你没有辅助索引”,因为AmazonDynamodB自动为主键属性创建和维护索引。在调用
getItem
方法(即分区键和排序键,如果存在)时,只需确保为表提供了正确的主键即可。@KhalidT。“我在那张桌子上没有主键。”@KhalidT。添加了分区键,请参见上面的编辑-包括图像。