PHP中的AWS DynamoDb会话处理程序:session_id()在EC2实例之间返回不同的值

时间:2014-04-01 16:43:05

标签: php amazon-dynamodb

我有2个使用Apache2和PHP的EC2实例。

两个实例都包含AWS DynamoDB的会话处理程序,并且值已写入数据库。但是当我尝试获取session_id()时,返回两个不同的值......

有什么问题?

2 个答案:

答案 0 :(得分:0)

据我所知,session_id不是在实例之间共享的。这是从php代码调用dynamodb的简单方法。每个EC2都有一个与DynamoDB不同的会话。

http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.DynamoDb.Session.SessionHandler.html

答案 1 :(得分:0)

我明白了这个问题......

当我将下面的代码放在2个正常运行的EC2实例中时,我试图在我的本地机器和EC2实例上进行测试。

use Aws\DynamoDb\DynamoDbClient;
use Aws\DynamoDb\Session;

try {
    $dynamoDb = DynamoDbClient::factory(array(
        'key'    => 'AWS_KEY',
        'secret' => 'AWS_SECRET',
        'region' => 'AWS_REGION'
    ));

    $sessionHandler = $dynamoDb->registerSessionHandler(array(
        'table_name'               => 'session',
        'hash_key'                 => 'id',
        'session_lifetime'         => 3600,
        'consistent_read'          => true,
        'locking_strategy'         => null,
        'automatic_gc'             => 0,
        'gc_batch_size'            => 50,
        'max_lock_wait_time'       => 15,
        'min_lock_retry_microtime' => 5000,
        'max_lock_retry_microtime' => 50000,
    ));
} catch (Exception $e) {
    exit($e->getMessage());
}