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

使用启动模板的ASG创建/更新策略下CloudFormation信号机制是否故障?

1. 检查ASG实例是否被自动替换

首先登录AWS控制台进入对应ASG的「实例」标签页,确认你发送信号的实例ID是否仍然处于InService生命周期状态:

  • 如果实例状态为Terminating/Terminated,说明ASG的健康检查未通过,实例被自动替换,你发送的是已废弃实例的信号,CloudFormation仍在等待新启动实例的信号,自然不会流转状态。
  • 若ASG配置的是ELB健康检查,需要确认实例所在的目标组健康检查规则配置正确,且实例安全组已放行健康检查端口的入站流量。

2. 确认信号的匹配对象正确

你手动执行cfn-signal返回的错误信息中提到的<INSTANCE_ID>,需要和ASG中当前运行的实例ID完全一致:

  • 若二者不匹配,说明你执行的cfn-signal命令默认读取的实例ID有误,可手动指定ID参数:cfn-signal --id <当前实例ID> --resource <ASG逻辑ID> --stack <栈名> --region <区域>

3. 修正CreationPolicy的语法问题

你提供的CreationPolicy配置中MinSuccessfulInstancesPercent属性末尾多了一个多余的逗号,JSON格式下多余的后置逗号可能导致CloudFormation解析策略异常,建议删除后重新测试:

"CreationPolicy" : {
  "AutoScalingCreationPolicy" : {
    "MinSuccessfulInstancesPercent" : 100
  },
  "ResourceSignal" : {    
    "Count" : 1,
    "Timeout" : "PT10M"
  }
}

4. 检查嵌套栈场景的栈名配置

如果你使用的是嵌套栈,需要确认cfn-signal命令中传入的--stack参数是嵌套栈的名称,而非父栈名称,否则信号会发送到父栈的资源上下文,无法被嵌套栈的ASG资源识别。

5. 确认CloudFormation已收到有效信号

在CloudTrail控制台搜索SignalResource事件,核对事件的请求参数:

  • RequestParameters.uniqueId为当前运行的实例ID
  • RequestParameters.resourceName为ASG的逻辑ID
  • RequestParameters.status为SUCCESS
    如果存在符合条件的事件,但CloudFormation栈事件中无「收到SUCCESS信号」的对应记录,可提交AWS支持工单排查后台状态流转异常问题。

内容的提问来源于stack exchange,提问作者bomb-omb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:45:04