AWS Cloudformation无法确认AutoScalingGroup

时间:2017-03-19 23:59:04

标签: amazon-web-services amazon-ec2 autoscaling amazon-cloudformation

使用CloudFormation创建EC2实例以及自动缩放组时,我遇到错误: The following resource(s) failed to create: [WebsInstanceServerGroup].

image of CloudFormation Group output

创建自动缩放组时会出现故障,但是当我检查自动缩放组控制台时,它表示创建“成功”。 (“正在进行中”删除发生在CloudFormation的15分钟超时值之后)。

image of AutoScaling output

CloudFormation无法确认AutoScale组是否已成功创建,可能是什么原因?

错误也说明WebInstanceServerGroup,所以我检查了我的模板,但没有看到任何可疑。

"WebsInstanceServerGroup": {
  "Type": "AWS::AutoScaling::AutoScalingGroup",
  "Properties": {
    "AvailabilityZones": {
      "Fn::GetAZs": "AWS::Region"
    },
    "VPCZoneIdentifier": {
      "Ref": "WebsELBSubnetId"
    },
    "LoadBalancerNames": [
      {
        "Ref": "WebsELB"
      }
    ],
    "LaunchConfigurationName": {
      "Ref": "WebsEC2Instance"
    },
    "Cooldown": 300,
    "HealthCheckGracePeriod": 600,
    "HealthCheckType": "EC2",
    "Tags": [
      {
        "Key": "Name",
        "Value": {
          "Ref": "WebsInstanceName"
        },
        "PropagateAtLaunch": "true"
      },
      {
        "Key": "Service",
        "Value": {
          "Ref": "ServiceTag"
        },
        "PropagateAtLaunch": "true"
      }
    ],
    "MinSize": {
      "Ref": "ASGMin"
    },
    "DesiredCapacity": {
      "Ref": "ASGDesired"
    },
    "MaxSize": {
      "Ref": "ASGMax"
    }
  },
  "CreationPolicy": {
    "ResourceSignal": {
      "Count": {
        "Ref": "ASGMin"
      },
      "Timeout": "PT15M"
    }
  }
}

如果需要更多信息,请告知我们,提前谢谢。

1 个答案:

答案 0 :(得分:1)

您的自动扩展组中的EC2实例看起来没有发送the required success signals

在考虑成功创建ASGMin之前,CloudFormation将等待您发送WebsInstanceServerGroup信号。因此,如果ASGMin设置为3,则每个3 EC2实例都应发送信号。

要发送信号,您可以使用cfn-signal帮助器,或with the AWS CLI:

aws cloudformation signal-resource \ 
  --stack-name {your stack name here} \
  --status SUCCESS \ 
  --logical-resource-id WebsInstanceServerGroup \ 
  --unique-id {the instance ID for the EC2 instance that is sending the signal}

当您认为您的EC2实例已完全配置并准备就绪时,请在User Data脚本末尾使用此命令。