我是AWS新手。我安装了一个处理PhP代码的EC2服务器。我可以通过亚马逊网站管理数据库。我正在尝试使用以下代码访问我的DynamoDB表:
use Aws\DynamoDb\DynamoDbClient;
try {
$client = DynamoDbClient::factory(array(
'profile' => 'default', // access ID + secret are in the .aws/credentials file
'region' => Region::EU_WEST_1 // also tried with "eu-west-1"
));
echo "after client instanciation"; // this is not displayed
$response = $client->getItem([
'TableName' => 'Child',
'Key' => [
'ChildID' => 'Nicolas'
]
]);
print_r ($response['Item']);
} catch (Exception $e) {
echo '<p>Exception received : ', $e->getMessage(), "\n</p>";
}
我没有得到任何例外。我想要的孩子没有显示(我确实创造了它)。还尝试使用putItem方法,但它没有向数据库添加任何内容。
答案 0 :(得分:0)
我认为你错过了密钥中的数据类型:
$response = $dynamodb->getItem([
'TableName' => 'Child',
'Key' => [
'ChildID' => [ 'S' => 'Nicolas' ]
]
]);
现在你应该得到输出,你可以参考这个Link。
答案 1 :(得分:0)
尝试使用以下代码,它允许您通过参数传递公共密钥和秘密密钥。
$client = new DynamoDbClient([
'version' => 'latest',
'region' => 'ap-northeast-1',
'credentials' => [
'key' => 'A5ITUTLAK7W47NNNNQ',
'secret' => 'DrsEjmEMs4PUPIY5/12a/cpUB7JVVcKLahFz826p'
]
]);
try {
$result = $client->getItem(array(
'ConsistentRead' => true,
'TableName' => 'fruits',
'Key' => array(
'id' => array('S' => '1')
)
));
将密钥替换为您的密钥。