我正在使用 docker 运行 Localstack 和 image 0.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
Run Code Online (Sandbox Code Playgroud)
但是当我尝试索引文档时
curl -XPUT http://localhost:4566/my-domain/_doc/1 -d '{"hello": "World"}' -H 'Content-Type: application/json'
Run Code Online (Sandbox Code Playgroud)
它回复{"status": "running"}了我,我在日志中看到了消息:
信息:localstack.services.edge:无法找到主机“localhost:4566”的转发规则,路径“/my-domain/_doc/1”,目标标头“”,身份验证标头“”
然后我4571通过在 docker-compose.yml 中配置它来将端口添加到暴露的端口并尝试相同,但这次使用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'
Run Code Online (Sandbox Code Playgroud)
有效。
我不明白 - 根据文档,我应该只使用端口,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
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3307 次 |
| 最近记录: |