OpenSearch 1.3升级至2.3后CloudFormation域名更新失败求助
解决方案:OpenSearch升级后CloudFormation堆栈阻塞问题
报错原因分析
报错DP Nodes are OOS, Tags operation is not allowed的核心是数据处理(DP)节点处于不可用(OOS)状态,此时CloudFormation尝试同步模板中的标签配置被拒绝,导致堆栈更新失败并进入回滚阻塞状态。
分步解决步骤
1. 确认DP节点状态
- 登录AWS OpenSearch控制台,进入目标集群的「节点」页面,检查DP节点的运行状态,确认是否存在未就绪、故障或资源耗尽的节点。
- 用OpenSearch API查询节点详情:
查看输出中的curl -X GET "<your-opensearch-endpoint>/_cat/nodes?v" -u <username>:<password>status列,确保所有DP节点状态为green,且角色标识包含dp。
2. 修复DP节点的OOS状态
- 资源耗尽场景:查看CloudWatch中该集群的
CPUUtilization、JVMMemoryPressure指标,若指标过高,直接通过控制台或CDK扩容DP节点实例规格或数量,等待节点重启并恢复健康。 - 初始化/分片迁移场景:升级后DP节点可能在执行分片迁移或数据加载,等待30-60分钟,查看节点状态是否自动恢复。
- 节点故障场景:如果节点长时间未恢复,在控制台手动移除故障节点,让OpenSearch自动重建新的DP节点。
3. 解除CloudFormation堆栈阻塞
- 当DP节点恢复正常后,进入CloudFormation控制台,找到目标堆栈,选择「继续回滚」操作,确保回滚配置包含Domain资源,让堆栈完成回滚流程。
- 若回滚仍失败,手动同步Domain标签与CloudFormation模板定义:
- 查询当前Domain标签:
aws opensearch list-tags --domain-name <your-domain-name> - 对比CDK模板中的标签配置,用CLI同步标签:
aws opensearch add-tags --domain-name <your-domain-name> --tags Key1=Value1,Key2=Value2 - 再次触发堆栈回滚或更新操作。
- 查询当前Domain标签:
4. 避免后续重复问题
- 升级OpenSearch版本前,先确认集群所有节点(含DP节点)处于
ACTIVE健康状态,无OOS节点。 - 修改CDK代码,拆分升级流程:先仅升级版本,待集群状态稳定后,再执行标签或其他配置变更。
- 添加集群健康等待逻辑:在CDK中使用
CfnWaitCondition或自定义资源,等待OpenSearch集群状态为ACTIVE且所有节点就绪后,再执行后续资源更新。
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

