AWS OpenSearch Serverless执行PUT请求返回404问题咨询
解决OpenSearch写入文档404错误的几个排查方向
1. 先确认索引名称完全一致
创建索引用的是analytics-index,写入时别写错了——OpenSearch索引名是大小写敏感的,多打个空格、大小写错了都会直接404。先核对两遍拼写。
2. 验证索引是否真的就绪
执行GET _cat/indices?v命令,看看输出里有没有analytics-index这条,而且status列得是open状态。有时候创建请求返回成功,但集群同步慢,索引还没完全建好,这时候写入就会失败。
3. 检查写入请求的格式
别小看格式问题,Dev Tools对JSON格式要求很严,缺个逗号、引号不配对,都可能被误报成“请求到不了服务器”。正确的写入请求示例:
PUT analytics-index/_doc/1 { "timestamp": "2024-05-20T10:00:00", "metric": "cpu_usage", "value": 75.2 }
把你的时序数据套进去,仔细检查JSON语法。
4. 核对AWS权限
如果用的是AWS OpenSearch Service,创建索引只需要es:CreateIndex权限,但写入文档得有es:PutDocument权限。去IAM控制台看看你用的角色/用户有没有这个权限,权限策略里有没有覆盖到analytics-index这个索引。
5. 排查集群状态和网络
- 执行
GET _cluster/health看看集群状态,如果是yellow或red,说明分片没分配或者节点挂了,这种情况下部分操作会失败。 - 如果是VPC里的集群,确认你用Dev Tools的环境(本地/EC2)能不能通集群的网络——安全组有没有开9200/443端口,是不是在同一个VPC,或者有没有配置正确的VPC端点。
6. 换POST请求试试
指定ID的PUT可能因为路由问题失败,试试用POST analytics-index/_doc自动生成ID写入,如果能成功,说明问题出在ID指定的环节,再针对性排查。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

