FOSElasticaBundle未在AWS ElasticSearch

时间:2018-05-31 13:44:41

标签: symfony elasticsearch foselasticabundle aws-elasticsearch

我正在努力让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却引发了一个问题。

我在AWS中使用他们的VPN选项设置了一个ElasticSearch服务(v6.2),我能够连接到它(我知道它确实连接,因为我有连接错误,直到我在配置中使用它:

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

但是一旦完成,我的亚马逊控制台会显示0个可搜索的文档,如果运行查询,我什么也得不回来。

有没有人遇到这个问题,任何想法如何解决它,即使能够从populate获得更多反馈也能帮助我解决它出错的地方。

编辑17:29 31/5

因此,我在标准EC2实例上的docker容器中创建了一个Elasticsearch安装,并指出它并且它的索引完美,因此它与AWS的连接有关。它们之间的区别之一是Docker安装不必使用:

transport: 'AwsAuthV4'
aws_access_key_id: '%amazon.s3.key%'
aws_secret_access_key: '%amazon.s3.secret%'
aws_region: '%amazon.s3.region%'

我认为这与此有关,我想如果它没有被授权,虽然我会收到错误。虽然它目前正在工作,但我更愿意使用亚马逊服务,因此我需要安装一段时间才能引起注意!

2 个答案:

答案 0 :(得分:0)

我的问题是空的aws_access_key_idaws_secret_access_key值。 请检查一下。

答案 1 :(得分:0)

我有同样的问题,但是没有使用access_key。 解决方案是将值https

添加到客户端配置密钥传输中
fos_elastica:
clients:
    default:
         host: vpc-xxxxxxxxxxxxxxxxxxxxxxxxx.es.amazonaws.com 
         port: 443
         transport: https