Я пытаюсь в течение нескольких дней настроить «Hello Word» с моей пробной учетной записью в Elastic Cloud с помощью Google Cloud Platform.
Я настроил облачные серверы и могу подключить их напрямую с помощью браузера на конечной точке: https://7fea4de80333428485717a0da463ce05.us-central1.gcp.cloud.es.io:9243/
При попытке подключиться к нему с помощью ElasticSearch PHP API я получаю следующую ошибку:
Неустранимая ошибка: Uncaught Elasticsearch \ Common \ Exceptions \ NoNodesAvailableException: в вашем кластере не найдено живых узлов в /home/mysite/public_html/mysite.com/vendor/elasticsearch/elasticsearch/src/Elasticsearch/ConnectionPool/StaticNoPing
Я использую хостинг HostGator с бесплатным SSL-сертификатом для запуска сценария php.
Вот код:
<?php
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$hosts = ["https://elastic:mypassword@7fea4de80333428485717a0da463ce05.us-central1.gcp.cloud.es.io:9243/"];
$client = ClientBuilder::create()
->setHosts($hosts)
->build();
$params = [
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id',
'body' => ['testField' => 'abc']
];
$response = $client->index($params);
echo $response;
?>
Я также попытался установить ElasticSearch на localhost. Тот же код работает на локальном хосте, если я использую http вместо https, но Elastic Cloud в GCP не поддерживает http (насколько я знаю).
У кого-нибудь есть ЛЮБОЕ представление о том, как сделать эту простую работу? Я попробовал несколько вещей, таких как использование CaBundle, как указано в документах ElasticSearch, но безуспешно.
Задача ещё не решена.
Других решений пока нет …