You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::AutoScaling::LifecycleHook

Inherits:
Object
  • Object
show all
Defined in:
gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb

Defined Under Namespace

Classes: Collection

Actions collapse

Associations collapse

Read-Only Attributes collapse

Instance Method Summary collapse

Constructor Details

#initialize(group_name, name, options = {}) ⇒ LifecycleHook #initialize(options = {}) ⇒ LifecycleHook

Returns a new instance of LifecycleHook

Overloads:

  • #initialize(group_name, name, options = {}) ⇒ LifecycleHook

    Parameters:

    • group_name (String)
    • name (String)

    Options Hash (options):

  • #initialize(options = {}) ⇒ LifecycleHook

    Options Hash (options):

    • :group_name (required, String)
    • :name (required, String)
    • :client (Client)


21
22
23
24
25
26
27
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 21

def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @group_name = extract_group_name(args, options)
  @name = extract_name(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
end

Instance Method Details

#clientClient

Returns:



119
120
121
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 119

def client
  @client
end

#complete(options = {}) ⇒ Types::CompleteLifecycleActionAnswer

Examples:

Request syntax with placeholder values


lifecycle_hook.complete({
  lifecycle_action_token: "LifecycleActionToken",
  lifecycle_action_result: "LifecycleActionResult", # required
  instance_id: "XmlStringMaxLen19",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :lifecycle_action_token (String)

    A universally unique identifier (UUID) that identifies a specific lifecycle action associated with an instance. Auto Scaling sends this token to the notification target you specified when you created the lifecycle hook.

  • :lifecycle_action_result (required, String)

    The action for the group to take. This parameter can be either CONTINUE or ABANDON.

  • :instance_id (String)

    The ID of the instance.

Returns:



175
176
177
178
179
180
181
182
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 175

def complete(options = {})
  options = options.merge(
    auto_scaling_group_name: @group_name,
    lifecycle_hook_name: @name
  )
  resp = @client.complete_lifecycle_action(options)
  resp.data
end

#dataTypes::LifecycleHook

Returns the data for this Aws::AutoScaling::LifecycleHook. Calls Client#describe_lifecycle_hooks if #data_loaded? is false.

Returns:



142
143
144
145
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 142

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.

Returns:

  • (Boolean)

    Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.



150
151
152
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 150

def data_loaded?
  !!@data
end

#default_resultString

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. The default value is CONTINUE.

Returns:

  • (String)


112
113
114
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 112

def default_result
  data.default_result
end

#delete(options = {}) ⇒ Types::DeleteLifecycleHookAnswer

Examples:

Request syntax with placeholder values


lifecycle_hook.delete()

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Returns:



189
190
191
192
193
194
195
196
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 189

def delete(options = {})
  options = options.merge(
    auto_scaling_group_name: @group_name,
    lifecycle_hook_name: @name
  )
  resp = @client.delete_lifecycle_hook(options)
  resp.data
end

#global_timeoutInteger

The maximum time, in seconds, that an instance can remain in a Pending:Wait or Terminating:Wait state. The maximum is 172800 seconds (48 hours) or 100 times HeartbeatTimeout, whichever is smaller.

Returns:

  • (Integer)


103
104
105
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 103

def global_timeout
  data.global_timeout
end

#groupAutoScalingGroup

Returns:



284
285
286
287
288
289
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 284

def group
  AutoScalingGroup.new(
    name: @group_name,
    client: @client
  )
end

#group_nameString Also known as: auto_scaling_group_name

Returns:

  • (String)


32
33
34
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 32

def group_name
  @group_name
end

#heartbeat_timeoutInteger

The maximum time, in seconds, that can elapse before the lifecycle hook times out. The default is 3600 seconds (1 hour). When the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

Returns:

  • (Integer)


94
95
96
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 94

def heartbeat_timeout
  data.heartbeat_timeout
end

#lifecycle_transitionString

The state of the EC2 instance to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

Returns:

  • (String)


47
48
49
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 47

def lifecycle_transition
  data.lifecycle_transition
end

#loadself Also known as: reload

Loads, or reloads #data for the current Aws::AutoScaling::LifecycleHook. Returns self making it possible to chain methods.

lifecycle_hook.reload.data

Returns:

  • (self)


129
130
131
132
133
134
135
136
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 129

def load
  resp = @client.describe_lifecycle_hooks(
    auto_scaling_group_name: @group_name,
    lifecycle_hook_names: [@name]
  )
  @data = resp.lifecycle_hooks[0]
  self
end

#nameString Also known as: lifecycle_hook_name

Returns:

  • (String)


38
39
40
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 38

def name
  @name
end

#notification_metadataString

Additional information that you want to include any time Auto Scaling sends a message to the notification target.

Returns:

  • (String)


84
85
86
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 84

def 
  data.
end

#notification_target_arnString

The ARN of the notification target that Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This ARN target can be either an SQS queue or an SNS topic. The notification message sent to the target includes the following:

  • Lifecycle action token

  • User account ID

  • Name of the Auto Scaling group

  • Lifecycle hook name

  • EC2 instance ID

  • Lifecycle transition

  • Notification metadata

Returns:

  • (String)


70
71
72
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 70

def notification_target_arn
  data.notification_target_arn
end

#put(options = {}) ⇒ Types::PutLifecycleHookAnswer

Examples:

Request syntax with placeholder values


lifecycle_hook.put({
  lifecycle_transition: "LifecycleTransition",
  role_arn: "ResourceName",
  notification_target_arn: "NotificationTargetResourceName",
  notification_metadata: "XmlStringMaxLen1023",
  heartbeat_timeout: 1,
  default_result: "LifecycleActionResult",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :lifecycle_transition (String)

    The instance state to which you want to attach the lifecycle hook. For a list of lifecycle hook types, see DescribeLifecycleHookTypes.

    This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

  • :role_arn (String)

    The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

    This parameter is required for new lifecycle hooks, but optional when updating existing hooks.

  • :notification_target_arn (String)

    The ARN of the notification target that Auto Scaling will use to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic. If you specify an empty string, this overrides the current ARN.

    This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key/value pair format when sending notifications to an Amazon SNS topic.

    When you specify a notification target, Auto Scaling sends it a test message. Test messages contains the following additional key/value pair: "Event": "autoscaling:TEST_NOTIFICATION".

  • :notification_metadata (String)

    Contains additional information that you want to include any time Auto Scaling sends a message to the notification target.

  • :heartbeat_timeout (Integer)

    The amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the default action. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. The default is 3600 seconds (1 hour).

  • :default_result (String)

    Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. This parameter can be either CONTINUE or ABANDON. The default value is ABANDON.

Returns:



249
250
251
252
253
254
255
256
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 249

def put(options = {})
  options = options.merge(
    auto_scaling_group_name: @group_name,
    lifecycle_hook_name: @name
  )
  resp = @client.put_lifecycle_hook(options)
  resp.data
end

#record_heartbeat(options = {}) ⇒ Types::RecordLifecycleActionHeartbeatAnswer

Examples:

Request syntax with placeholder values


lifecycle_hook.record_heartbeat({
  lifecycle_action_token: "LifecycleActionToken",
  instance_id: "XmlStringMaxLen19",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :lifecycle_action_token (String)

    A token that uniquely identifies a specific lifecycle action associated with an instance. Auto Scaling sends this token to the notification target you specified when you created the lifecycle hook.

  • :instance_id (String)

    The ID of the instance.

Returns:



272
273
274
275
276
277
278
279
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 272

def record_heartbeat(options = {})
  options = options.merge(
    auto_scaling_group_name: @group_name,
    lifecycle_hook_name: @name
  )
  resp = @client.record_lifecycle_action_heartbeat(options)
  resp.data
end

#role_arnString

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

Returns:

  • (String)


77
78
79
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 77

def role_arn
  data.role_arn
end