使用PHP检索AWS ElasticSearch Service的数据
当ES数据以GET方式完全打开时,获取方法如下。
如果您希望将IAM角色的ARN写入ES策略,请参考此处=> 使用IAM角色,在Laravel中获取AWS ElasticSearch服务的数据。
云端(AWS)配置
以下是 Amazon Elasticsearch Service 的策略示例:
只允许外部进行GET操作。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:ESHttpGet",
"Resource": "arn:aws:es:ap-northeast-1:000000000000:domain/xxx/*"
}
]
}
在Composer上安装ClientBuilder。
需要在composer.json中添加ClientBuilder。
"require": {
"elasticsearch/elasticsearch": "~6.0"
}
更新composer
一切就绪,只差最后一步了。
从PHP端读取
use Elasticsearch\ClientBuilder;
$hosts = [
'https://xxx.ap-northeast-1.es.amazonaws.com:443'
];
$client = ClientBuilder::create()->setHosts($hosts)->build();
$params = [
'index' => '*'
];
$response = $client->search($params);
我认为$response会返回数据。
这里有更详细的参数写法:https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_search_operations.html