要解决AWS目标组在没有数据的情况下变得不健康的问题,可以使用AWS健康检查和自动恢复功能。以下是一个使用AWS CLI命令的示例,用于配置目标组的健康检查和自动恢复功能:
aws elbv2 configure-health-check --region --target-group-arn --health-check-protocol HTTP --health-check-path / --healthy-threshold-count 2 --unhealthy-threshold-count 2 --timeout-seconds 5 --interval-seconds 10
:目标组所在的AWS区域
:目标组的ARN这个命令将配置一个健康检查,使用HTTP协议,路径为"/",当连续两次成功响应后被视为健康状态,当连续两次失败响应后被视为不健康状态,超时时间为5秒,检查间隔为10秒。
aws elbv2 modify-target-group-attributes --region --target-group-arn --attributes Key=deregistration_delay.timeout_seconds,Value=30
这个命令将配置一个自动恢复功能,设置目标组的取消注册延迟为30秒。这样,在目标组的实例被标记为不健康状态后,会等待30秒后再将其取消注册,以便给实例一些时间来恢复。
通过以上配置,当目标组中没有任何健康实例时,健康检查将标记目标组为不健康状态,但由于设置了取消注册延迟,目标组不会立即将实例取消注册。这样,当实例恢复健康后,它会继续接收流量,从而实现自动恢复的功能。
请注意,上述示例中使用的是AWS CLI命令,您需要根据自己的环境和需求进行适当的修改和调整。