@Generated(value="jsii-pacmak/1.63.2 (build a8a8833)", date="2022-08-09T19:16:42.229Z") public class AutoScalingGroup extends Resource implements ILoadBalancerTarget, IConnectable, IApplicationLoadBalancerTarget, INetworkLoadBalancerTarget, IAutoScalingGroup
The Fleet models a number of AutoScalingGroups, a launch configuration, a security group and an instance role.
It allows adding arbitrary commands to the startup scripts of the instances in the fleet.
The ASG spans the availability zones specified by vpcSubnets, falling back to the Vpc default strategy if not specified.
Example:
Vpc vpc; SecurityGroup mySecurityGroup = SecurityGroup.Builder.create(this, "SecurityGroup").vpc(vpc).build(); AutoScalingGroup.Builder.create(this, "ASG") .vpc(vpc) .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.MICRO)) .machineImage(new AmazonLinuxImage()) .securityGroup(mySecurityGroup) .build();
Modifier and Type | Class and Description |
---|---|
static class |
AutoScalingGroup.Builder
A fluent builder for
AutoScalingGroup . |
ILoadBalancerTarget.Jsii$Default, ILoadBalancerTarget.Jsii$Proxy
IApplicationLoadBalancerTarget.Jsii$Default, IApplicationLoadBalancerTarget.Jsii$Proxy
INetworkLoadBalancerTarget.Jsii$Default, INetworkLoadBalancerTarget.Jsii$Proxy
IAutoScalingGroup.Jsii$Default, IAutoScalingGroup.Jsii$Proxy
Modifier | Constructor and Description |
---|---|
protected |
AutoScalingGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
AutoScalingGroup(software.amazon.jsii.JsiiObjectRef objRef) |
|
AutoScalingGroup(software.constructs.Construct scope,
java.lang.String id,
AutoScalingGroupProps props) |
Modifier and Type | Method and Description |
---|---|
LifecycleHook |
addLifecycleHook(java.lang.String id,
BasicLifecycleHookProps props)
Send a message to either an SQS queue or SNS topic when instances launch or terminate.
|
void |
addSecurityGroup(ISecurityGroup securityGroup)
Add the security group to all instances via the launch configuration security groups array.
|
void |
addToRolePolicy(PolicyStatement statement)
Adds a statement to the IAM role assumed by instances of this fleet.
|
void |
addUserData(java.lang.String... commands)
Add command to the startup script of fleet instances.
|
WarmPool |
addWarmPool()
Add a pool of pre-initialized EC2 instances that sits alongside an Auto Scaling group.
|
WarmPool |
addWarmPool(WarmPoolOptions options)
Add a pool of pre-initialized EC2 instances that sits alongside an Auto Scaling group.
|
void |
applyCloudFormationInit(CloudFormationInit init)
Use a CloudFormation Init configuration at instance startup.
|
void |
applyCloudFormationInit(CloudFormationInit init,
ApplyCloudFormationInitOptions options)
Use a CloudFormation Init configuration at instance startup.
|
java.lang.Boolean |
areNewInstancesProtectedFromScaleIn()
Returns `true` if newly-launched instances are protected from scale-in.
|
LoadBalancerTargetProps |
attachToApplicationTargetGroup(IApplicationTargetGroup targetGroup)
Attach to ELBv2 Application Target Group.
|
void |
attachToClassicLB(LoadBalancer loadBalancer)
Attach to a classic load balancer.
|
LoadBalancerTargetProps |
attachToNetworkTargetGroup(INetworkTargetGroup targetGroup)
Attach to ELBv2 Application Target Group.
|
static IAutoScalingGroup |
fromAutoScalingGroupName(software.constructs.Construct scope,
java.lang.String id,
java.lang.String autoScalingGroupName) |
protected ApplicationTargetGroup |
getAlbTargetGroup() |
java.lang.String |
getAutoScalingGroupArn()
Arn of the AutoScalingGroup.
|
java.lang.String |
getAutoScalingGroupName()
Name of the AutoScalingGroup.
|
Connections |
getConnections()
The network connections associated with this resource.
|
IPrincipal |
getGrantPrincipal()
The principal to grant permissions to.
|
Duration |
getMaxInstanceLifetime()
The maximum amount of time that an instance can be in service.
|
protected java.lang.Boolean |
getNewInstancesProtectedFromScaleIn() |
OperatingSystemType |
getOsType()
The type of OS instances of this fleet are running.
|
IRole |
getRole()
The IAM Role in the instance profile.
|
java.lang.String |
getSpotPrice()
The maximum spot price configured for the autoscaling group.
|
UserData |
getUserData()
The Base64-encoded user data to make available to the launched EC2 instances.
|
void |
protectNewInstancesFromScaleIn()
Ensures newly-launched instances are protected from scale-in.
|
TargetTrackingScalingPolicy |
scaleOnCpuUtilization(java.lang.String id,
CpuUtilizationScalingProps props)
Scale out or in to achieve a target CPU utilization.
|
TargetTrackingScalingPolicy |
scaleOnIncomingBytes(java.lang.String id,
NetworkUtilizationScalingProps props)
Scale out or in to achieve a target network ingress rate.
|
StepScalingPolicy |
scaleOnMetric(java.lang.String id,
BasicStepScalingPolicyProps props)
Scale out or in, in response to a metric.
|
TargetTrackingScalingPolicy |
scaleOnOutgoingBytes(java.lang.String id,
NetworkUtilizationScalingProps props)
Scale out or in to achieve a target network egress rate.
|
TargetTrackingScalingPolicy |
scaleOnRequestCount(java.lang.String id,
RequestCountScalingProps props)
Scale out or in to achieve a target request handling rate.
|
ScheduledAction |
scaleOnSchedule(java.lang.String id,
BasicScheduledActionProps props)
Scale out or in based on time.
|
TargetTrackingScalingPolicy |
scaleToTrackMetric(java.lang.String id,
MetricTargetTrackingProps props)
Scale out or in in order to keep a metric around a target value.
|
protected void |
setAlbTargetGroup(ApplicationTargetGroup value) |
protected void |
setNewInstancesProtectedFromScaleIn(java.lang.Boolean value) |
applyRemovalPolicy, generatePhysicalName, getEnv, getPhysicalName, getResourceArnAttribute, getResourceNameAttribute, getStack, isResource
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
applyRemovalPolicy, getEnv, getStack
getNode
protected AutoScalingGroup(software.amazon.jsii.JsiiObjectRef objRef)
protected AutoScalingGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
public AutoScalingGroup(software.constructs.Construct scope, java.lang.String id, AutoScalingGroupProps props)
scope
- This parameter is required.id
- This parameter is required.props
- This parameter is required.public static IAutoScalingGroup fromAutoScalingGroupName(software.constructs.Construct scope, java.lang.String id, java.lang.String autoScalingGroupName)
scope
- This parameter is required.id
- This parameter is required.autoScalingGroupName
- This parameter is required.public LifecycleHook addLifecycleHook(java.lang.String id, BasicLifecycleHookProps props)
addLifecycleHook
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public void addSecurityGroup(ISecurityGroup securityGroup)
securityGroup
- : The security group to add. This parameter is required.public void addToRolePolicy(PolicyStatement statement)
statement
- This parameter is required.public void addUserData(java.lang.String... commands)
The command must be in the scripting language supported by the fleet's OS (i.e. Linux/Windows). Does nothing for imported ASGs.
addUserData
in interface IAutoScalingGroup
commands
- This parameter is required.public WarmPool addWarmPool(WarmPoolOptions options)
addWarmPool
in interface IAutoScalingGroup
options
- public WarmPool addWarmPool()
addWarmPool
in interface IAutoScalingGroup
public void applyCloudFormationInit(CloudFormationInit init, ApplyCloudFormationInitOptions options)
This does the following:
cfn-init
and cfn-signal
.cfn-init
to finish
before reporting success.init
- This parameter is required.options
- public void applyCloudFormationInit(CloudFormationInit init)
This does the following:
cfn-init
and cfn-signal
.cfn-init
to finish
before reporting success.init
- This parameter is required.public java.lang.Boolean areNewInstancesProtectedFromScaleIn()
public LoadBalancerTargetProps attachToApplicationTargetGroup(IApplicationTargetGroup targetGroup)
attachToApplicationTargetGroup
in interface IApplicationLoadBalancerTarget
targetGroup
- This parameter is required.public void attachToClassicLB(LoadBalancer loadBalancer)
attachToClassicLB
in interface ILoadBalancerTarget
loadBalancer
- This parameter is required.public LoadBalancerTargetProps attachToNetworkTargetGroup(INetworkTargetGroup targetGroup)
attachToNetworkTargetGroup
in interface INetworkLoadBalancerTarget
targetGroup
- This parameter is required.public void protectNewInstancesFromScaleIn()
public TargetTrackingScalingPolicy scaleOnCpuUtilization(java.lang.String id, CpuUtilizationScalingProps props)
scaleOnCpuUtilization
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public TargetTrackingScalingPolicy scaleOnIncomingBytes(java.lang.String id, NetworkUtilizationScalingProps props)
scaleOnIncomingBytes
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public StepScalingPolicy scaleOnMetric(java.lang.String id, BasicStepScalingPolicyProps props)
scaleOnMetric
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public TargetTrackingScalingPolicy scaleOnOutgoingBytes(java.lang.String id, NetworkUtilizationScalingProps props)
scaleOnOutgoingBytes
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public TargetTrackingScalingPolicy scaleOnRequestCount(java.lang.String id, RequestCountScalingProps props)
The AutoScalingGroup must have been attached to an Application Load Balancer in order to be able to call this.
id
- This parameter is required.props
- This parameter is required.public ScheduledAction scaleOnSchedule(java.lang.String id, BasicScheduledActionProps props)
scaleOnSchedule
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public TargetTrackingScalingPolicy scaleToTrackMetric(java.lang.String id, MetricTargetTrackingProps props)
scaleToTrackMetric
in interface IAutoScalingGroup
id
- This parameter is required.props
- This parameter is required.public java.lang.String getAutoScalingGroupArn()
getAutoScalingGroupArn
in interface IAutoScalingGroup
public java.lang.String getAutoScalingGroupName()
getAutoScalingGroupName
in interface IAutoScalingGroup
public Connections getConnections()
getConnections
in interface IConnectable
public IPrincipal getGrantPrincipal()
getGrantPrincipal
in interface IGrantable
public OperatingSystemType getOsType()
getOsType
in interface IAutoScalingGroup
public IRole getRole()
public UserData getUserData()
public Duration getMaxInstanceLifetime()
public java.lang.String getSpotPrice()
undefined
indicates that this group uses on-demand capacity.
protected ApplicationTargetGroup getAlbTargetGroup()
protected void setAlbTargetGroup(ApplicationTargetGroup value)
protected java.lang.Boolean getNewInstancesProtectedFromScaleIn()
protected void setNewInstancesProtectedFromScaleIn(java.lang.Boolean value)