Class: Aws::AutoScaling::LifecycleHook
- Inherits:
-
Object
- Object
- Aws::AutoScaling::LifecycleHook
- Extended by:
- Deprecations
- Defined in:
- sig/lifecycle_hook.rbs,
lib/aws-sdk-autoscaling/lifecycle_hook.rb
Overview
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#default_result ⇒ String
The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs.
-
#global_timeout ⇒ Integer
The maximum time, in seconds, that an instance can remain in a wait state.
- #group_name ⇒ String (also: #auto_scaling_group_name)
-
#heartbeat_timeout ⇒ Integer
The maximum time, in seconds, that can elapse before the lifecycle hook times out.
-
#lifecycle_transition ⇒ String
The lifecycle transition.
- #name ⇒ String (also: #lifecycle_hook_name)
-
#notification_metadata ⇒ String
Additional information that is included any time Amazon EC2 Auto Scaling sends a message to the notification target.
-
#notification_target_arn ⇒ String
The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook.
-
#role_arn ⇒ String
The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target (an Amazon SNS topic or an Amazon SQS queue).
Actions collapse
- #complete(options = {}) ⇒ Types::CompleteLifecycleActionAnswer
- #delete(options = {}) ⇒ Types::DeleteLifecycleHookAnswer
- #put(options = {}) ⇒ Types::PutLifecycleHookAnswer
- #record_heartbeat(options = {}) ⇒ Types::RecordLifecycleActionHeartbeatAnswer
Associations collapse
- #group ⇒ AutoScalingGroup
- #identifiers ⇒ Object deprecated private Deprecated.
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::LifecycleHook
Returns the data for this LifecycleHook.
-
#data_loaded? ⇒ Boolean
Returns
trueif this resource is loaded. -
#initialize(*args) ⇒ LifecycleHook
constructor
A new instance of LifecycleHook.
-
#load ⇒ self
(also: #reload)
Loads, or reloads #data for the current LifecycleHook.
-
#wait_until(options = {}) {|resource| ... } ⇒ Resource
deprecated
Deprecated.
Use [Aws::AutoScaling::Client] #wait_until instead
Constructor Details
#initialize(group_name, name, options = {}) ⇒ LifecycleHook #initialize(options = {}) ⇒ LifecycleHook
Returns a new instance of LifecycleHook.
13 14 15 |
# File 'sig/lifecycle_hook.rbs', line 13
def initialize: (String group_name, String name, Hash[Symbol, untyped] options) -> void
| (group_name: String, name: String, ?client: Client) -> void
| (Hash[Symbol, untyped] args) -> void
|
Instance Method Details
#client ⇒ Client
107 |
# File 'lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 107
def client: () -> Client
|
#complete(options = {}) ⇒ Types::CompleteLifecycleActionAnswer
60 |
# File 'sig/lifecycle_hook.rbs', line 60
def complete: (
|
#data ⇒ Types::LifecycleHook
Returns the data for this Aws::AutoScaling::LifecycleHook. Calls
Client#describe_lifecycle_hooks if #data_loaded? is false.
53 |
# File 'sig/lifecycle_hook.rbs', line 53
def data: () -> Types::LifecycleHook
|
#data_loaded? ⇒ Boolean
56 |
# File 'sig/lifecycle_hook.rbs', line 56
def data_loaded?: () -> bool
|
#default_result ⇒ String
The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs.
Valid values: CONTINUE | ABANDON
44 |
# File 'sig/lifecycle_hook.rbs', line 44
def default_result: () -> ::String
|
#delete(options = {}) ⇒ Types::DeleteLifecycleHookAnswer
68 |
# File 'sig/lifecycle_hook.rbs', line 68
def delete: (
|
#global_timeout ⇒ Integer
The maximum time, in seconds, that an instance can remain in a wait
state. The maximum is 172800 seconds (48 hours) or 100 times
HeartbeatTimeout, whichever is smaller.
41 |
# File 'sig/lifecycle_hook.rbs', line 41
def global_timeout: () -> ::Integer
|
#group ⇒ AutoScalingGroup
91 |
# File 'sig/lifecycle_hook.rbs', line 91
def group: () -> AutoScalingGroup
|
#group_name ⇒ String Also known as: auto_scaling_group_name
18 |
# File 'sig/lifecycle_hook.rbs', line 18
def group_name: () -> String
|
#heartbeat_timeout ⇒ Integer
The maximum time, in seconds, that can elapse before the lifecycle
hook times out. If the lifecycle hook times out, Amazon EC2 Auto
Scaling performs the action that you specified in the DefaultResult
property.
38 |
# File 'sig/lifecycle_hook.rbs', line 38
def heartbeat_timeout: () -> ::Integer
|
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
399 400 401 402 403 404 |
# File 'lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 399 def identifiers { group_name: @group_name, name: @name } end |
#lifecycle_transition ⇒ String
The lifecycle transition.
Valid values: autoscaling:EC2_INSTANCE_LAUNCHING |
autoscaling:EC2_INSTANCE_TERMINATING
26 |
# File 'sig/lifecycle_hook.rbs', line 26
def lifecycle_transition: () -> ::String
|
#load ⇒ self 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
49 |
# File 'sig/lifecycle_hook.rbs', line 49
def load: () -> self
|
#name ⇒ String Also known as: lifecycle_hook_name
22 |
# File 'sig/lifecycle_hook.rbs', line 22
def name: () -> String
|
#notification_metadata ⇒ String
Additional information that is included any time Amazon EC2 Auto Scaling sends a message to the notification target.
35 |
# File 'sig/lifecycle_hook.rbs', line 35
def notification_metadata: () -> ::String
|
#notification_target_arn ⇒ String
The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook.
29 |
# File 'sig/lifecycle_hook.rbs', line 29
def notification_target_arn: () -> ::String
|
#put(options = {}) ⇒ Types::PutLifecycleHookAnswer
73 |
# File 'sig/lifecycle_hook.rbs', line 73
def put: (
|
#record_heartbeat(options = {}) ⇒ Types::RecordLifecycleActionHeartbeatAnswer
84 |
# File 'sig/lifecycle_hook.rbs', line 84
def record_heartbeat: (
|
#role_arn ⇒ String
The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target (an Amazon SNS topic or an Amazon SQS queue).
32 |
# File 'sig/lifecycle_hook.rbs', line 32
def role_arn: () -> ::String
|
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::AutoScaling::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged.
Waiter polls an API operation until a resource enters a desired state.
Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
Example
instance.wait_until(max_attempts:10, delay:5) do |instance|
instance.state.name == 'running'
end
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success or :failure from these callbacks,
it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
# disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
# File 'lib/aws-sdk-autoscaling/lifecycle_hook.rb', line 224 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do Aws::Waiters::Waiter.new().wait({}) end end |