使用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

广告
将在 10 秒后关闭
bannerAds