AWS elasticsearch


(C) #1

Defined in common/config/main.php:
‘elasticsearch’ => [
‘class’ => ‘yii\elasticsearch\Connection’,
‘‘defaultProtocol’ => ‘https’,
‘nodes’ => [
[
‘http_address’ => ‘xxxx.aws.cloud.es.io:9243’,
‘auth’ = [‘username’ => ‘xxx’, ‘password’ => xxx’],
],
]
],

The elastic search model:
class EsTest extends ActiveRecord {

public static function index() {
    return 'xxxxx'; 
}

public function attributes() {
    return [
        'username',
    ];
}

}

When run with curl via command line with the same credential, i have no problem accessing the elasticsearch table.
However when trying to access as elastic search model, I get 401 unauthorized error. What could be the problem?


(Johnson) #2

Hi CluWong,

It looks like the action in your controller added in the filters!. Check the filters in your controller


(C) #3

I’ve not used any filters yet…

The code in controller is simply:
public function actionTest() {
$model = EsTest::find()->all();
Yii::info($model);
return $this->render(‘test’);
}


(C) #4

Found the fix. In elasticsearch config, add ‘autodetectCluster’ => false.