AWS dynamodb - 连接到我的本地dynamodb并创建表

时间:2017-06-21 16:38:10

标签: php amazon-web-services amazon-dynamodb

我需要AWS dynamodb作为我项目的后端..我已经完成了以下任务:

  1. 为dynamodb本地服务器建立jar以开始监听
  2. 从AWS下载PHP SDK
  3. 从AWS控制台创建了一个iam用户,并将credentials.ini文件复制到.aws文件夹
  4. 执行php脚本连接我的本地dynamodb并创建表。
  5. 完成所有这些任务后,localhost会给我一条消息,说明'table created'。但是我无法在AWS控制台中找到我的表。可能是什么问题?。

    我做得对吗? ..有人可以对此有所了解吗?

    这是我通过PHP的连接:

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

1 个答案:

答案 0 :(得分:1)

首先,当您使用本地主机时,该表将在您的本地计算机中创建(即不在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"