我正在努力让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%'
我认为这与此有关,我想如果它没有被授权,虽然我会收到错误。虽然它目前正在工作,但我更愿意使用亚马逊服务,因此我需要安装一段时间才能引起注意!
答案 0 :(得分:0)
我的问题是空的aws_access_key_id
和aws_secret_access_key
值。
请检查一下。
答案 1 :(得分:0)
我有同样的问题,但是没有使用access_key。
解决方案是将值https
fos_elastica:
clients:
default:
host: vpc-xxxxxxxxxxxxxxxxxxxxxxxxx.es.amazonaws.com
port: 443
transport: https