2014-07-18 33 views
0

我想用PHP,AWS-SDK創建dynamodb表類java.lang.String不能轉換爲長而DynamoDB創建表

set_time_limit(0); 
error_reporting(E_ALL); 

require_once 'aws/aws-autoloader.php'; 

use Aws\DynamoDb\DynamoDbClient; 

$ddb = DynamoDbClient::factory(array(
    'key' => $_SERVER['AWS_KEY']), 
    'secret' => $_SERVER['AWS_SECRET']), 
    'region' => $_SERVER['AWS_REGION']) 
)); 

$name = 'test'; 

$ddb->createTable(array(
    'TableName' => $name, 
    'AttributeDefinitions' => array(
     array(
      'AttributeName' => 'Event ID', 
      'AttributeType' => 'S' 
     ) 
    ), 
    'KeySchema' => array(
     array(
      'AttributeName' => 'Event ID', 
      'KeyType' => 'HASH' 
     ) 
    ), 
    'ProvisionedThroughput' => array(
     'ReadCapacityUnits' => $_SERVER['DDB_READ_CAPACITY_UNITS']), 
     'WriteCapacityUnits' => $_SERVER['DDB_WRITE_CAPACITY_UNITS']), 
    ) 
)); 

echo $name; 

它是本地計算機上成功的工作,但我有通過Elasticbeanstalk

Fatal error: Uncaught Aws\DynamoDb\Exception\DynamoDbException: AWS Error Code: SerializationException, Status Code: 400, AWS Request ID: HTTCDOVSES4RU0V8IVIQFGREL7VV4KQNSO5AEMVJF66Q9ASUAAJG, AWS Error Type: client, AWS Error Message: class java.lang.String can not be converted to an Long, User-Agent: aws-sdk-php2/2.6.12 Guzzle/3.9.1 curl/7.36.0 PHP/5.5.12 thrown in /var/app/current/aws/Aws/Common/Exception/NamespaceExceptionFactory.php on line 91

回答

2

我懷疑行書,因爲錯誤是在談論一個壞串地龍(數字)轉換,您DDB_READ_CAPACITY_UNITSDDB_WRITE_CAPACITY_UNITS值被解讀爲$_SERVER字符串問題的錯誤。嘗試將它們轉換爲整數。

'ProvisionedThroughput' => array(
    'ReadCapacityUnits' => (int) $_SERVER['DDB_READ_CAPACITY_UNITS'], 
    'WriteCapacityUnits' => (int) $_SERVER['DDB_WRITE_CAPACITY_UNITS'], 
) 
+1

你是我的英雄!非常感謝你 – indapublic

相關問題