从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源代码中找到任何信息。
我的配置出了什么问题?甚至只是此错误消息试图说什么?
我认为您缺少CreationPolicy。
您正在使用cfn-signal
,它向失败的“信号”成功向CloudFormation创建资源。作为创建策略的一部分,您指定CfnResourceSignal。
关于创建策略的更多信息是here。