maemaewaterの日記

エンジニア兼ゲーマーの人の日記です。PHP/Python/JavaScript/C#/C++などによるプログラムに関することを主に書いています。

Amazon EC2とDynamoDB 2

先ほどの記事を書いた後に気が付いたのですが、PHP用のSDKのバージョンの古い方を使用していました。

実は、AWS SDK for PHP version 2があったのですね。version 1のをいろいろと試している過程でpearSDKをインストールをしていたときに、なんだか中身が違うと思っていましたがさりげなく気付いてませんでした。

次の手順でpearを使って導入します。

sudo yum install php
sudo yum install php-pear

sudo pear channel-discover pear.amazonwebservices.com
sudo pear -D auto_discover=1 install guzzlephp.org/pear/guzzle
sudo pear install aws/sdk
sudo yum install php-dom

これで、AWS SDKが使えるようになっていますので、PHPから利用できます。DynamoDBを使用するプログラムは次の通りです。まずは、config.phpから。

<?php
return array(
        'includes' => array('_aws'),
        'services' => array(
                'default_settings' => array(
                        'params' => array(
                                'key' => '入力する',
                                'secret' => '入力する',
                                'region' => 'ap-northeast-1'
                        )
                )
        )
        );

次に本体のプログラムは次の通りです。

<?php
require_once 'AWSSDKforPHP/aws.phar';

use Aws\Common\Aws;

$aws = Aws::factory('/[入力する]/config.php');

$ddb = $aws->get('dynamodb');

$result = $ddb->getItem(array(
        'TableName' => 'test2',
        'Key' => array(
                'HashKeyElement' => array('S' => '2')
                )
        )
        );

$put_result = $ddb->putItem(array(
        'TableName' => 'test2',
        'Item' => array(
                'user' => array( 'S' => '9'),
                'address' => array ('S' => 'test message'),
                'name' => array('S' => 'this is test.')
                )
        )
    );

echo 'OK';
?>

テーブルtest2に対してデータの取得と追加を行っています。

関連するページ: