当前位置: 首页 > 知识库问答 >
问题:

无法在本地dynamoDB中创建表

尚嘉庆
2023-03-14

我已经在本地运行了DynamoDB,并使用shell(localhost:8000/shell/)创建了一个表。

javascript prettyprint-override">var params = {
  ExclusiveStartTableName: 'STRING_VALUE',
  Limit: 10
};
dynamodb.listTables(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
{"TableNames":["myTable"]}

[Mon Decc 14 11:22:48.266930 2015][:错误][pid 12][client 10.0.2.2:58042]PHP致命错误:未捕获AWS\DynamODB\Exception\ResourceNotFoundException:AWS错误代码:ResourceNotFoundException,状态代码:400,AWS请求ID:8DE599F1-7AA6-4147-B2F8-B3ACC74B09DA,AWS错误类型:客户端,AWS错误消息:无法对不存在的表执行操作,User-Agent:AWS-SDK-PHP2/2.8.24 GUZZLE/3.9.3/AWS/sdk/vendor/AWS/aws-sdk-php/src/AWS/common/exception/namespaceExceptionFactory.PHP第91行

这就是我如何创建客户机

$this->client = DynamoDbClient::factory(array(
    'key' => 'YOUR_KEY', 
    'secret' => 'YOUR_SECRET', 
    'profile' => 'default',
    'region'  => 'us-west-2',
    //'version' => '2012-08-10',
    'endpoint'=> 'http://localhost:8000',
    //'debug'   => true
));

如果endpoint错误,客户端创建本身就会引发错误,但在这种情况下,表不会按照PHP创建

echo "List of tables";
$iterator = $this->client->()->getIterator('ListTables');
foreach ($iterator as $tableName) {
    echo $tableName . "\n";
}

什么都没印。

共有1个答案

谢夜洛
2023-03-14

我刚才在这里回答了一个类似的问题:https://stackoverflow.com/a/40806393/1061798

检查如何启动DynamoDB。您需要添加一个-SharedDB标志,如我在上面链接中的回答所述

 类似资料: