我正在尝试让 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_id
和aws_secret_access_key
值。 请检查一下。