You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CDK Java项目构建CFT栈部署后WaitCondition配置失败触发回滚问题

问题根因

你遇到的回滚是MasterNodeWaitCondition收到了EC2实例主动发送的失败信号导致的,所有资源显示CREATE_COMPLETE仅代表AWS侧资源创建完成,不代表EC2实例内部的初始化配置逻辑执行成功。你用到的WaitCondition相关模板如下:

MasterNodeWaitHandle:
    Type: AWS::CloudFormation::WaitConditionHandle
    Metadata:
      aws:cdk:path: CdkStack/MasterNodeWaitHandle
MasterNodeWaitCondition:
    Type: AWS::CloudFormation::WaitCondition
    Properties:
      Handle:
        Ref: MasterNodeWaitHandle
      Timeout: "18000"
    DependsOn:
             - renderingserver1
    Metadata:
      aws:cdk:path: CdkStack/MasterNodeWaitCondition

这个WaitCondition依赖的renderingserver1就是报错信息里ID为i-07f7991f7bf96d427的EC2实例,实例内部配置脚本执行失败后调用cfn-signal发送了失败通知,触发了栈回滚。

排查解决步骤

  • 复现问题时禁用自动回滚:重新部署栈时添加--disable-rollback参数,配置失败后栈不会直接删除所有资源,保留EC2实例供日志排查
  • 查看EC2实例内部日志:登录实例后查看/var/log/cloud-init.log和/var/log/cloud-init-output.log,搜索错误信息即可定位配置失败的具体原因,常见问题包括依赖安装失败、配置文件格式错误、权限不足、内部服务连接失败等
  • 检查网络与权限配置:确认实例所属安全组放开了CloudFormation服务的出站访问权限,私有子网部署的实例需要配置NAT网关或CloudFormation VPC端点,实例关联的IAM角色需包含cloudformation:SignalResource权限
  • 核对CDK逻辑:检查Java CDK中UserData部分的代码,确认cfn-signal命令的触发逻辑正确,仅在所有配置步骤执行成功后发送成功信号,避免中间步骤出错后仍发送成功信号的逻辑错误

内容的提问来源于stack exchange,提问作者ragu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 01:33:00