@Generated(value="jsii-pacmak/1.60.0 (build ebcefe6)", date="2022-07-01T09:58:40.630Z") public class CfnWarmPool extends CfnResource implements IInspectable
The AWS::AutoScaling::WarmPool
resource creates a pool of pre-initialized EC2 instances that sits alongside the Auto Scaling group. Whenever your application needs to scale out, the Auto Scaling group can draw on the warm pool to meet its new desired capacity.
When you create a warm pool, you can define a minimum size. When your Auto Scaling group scales out and the size of the warm pool shrinks, Amazon EC2 Auto Scaling launches new instances into the warm pool to maintain its minimum size.
For more information, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide .
CloudFormation supports the
UpdatePolicy
attribute for Auto Scaling groups. During an update, ifUpdatePolicy
is set toAutoScalingRollingUpdate
, CloudFormation replacesInService
instances only. Instances in the warm pool are not replaced. The difference in which instances are replaced can potentially result in different instance configurations after the stack update completes. IfUpdatePolicy
is set toAutoScalingReplacingUpdate
, you do not encounter this issue because CloudFormation replaces both the Auto Scaling group and the warm pool.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import software.amazon.awscdk.services.autoscaling.*; CfnWarmPool cfnWarmPool = CfnWarmPool.Builder.create(this, "MyCfnWarmPool") .autoScalingGroupName("autoScalingGroupName") // the properties below are optional .instanceReusePolicy(InstanceReusePolicyProperty.builder() .reuseOnScaleIn(false) .build()) .maxGroupPreparedCapacity(123) .minSize(123) .poolState("poolState") .build();
Modifier and Type | Class and Description |
---|---|
static class |
CfnWarmPool.Builder
A fluent builder for
CfnWarmPool . |
static interface |
CfnWarmPool.InstanceReusePolicyProperty
A structure that specifies an instance reuse policy for the `InstanceReusePolicy` property of the [AWS::AutoScaling::WarmPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html) resource.
|
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy
IConstruct.Jsii$Default
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
|
Modifier | Constructor and Description |
---|---|
|
CfnWarmPool(Construct scope,
java.lang.String id,
CfnWarmPoolProps props)
Create a new `AWS::AutoScaling::WarmPool`.
|
protected |
CfnWarmPool(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
CfnWarmPool(software.amazon.jsii.JsiiObjectRef objRef) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getAutoScalingGroupName()
The name of the Auto Scaling group.
|
protected java.util.Map<java.lang.String,java.lang.Object> |
getCfnProperties() |
java.lang.Object |
getInstanceReusePolicy()
Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
|
java.lang.Number |
getMaxGroupPreparedCapacity()
Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except `Terminated` for the Auto Scaling group.
|
java.lang.Number |
getMinSize()
Specifies the minimum number of instances to maintain in the warm pool.
|
java.lang.String |
getPoolState()
Sets the instance state to transition to after the lifecycle actions are complete.
|
void |
inspect(TreeInspector inspector)
Examines the CloudFormation resource and discloses attributes.
|
protected java.util.Map<java.lang.String,java.lang.Object> |
renderProperties(java.util.Map<java.lang.String,java.lang.Object> props) |
void |
setAutoScalingGroupName(java.lang.String value)
The name of the Auto Scaling group.
|
void |
setInstanceReusePolicy(CfnWarmPool.InstanceReusePolicyProperty value)
Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
|
void |
setInstanceReusePolicy(IResolvable value)
Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
|
void |
setMaxGroupPreparedCapacity(java.lang.Number value)
Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except `Terminated` for the Auto Scaling group.
|
void |
setMinSize(java.lang.Number value)
Specifies the minimum number of instances to maintain in the warm pool.
|
void |
setPoolState(java.lang.String value)
Sets the instance state to transition to after the lifecycle actions are complete.
|
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, isCfnResource, shouldSynthesize, toString, validateProperties
getRef
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalId
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
public static final java.lang.String CFN_RESOURCE_TYPE_NAME
protected CfnWarmPool(software.amazon.jsii.JsiiObjectRef objRef)
protected CfnWarmPool(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
public CfnWarmPool(Construct scope, java.lang.String id, CfnWarmPoolProps props)
scope
- - scope in which this resource is defined. This parameter is required.id
- - scoped id of the resource. This parameter is required.props
- - resource properties. This parameter is required.public void inspect(TreeInspector inspector)
inspect
in interface IInspectable
inspector
- - tree inspector to collect and process attributes. This parameter is required.protected java.util.Map<java.lang.String,java.lang.Object> renderProperties(java.util.Map<java.lang.String,java.lang.Object> props)
renderProperties
in class CfnResource
props
- This parameter is required.protected java.util.Map<java.lang.String,java.lang.Object> getCfnProperties()
getCfnProperties
in class CfnResource
public java.lang.String getAutoScalingGroupName()
public void setAutoScalingGroupName(java.lang.String value)
public java.lang.Object getInstanceReusePolicy()
The default is to terminate instances in the Auto Scaling group when the group scales in.
public void setInstanceReusePolicy(IResolvable value)
The default is to terminate instances in the Auto Scaling group when the group scales in.
public void setInstanceReusePolicy(CfnWarmPool.InstanceReusePolicyProperty value)
The default is to terminate instances in the Auto Scaling group when the group scales in.
public java.lang.Number getMaxGroupPreparedCapacity()
This is an optional property. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity.
If a value for
MaxGroupPreparedCapacity
is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity. If you specify a value forMaxGroupPreparedCapacity
, Amazon EC2 Auto Scaling uses the difference between theMaxGroupPreparedCapacity
and the desired capacity instead.The size of the warm pool is dynamic. Only when
MaxGroupPreparedCapacity
andMinSize
are set to the same value does the warm pool have an absolute size.
If the desired capacity of the Auto Scaling group is higher than the MaxGroupPreparedCapacity
, the capacity of the warm pool is 0, unless you specify a value for MinSize
. To remove a value that you previously set, include the property but specify -1 for the value.
public void setMaxGroupPreparedCapacity(java.lang.Number value)
This is an optional property. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity.
If a value for
MaxGroupPreparedCapacity
is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity. If you specify a value forMaxGroupPreparedCapacity
, Amazon EC2 Auto Scaling uses the difference between theMaxGroupPreparedCapacity
and the desired capacity instead.The size of the warm pool is dynamic. Only when
MaxGroupPreparedCapacity
andMinSize
are set to the same value does the warm pool have an absolute size.
If the desired capacity of the Auto Scaling group is higher than the MaxGroupPreparedCapacity
, the capacity of the warm pool is 0, unless you specify a value for MinSize
. To remove a value that you previously set, include the property but specify -1 for the value.
public java.lang.Number getMinSize()
This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
public void setMinSize(java.lang.Number value)
This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
public java.lang.String getPoolState()
Default is Stopped
.
public void setPoolState(java.lang.String value)
Default is Stopped
.