2

我正在尝试让 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 会引发一个问题。

我已经使用他们的 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 个可搜索文档,如果运行查询,我将一无所获。

有没有人遇到过这个问题以及如何解决它,即使能够从 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%'

我想这与此有关,我会想如果它没有被授权,虽然我会得到一个错误。虽然它目前正在运行,但我更喜欢使用亚马逊服务,这样我就需要花很多时间来关注它!

4

2 回答 2

2

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

fos_elastica:
clients:
    default:
         host: vpc-xxxxxxxxxxxxxxxxxxxxxxxxx.es.amazonaws.com 
         port: 443
         transport: https
于 2019-02-19T13:41:33.813 回答
0

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

于 2018-06-18T14:00:24.500 回答