【问题标题】:Cloudformation failed to launchCloudformation 启动失败
【发布时间】:2026-01-30 04:35:01
【问题描述】:

当我尝试启动 cloudformation 时,我不断收到此错误(附图片)

"ECSAutoScalingGroup": {
        "CreationPolicy": {
          "ResourceSignal": {
            "Timeout": "PT15M"
          }
        },
        "UpdatePolicy": {
          "AutoScalingRollingUpdate": {
            "MaxBatchSize": "1",
            "MinInstancesInService": {
              "Ref": "DesiredCapacity"
            },
            "PauseTime": "PT15M",
            "WaitOnResourceSignals": "true"
          }
        },
        "Properties": {
          "VPCZoneIdentifier": {
            "Ref": "SubnetID"
          },
          "LaunchConfigurationName": {
            "Ref": "ContainerInstances"
          },
          "MinSize": {
            "Ref": "MinSize"
          },
          "MaxSize": {
            "Ref": "MaxSize"
          },
          "DesiredCapacity": {
            "Ref": "DesiredCapacity"
          },
          "Tags": [
            {
              "Key": "Name",
              "Value": {
                "Ref": "Cluster365"
              },
              "PropagateAtLaunch": "true"
            }
          ]
        },
        "Type": "AWS::AutoScaling::AutoScalingGroup"
      }

忽略以下:enter image description here AWS 文档:Amazon EC2 Auto Scaling 可帮助您保持应用程序可用性,并允许您根据定义的条件自动动态扩展或缩减 Amazon EC2 容量。您可以使用 Amazon EC2 Auto Scaling 对 EC2 实例进行队列管理,以帮助维护队列的运行状况和可用性,并确保您运行所需数量的 Amazon EC2 实例

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    您新启动的实例需要向 CloudFormation 发出信号,表明它已成功开始使用 AWS cli 命令:

    aws cloudformation signal-resource --stack-name <stack_name> --status SUCCESS --logical-resource-id ECSAutoScalingGroup --unique-id <current_instance_id> --region <the-region-ex-us-east-1>
    

    实现此目的的一个好方法是将其作为 Cloud-init 脚本的一部分。

    【讨论】:

    • 它可以工作,但很奇怪,我将它包含在 cloud-init 中,就像这样 "/opt/aws/bin/cfn-signal -e $? ", " --stack ", { "Ref ": "AWS::StackName" }, " --resource ECSAutoScalingGroup ", " --region ", { "Ref": "AWS::Region" },
    • 我建议您将PauseTime 增加到更舒适的值,以便在实例上进行调试和SSH。然后手动运行命令,看看是否有错误。例如,可能附加到主机的实例角色不允许cloudformation:SignalResource 操作。
    【解决方案2】:

    发现问题出在我在 LaunchConfig 中的用户数据上。我正在尝试配置一个未安装的服务,因此元数据在中间以“exitcode 1”终止,这意味着它没有执行下一步(将 SUCCESS 信号发送到 Autoscaling)

    注意:我建议首先使用元数据部分中配置下的文件和服务部分。

    【讨论】:

      最近更新 更多