FOSElasticaBundle 未在 AWS ElasticSearch 中填充可搜索文档



我正在尝试让 FOSElasticaBundle 在 AWS ElasticSearch 上运行。目前,我已经设置了我的开发环境,并使用Docker容器进行ElasticSearch完美运行

FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.4

如果我使用以下方法填充我的弹性搜索:

docker-compose exec php php /var/www/symfony/bin/console fos:elastica:populate --env=prod

这一切都运行良好,索引中包含可搜索的项目。

但是,将其移至AWS会带来一个问题。

我已经使用他们的 VPN 选项在 AWS 中设置了一个 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 个可搜索文档,如果运行查询,我什么也得不到。

有没有人遇到过这个问题以及如何解决它,即使能够从 popalate 获得更多反馈也会帮助我找出哪里出了问题。

编辑 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%'

我想这与这个有关,我会认为如果它没有被授权,尽管我会收到一个错误。虽然它目前可以工作,但我更愿意使用亚马逊服务,这样我的生活就需要安装才能关注!

我有同样的问题,但没有使用access_key。 解决方案是将值https添加到客户端配置密钥传输

fos_elastica:
clients:
default:
host: vpc-xxxxxxxxxxxxxxxxxxxxxxxxx.es.amazonaws.com 
port: 443
transport: https

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

最新更新