2012-05-09 16 views
2

DynamoDBにデータを送信する際に問題が発生しています。プログラムが正常に動作するように見えるため、問題が何であるか分かりませんが、私のDBにはデータがないようです。 Amazons tutorialを使用してテーブルを作成することができましたが、このチュートリアルに従うと、ALLを入力すると失敗しました。PHPのDynamoDBを使用したバッチput_item

ここにコードがあります。誰かがこの種の問題をデバッグする方法を知っているのであれば、私は特に興味があります。

<?php 
// If necessary, reference the sdk.class.php file. 
// For example, the following line assumes the sdk.class.php file is 
// in an sdk sub-directory relative to this file 
require_once('includes/backend.php'); 

// Instantiate the class 
$dynamodb = new AmazonDynamoDB(); 

#################################################################### 
# Setup some local variables for dates 

$one_day_ago = date('Y-m-d H:i:s', strtotime("-1 days")); 
$seven_days_ago = date('Y-m-d H:i:s', strtotime("-7 days")); 
$fourteen_days_ago = date('Y-m-d H:i:s', strtotime("-14 days")); 
$twenty_one_days_ago = date('Y-m-d H:i:s', strtotime("-21 days")); 

#################################################################### 
# Adding data to the table 

echo PHP_EOL . PHP_EOL; 
echo "# Adding data to the table..." . PHP_EOL; 

// Set up batch requests 
$queue = new CFBatchRequest(); 
$queue->use_credentials($dynamodb->credentials); 

// Add items to the batch 
$dynamodb->batch($queue)->put_item(array(
    'TableName' => 'ProductCatalog', 
    'Item' => array(
     'Id'    => array(AmazonDynamoDB::TYPE_NUMBER   => '101'    ), // Hash Key 
     'Title'   => array(AmazonDynamoDB::TYPE_STRING   => 'Book 101 Title' ), 
     'ISBN'   => array(AmazonDynamoDB::TYPE_STRING   => '111-1111111111' ), 
     'Authors'   => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1') ), 
     'Price'   => array(AmazonDynamoDB::TYPE_NUMBER   => '2'    ), 
     'Dimensions'  => array(AmazonDynamoDB::TYPE_STRING   => '8.5 x 11.0 x 0.5'), 
     'PageCount'  => array(AmazonDynamoDB::TYPE_NUMBER   => '500'    ), 
     'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER   => '1'    ), 
     'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING   => 'Book'   ) 
    ) 
)); 


echo "Item put in <b>Reply</b>" . "<br/>"; 

// Execute the batch of requests in parallel 
$responses = $dynamodb->batch($queue)->send(); 

// Check for success... 
if ($responses->areOK()) 
{ 
    echo "The data has been added to the table." . PHP_EOL; 
} 
    else 
{ 
    utdump($responses); 
} 

答えて

1

は、例えば、明示的にお住まいの地域を設定してみてください、あなたの時間をありがとうEUのためにあなたが呼び出す必要があります:

$myDynamoDbObject->set_region('dynamodb.eu-west-1.amazonaws.com'); 

それはまた、あなたが別の地域で二つのテーブル、それらのいずれかを使用してアプリケーションの仕事を持っているとあなたが読んで(またはWebコンソールで追跡)しようとしていることかもしれないもう一つのため、異なるデフォルト領域が適用されています。

テーブル内のアイテムの数をトラッキングする場合は、リアルタイムの数字ではなく、6時間ごとに更新されることに注意してください。したがって、あなたのアイテムを確実に使用できるようにするには、実際には、あなたのput要求に対する「OK」応答を受け取った直後にそれを読み取ろうとします。

関連する問題