Elastic Beanstalk 自动缩放组生命周期挂钩
Posted
技术标签:
【中文标题】Elastic Beanstalk 自动缩放组生命周期挂钩【英文标题】:Elastic Beanstalk Autoscaling Group Lifecycle Hooks 【发布时间】:2019-12-02 22:57:00 【问题描述】:我想将生命周期挂钩添加到我的 Elastic Beanstalk 的自动缩放组。我了解如何通过 cloudformation 将生命周期挂钩添加到自动缩放组,但我不知道如何通过 Elastic Beanstalk 完成。
要在自动扩缩组上创建生命周期挂钩,您需要自动扩缩组的名称。这似乎是不可能的,因为 Elastic Beanstalk 资源没有 ASG 名称的导出。
Type: AWS::AutoScaling::LifecycleHook
Properties:
AutoScalingGroupName: String
DefaultResult: String
HeartbeatTimeout: Integer
LifecycleHookName: String
LifecycleTransition: String
NotificationMetadata: String
NotificationTargetARN: String
RoleARN: String
Elastic Beanstalk 也不允许定义此配置。它确实允许定义一个 sns 主题,但添加一个似乎不会更改控制台中的配置,并且缩放操作似乎没有使用该主题。
- Namespace: aws:elasticbeanstalk:sns:topics
OptionName: NotificationTopicARN
Value: !ImportValue MyLifecycleHookTopic
如何向我的 Elastic Beanstalk 应用程序添加生命周期挂钩,以便终止环境可以通过我的正常关闭过程?
【问题讨论】:
【参考方案1】:您也许可以使用.ebextensions
文件来进一步修改这些设置。
Resources:
lifecyclehook:
Type: AWS::AutoScaling::LifecycleHook
Properties:
AutoScalingGroupName: "Ref" : "AWSEBAutoScalingGroup"
LifecycleHookName: "autoscaling:EC2_INSTANCE_TERMINATING"
https://github.com/awsdocs/aws-elastic-beanstalk-developer-guide/blob/master/doc_source/environment-resources.md
【讨论】:
以上是关于Elastic Beanstalk 自动缩放组生命周期挂钩的主要内容,如果未能解决你的问题,请参考以下文章
将文件添加到 AWS Elastic Beanstalk 实例
让 Ruby 服务在 Elastic Beanstalk 上运行
即使实例运行状况良好,Elastic Beanstalk 也会报告 5xx 错误
在 Elastic beanstalk 中将 ELB 设置为 Autoscaling Health Check Type