Я пытаюсь заставить FOSElasticaBundle работать с AWS ElasticSearch. На данный момент моя среда разработки настроена и отлично работает с контейнерами Docker для ElasticSearch, используя
FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4
Если я заполняю свой ElasticSearch, используя:
docker-compose exec php php /var/www/symfony/bin/console fos:elastica:populate --env=prod
все это работает отлично, и в индексе есть элементы, доступные для поиска.
Однако перенос этого на AWS вызывает проблему.
Я настроил сервис ElasticSearch (v6.2) в AWS, используя их вариант VPN, я могу подключиться к нему (я знаю, что он подключается, так как у меня были ошибки подключения, пока я не использовал это в конфигурации:
fos_elastica:
clients:
default:
transport: 'AwsAuthV4'
aws_access_key_id: '%amazon.s3.key%'
aws_secret_access_key: '%amazon.s3.secret%'
aws_region: '%amazon.s3.region%'
Когда я бегу
php bin/console fos:elastica:populate --env=prod похоже заселяет
3200/6865 [=============>--------------] 46% 4 secs/9 secs
Populating ppc/keywords
Refreshing ppc
Но после завершения моя консоль Amazon показывает 0 документов с возможностью поиска, и если запустить запрос, я ничего не получу.
Кто-нибудь сталкивался с этим и какие-либо идеи, как его решить, даже возможность получить больше отзывов от populate поможет мне разобраться, где что-то идет не так.
Изменить 17:29 31/5
Итак, я создал установку Elasticsearch в контейнере докеров на стандартном экземпляре EC2 и указал на нее, и она отлично индексируется, так что это как-то связано с подключением к AWS. Одно из различий между ними заключается в том, что для установки Docker необязательно использовать:
transport: 'AwsAuthV4'
aws_access_key_id: '%amazon.s3.key%'
aws_secret_access_key: '%amazon.s3.secret%'
aws_region: '%amazon.s3.region%'
Я предполагаю, что это как-то связано с этим, я бы подумал, что если бы это не было разрешено, я бы получил сообщение об ошибке. Хотя в настоящее время он работает, я бы предпочел использовать сервис Amazon, чтобы не упустить возможность установить его!




моя проблема заключалась в пустых значениях aws_access_key_id и aws_secret_access_key.
Пожалуйста, проверь это.
У меня такая же проблема, но без использования access_key.
Решение заключалось в добавлении в транспортный ключ конфигурации клиента со значением https.
fos_elastica:
clients:
default:
host: vpc-xxxxxxxxxxxxxxxxxxxxxxxxx.es.amazonaws.com
port: 443
transport: https