用于更改 Ec2 实例状态的 Cloudformation

Cloudformation to Change Ec2 Instance State

目前我正在设计 Cloudformation 模板以创建 EC2 实例并监控 EC2 实例,使用 cloudwatch 启用详细监控并将实例状态更改为在达到指标后停止,

我能够创建一个能够启用指标的实例,但我无法将实例状态更改为停止。

查看 CloudFormation AWS::EC2::Instance resource 的官方文档,似乎不支持此功能。

您始终可以从源中删除资源,但这当然会终止实例,我认为这不是您要查找的内容。

也许一种解决方法是更改​​ UserData 部分,使其按照 shutdown -h now 的方式运行,同时将 InstanceInitiatedShutdownBehavior 更改为 stop

可能值得一试。

如果要在指定AWS::CloudWatch::Alarm Resouce transitions into ALARM state, you can accomplish this using the special arn:aws:automate:region:ec2:stop ARN in the AlarmActions 属性 报警时将EC2实例状态更改为stop

但请注意,在此之前,您需要使用 Amazon EC2 或 CloudWatch 控制台手动创建至少一个停止、终止或重启警报,以创建 EC2ActionsAccess IAM 角色。创建此 IAM 角色后,您可以直接使用 CloudFormation 资源创建停止、终止或重启警报。有关详细信息,请参阅 PutMetricAlarm documentation