我试图为DEV环境创建一个非常简单的基础设施。所受的限制是:
这是预期的架构:

我得到了一个很好的cloudformation模板,但是失败了。错误消息:
Received 1 FAILURE signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement这似乎是由依赖循环造成的:

..。或者,用言语来说:
目标组的健康检查失败了..。因为nginx码头集装箱不存在..。因为CodeDeploy没有部署码头容器.因为云层形成认为,助理秘书长还没有准备好.因为目标组的健康检查失败。
问题:是否可以通过禁用目标组的健康检查来中断循环?(我在aws中没有找到这样的选择)。还有其他选择可以帮助吗?
发布于 2019-01-25 00:33:30
在ASG模板中,可以将HealthCheck属性设置为EC2。这样,它就不会依赖于ELB检查,并且一旦完成UserData脚本,它就会将实例标记为健康。
TestAutoScalingGroup:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
[...]
HealthCheckType: EC2然后,在LaunchConfiguration.UserData中,一旦UserData脚本完成,您需要发送一个信号:
TestLaunchConfig:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
[...]
UserData:
Fn::Base64:
!Sub |
#!/bin/bash -x
[... some setup ...]
# Signal the status from this instance
/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} \
--resource TestAutoScalingGroup --region ${AWS::Region}注意,--resource参数必须与TestAutoScalingGroup资源名称匹配。
希望有帮助:)
https://serverfault.com/questions/950663
复制相似问题