2017-06-21 270 views
0

我需要一个AWS dynamodb作为后端为我的项目的。我已经完成了任务如下:AWS dynamodb - 连接到我的本地dynamodb并创建表

  1. 为dynamodb当地建立罐子服务器开始收听
  2. 下载PHP SDK从AWS
  3. 创建从AWS控制台的IAM用户和复制的credentials.ini文件到执行PHP脚本连接我的地方dynamodb并创建表.aws文件夹

所有这些任务完成后,localhost给我一个消息,说明'创建表'。但是我无法在AWS控制台中找到我的表。可能是什么问题呢?。

我做得对吗? ..有人可以澄清这一点吗?

这里是通过我的PHP连接:

$client = new Aws\Sdk([ 
//'profile' => 'default', 
'region' => 'us-west-2', 
'version' => 'latest', 
'endpoint' => 'http://localhost:8000', 
'credentials' => [ 
    'key' => '', 
    'secret' => ''] 
]); 

回答

0

首先,当您使用本地主机,该表将在本地机器上创建的(即不是在AWS)。您提到了AWS控制台,我了解到您正在查找“AWS管理控制台”上的表。当您将端点用作“http://localhost:8000”时,API将永远不会与实际的AWS交互。

它指的是本地dynamodb实例

要检查本地dynamodb实例表: -

1)如果您的系统上安装AWS CLI,您可以检查使用以下命令表的存在。

aws dynamodb describe-table --table-name yourTableName --endpoint-url http://localhost:8000 

2),否则进行http://localhost:8000/shell/

var docClient = new AWS.DynamoDB({ 
    region: 'us-east-1', 
    endpoint: "http://localhost:8000" 
}); 
var params = {TableName:'yourTableName'}; 
docClient.describeTable(params, function(err, data) { 
    if (err) { 
     console.log(err, err.stack); 
    } else { 
     console.log(data); 
     // php.var_dump(data); 
    } 
}); 

如果表存在: -

它会显示表

的定义,如果表没有存在: -

您将收到以下错误消息。

"message":"Cannot do operations on a non-existent table"