Sha256: 6e0032e37a4d3bbe9e02d551bd3c75884a3593886088d0ad87981c8039977028
Contents?: true
Size: 1.84 KB
Versions: 12
Compression:
Stored size: 1.84 KB
Contents
require 'aws-sdk-ec2' module CfnGuardian module Resource class Ec2Instance < Base def default_alarms alarm = CfnGuardian::Models::Ec2InstanceAlarm.new(@resource) alarm.name = 'CPUUtilizationHigh' alarm.metric_name = 'CPUUtilization' alarm.statistic = 'Minimum' alarm.threshold = 90 alarm.evaluation_periods = 10 @alarms.push(alarm) alarm = CfnGuardian::Models::Ec2InstanceAlarm.new(@resource) alarm.name = 'StatusCheckFailed' alarm.metric_name = 'StatusCheckFailed' alarm.threshold = 0 alarm.evaluation_periods = 1 alarm.comparison_operator = 'GreaterThanThreshold' @alarms.push(alarm) alarm = CfnGuardian::Models::Ec2InstanceAlarm.new(@resource) alarm.name = 'CPUCreditBalanceLow' alarm.metric_name = 'CPUCreditBalance' alarm.comparison_operator = 'LessThanThreshold' alarm.statistic = 'Minimum' alarm.threshold = 100 alarm.evaluation_periods = 5 alarm.treat_missing_data = 'notBreaching' alarm.datapoints_to_alarm = 5 @alarms.push(alarm) end def default_event_subscriptions() event_subscription = CfnGuardian::Models::Ec2InstanceEventSubscription.new(@resource) event_subscription.name = 'InstanceTerminated' event_subscription.detail_type = 'EC2 Instance State-change Notification' event_subscription.detail = { 'instance-id' => [@resource['Id']], 'state' => ['terminated'] } @event_subscriptions.push(event_subscription) end def resource_exists? client = Aws::EC2::Client.new resource = Aws::EC2::Resource.new(client: client) instance = resource.instance(@resource['Id']) return instance.exists? end end end end
Version data entries
12 entries across 12 versions & 1 rubygems