导致AWS CDK错误的原因,您必须指定ResourceSignal才能使用AutoScalingCreationPolicy`

问题描述 投票:0回答:1

cdk deploy收到错误消息:You must specify a ResourceSignal to use AutoScalingCreationPolicy

这是一个EC2群集,具有自己的Auto Scaling组定义和用户数据。

this.ec2Cluster = new Cluster(this, 'Cluster', {
  clusterName: 'Cluster',
  vpc: props.vpc,
  containerInsights: true,
})
this.asg = new AutoScalingGroup(this, 'ClusterASG', {
  spotPrice: props.spotPrice || '0.0584',
  instanceType: InstanceType.of(InstanceClass.T2, InstanceSize.MEDIUM),
  notificationsTopic: this.fleetChangeTopic,
  vpc: props.vpc,
  vpcSubnets: {
    subnets: props.vpc.publicSubnets,
    onePerAz: false,
  },
  machineImage: EcsOptimizedImage.amazonLinux(),
  minCapacity: 1,
  maxCapacity: 4,
  desiredCapacity: 1,
  keyName: sshKeyName,
  allowAllOutbound: true,
  updateType: UpdateType.REPLACING_UPDATE,
  replacingUpdateMinSuccessfulInstancesPercent: 100,
  associatePublicIpAddress: true,
})
this.asg.addUserData(
  `echo ECS_CLUSTER=${this.ec2Cluster.clusterName} >> /etc/ecs/ecs.config`,
  `echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config`,
  `yum install -y aws-cfn-bootstrap`,
  `/opt/aws/bin/cfn-signal -e $? --stack ${props.stackName} --resource ECSAutoScalingGroup --region ${props.env?.region}`,
)
this.ec2Cluster.addAutoScalingGroup(this.asg, { spotInstanceDraining: true })

此错误消息是如此无关紧要,我无法从文档或AWS CDK源代码中找到任何信息。

我的配置出了什么问题?甚至只是此错误消息试图说什么?

amazon-web-services amazon-ec2 amazon-cloudformation aws-cdk aws-auto-scaling
1个回答
0
投票

我认为您缺少CreationPolicy

您正在使用cfn-signal,它向失败的“信号”成功向CloudFormation创建资源。作为创建策略的一部分,您指定CfnResourceSignal

关于创建策略的更多信息是here

© www.soinside.com 2019 - 2024. All rights reserved.