- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设置了一个 CloudFormation 堆栈,它创建一个自动缩放组 (ASG) 以及一些其他不相关的项目。
ASG有更新政策如下:
UpdatePolicy:
AutoScalingReplacingUpdate:
WillReplace: 'false'
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: 'true'
AutoScalingRollingUpdate:
MinInstancesInService: '0'
MinSuccessfulInstancesPercent: '50'
MaxBatchSize: '2'
PauseTime: PT10M
WaitOnResourceSignals: 'true'
作为发布过程的一部分,我们更新了 CloudFormation 中的启动配置。这会触发 ASG 进行更新,这是我们所期望的。
有一个生命周期 Hook ,设置了 600 秒的超时值,以防止 EC2 实例在完成一些检查之前进入服务状态。如果这些检查失败,我会向 ASG 发回错误信号,并向生命周期 Hook 发送 ABANDON。
/opt/aws/bin/cfn-signal -e 1 --stack ${AWS::StackId} --resource MyASG --region ${AWS::Region}
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
ASG_NAME=$(aws ec2 --region ${AWS::Region} describe-tags --filters Name=resource-type,Values=instance Name=resource-id,Values=$(/opt/aws/bin/ec2-metadata -i | cut -d\: -f2 | tr -d '[:space:]') Name=key,Values='aws:autoscaling:groupName' | jq '.Tags[] | .Value' -r)
HOOK_NAME=$(aws autoscaling describe-lifecycle-hooks --auto-scaling-group-name $ASG_NAME --region ${AWS::Region} |jq -r '.LifecycleHooks[0].LifecycleHookName')
aws autoscaling complete-lifecycle-action --lifecycle-hook-name $HOOK_NAME --auto-scaling-group-name $ASG_NAME --lifecycle-action-result $1 --instance-id $INSTANCE_ID --region ${AWS::Region}
此操作的作用是取消并终止 EC2 实例。我遇到的问题是,CloudFormation 堆栈中的 ASG 继续处于 UPDATE_IN_PROGRESS 状态一小时,然后因“组不稳定”错误而失败,并且一切都开始回滚。
由于 PauseTime 设置为“PT10M”,我希望它最多等待 10 分钟,并在发送 cfn-signal 错误信号后立即开始回滚。
我无法确定为什么堆栈要等待一个小时。这里有什么想法吗?
最佳答案
考虑到您的用例,您可以从 ASG 中删除 AutoScalingReplacingUpdate
属性。据我所知, AutoScalingReplacingUpdate 和 AutoScalingRollingUpdate 通常是互斥的。这也许可以解释为什么不考虑 PT10M。
另外,PauseTime是新启动的实例触发SUCCESS
信号的时间上限。我可能会给 ABANDON
生命周期事件的发生留出一些余地,也许一两分钟。
关于amazon-web-services - 为什么在更新期间不使用 AWS Cloudformation UpdatePolicy PauseTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57824145/
在我的项目的 POM 中,我注意到以下配置: nexus http://path/to/nexus never
我知道如何为外部存储库执行此操作,但不知道如何为我的本地存储库执行此操作,因为我的 中没有用于本地存储库的 settings.xml 。 我为我的子项目使用快照版本,所以当我重新构建父项目时,我希望
我正在我的 Android Things 项目中编写更新界面。我可以通过用户输入进行手动更新。但我试图安排每晚午夜自动更新。我想使用带有截止日期的自定义 UpdatePolicy,但我未能使用它。 我
This is just like this other question I asked, but instead of dependencies, this is about modules.让我
我设置了一个 CloudFormation 堆栈,它创建一个自动缩放组 (ASG) 以及一些其他不相关的项目。 ASG有更新政策如下: UpdatePolicy: AutoScal
我正在使用 Gradle 作为我项目的构建工具。除了我的本地开发计算机之外,还有一个 Nexus 存储库管理器缓存来自 Maven Central(和其他)的包以及本地发布和 SNAPSHOT 构建,
我使用 Maven 来处理依赖项,并使用 Nexus 作为存储库管理器。在我的新项目中,我有几个依赖项,Maven 每天都会为其下载 metadata.xml 文件。由于它们是发布版本,我只是不想让m
谁能给我解释一下吗?我会很高兴举一些例子?也许是一个虚拟的例子呵呵。我想通过一个很好的例子来真正了解何时以及为何使用它:) 谢谢:) 最佳答案 AutoScalingScheduledAction当您
我正在尝试使用 EB CLI 创建一个新的 Elastic Beanstalk 环境,但由于选项无效而失败,即使我的配置中未设置该选项也是如此。 我正在运行的命令: $ eb create my-ne
我正在尝试使用 EB CLI 创建一个新的 Elastic Beanstalk 环境,但由于选项无效而失败,即使我的配置中未设置该选项也是如此。 我正在运行的命令: $ eb create my-ne
我是一名优秀的程序员,十分优秀!