本地堆栈:用于 ES rest API 的端口



我正在使用docker来运行Localstack和Image0.11.1。 我打开了es服务并暴露了端口4566- 根据文档 (https://github.com/localstack/localstack(:

从版本 0.11.0 开始,所有 API 都通过单个边缘服务公开,默认情况下可在 http://localhost:4566 上访问

该服务

我可以成功地使用 AWS CLI 列出域名并创建域名:

aws --endpoint-url=http://localhost:4566 es list-domain-names
aws --endpoint-url=http://localhost:4566 es create-elasticsearch-domain --domain-name my-domain --elasticsearch-version 7.4

但是当我尝试索引文档时

curl -XPUT http://localhost:4566/my-domain/_doc/1 -d '{"hello": "World"}' -H 'Content-Type: application/json'

它向我返回了{"status": "running"}回复,我在日志中看到该消息:

INFO:localstack.services.edge:找不到主机"localhost:4566"、路径"/my-domain/_doc/1"、目标标头"、身份验证标头"的转发规则

然后,我通过在docker-compose.yml中配置端口4571添加到暴露的端口中,并尝试了相同的方法,但这次使用 http://localhost:4571/my-domain/_doc/1 url来索引文档。

curl -XPUT http://localhost:4571/my-domain/_doc/1 -d '{"hello": "World"}' -H 'Content-Type: application/json'

成功了。

我不明白 - 根据文档,我应该只使用端口4566但它不起作用。 我错过了什么吗?


我的 docker-compose.yml 暴露了两个端口:

...
localstack:
container_name: "localstack"
image: localstack/localstack:0.11.1
privileged: true
ports:
- "4566:4566"
- "4571:4571"
environment:
- SERVICES=es
- START_WEB=0
- LAMBDA_REMOTE_DOCKER=0
- DATA_DIR=/tmp/localstack/data
...

从这里,您可以看到下表:

>参数 说明 默认
service.edgePort 本地堆栈边缘服务4566的端口号
service.esPort 本地堆栈弹性搜索服务4571的端口号

最新更新