2017-06-21 271 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"