我有2个使用Apache2和PHP的EC2实例。
两个实例都包含AWS DynamoDB的会话处理程序,并且值已写入数据库。但是当我尝试获取session_id()时,返回两个不同的值......
有什么问题?
答案 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());
}