DynamoDB Localを使ってみるにてとりあえず動作確認はできたので、
次はPHPを使って色々と触ってみようと思います。
まずはAWS SDK for PHP2を用意します。
環境
- VirtualBox 4.3
- ubuntu 14.04
- PHP 5.5.9-1ubuntu4.5 (cli)
PHP ComposerでAWS SDK for PHP2をインストールする
composer.json
$ cd ~
$ vim composer.json
-----
{
"require": {
"guzzle/guzzle": "3.9.*",
"aws/aws-sdk-php": "2.6.*"
}
}
-----
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install
接続クラスを作ってみる
DynamoDB.class.php
<?php
require_once "../vendor/autoload.php";
use Aws\Common\Enum\Region;
use Aws\DynamoDb\DynamoDbClient;
class DynamoDB
{
public static function conn(){
return DynamoDBClient::factory(array(
'key' => 'aws_key',
'secret' => 'aws_secret_key',
'region' => Region::TOKYO,
'base_url' => 'http://localhost:8000'
));
}
}
※「require_once」で取得したAWS SDK for PHP2のライブラリを指定します
※「base_url」にはDynamoDB Localを起動したときのポートを指定します。
※「key」「secret」は本来発行された値を利用しますが、Localの場合は上記でも構わないようです
DynamoDB Localに接続してみよう
DescribeTable.class.php
<?php
require_once 'DynamoDB.class.php';
class DescribeTable{
private $dynamo;
public function __construct() {
$this->dynamo = DynamoDB::conn();
}
public function execute() {
$param = array(
'TableName' => 'test'
);
try {
$result = $this->dynamo->describeTable($param);
} catch (DynamoDbException $e) {
print $e;
}
}
}
$describeTable = new DescribeTable;
$describeTable->execute();
$ php DescribeTable.class.php
PHP Fatal error: Uncaught Aws\DynamoDb\Exception\ResourceNotFoundException: AWS Error Code: ResourceNotFoundException, Status Code: 400, AWS Request ID: d4227200-37d7-4960-88fb-ac1275f3f5c9, AWS Error Type: client, AWS Error Message: Cannot do operations on a non-existent table …
まだテーブルを作成していないので「test」というテーブルは無い(non-existent table)
と表示されます。
どうやら接続は問題無さそうです。
次はテーブルを作成してみます。