@Generated(value="jsii-pacmak/1.67.0 (build 2c027f5)", date="2022-09-19T20:26:36.758Z") @Stability(value=Stable) public class CfnLaunchConfiguration extends CfnResource implements IInspectable
The AWS::AutoScaling::LaunchConfiguration resource specifies the launch configuration that can be used by an Auto Scaling group to configure Amazon EC2 instances.
When you update the launch configuration for an Auto Scaling group, CloudFormation deletes that resource and creates a new launch configuration with the updated properties and a new name. Existing instances are not affected. To update existing instances when you update the AWS::AutoScaling::LaunchConfiguration resource, you can specify an UpdatePolicy attribute for the group. You can find sample update policies for rolling updates in Auto scaling template snippets .
For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide .
To configure Amazon EC2 instances launched as part of the Auto Scaling group, you can specify a launch template or a launch configuration. We recommend that you use a launch template to make sure that you can use the latest features of Amazon EC2, such as Dedicated Hosts and T2 Unlimited instances. For more information, see Creating a launch template for an Auto Scaling group .
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.*;
CfnLaunchConfiguration cfnLaunchConfiguration = CfnLaunchConfiguration.Builder.create(this, "MyCfnLaunchConfiguration")
.imageId("imageId")
.instanceType("instanceType")
// the properties below are optional
.associatePublicIpAddress(false)
.blockDeviceMappings(List.of(BlockDeviceMappingProperty.builder()
.deviceName("deviceName")
// the properties below are optional
.ebs(BlockDeviceProperty.builder()
.deleteOnTermination(false)
.encrypted(false)
.iops(123)
.snapshotId("snapshotId")
.throughput(123)
.volumeSize(123)
.volumeType("volumeType")
.build())
.noDevice(false)
.virtualName("virtualName")
.build()))
.classicLinkVpcId("classicLinkVpcId")
.classicLinkVpcSecurityGroups(List.of("classicLinkVpcSecurityGroups"))
.ebsOptimized(false)
.iamInstanceProfile("iamInstanceProfile")
.instanceId("instanceId")
.instanceMonitoring(false)
.kernelId("kernelId")
.keyName("keyName")
.launchConfigurationName("launchConfigurationName")
.metadataOptions(MetadataOptionsProperty.builder()
.httpEndpoint("httpEndpoint")
.httpPutResponseHopLimit(123)
.httpTokens("httpTokens")
.build())
.placementTenancy("placementTenancy")
.ramDiskId("ramDiskId")
.securityGroups(List.of("securityGroups"))
.spotPrice("spotPrice")
.userData("userData")
.build();
| Modifier and Type | Class and Description |
|---|---|
static interface |
CfnLaunchConfiguration.BlockDeviceMappingProperty
`BlockDeviceMapping` specifies a block device mapping for the `BlockDeviceMappings` property of the [AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html) resource.
|
static interface |
CfnLaunchConfiguration.BlockDeviceProperty
`BlockDevice` is a property of the `EBS` property of the [AWS::AutoScaling::LaunchConfiguration BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html) property type that describes an Amazon EBS volume.
|
static class |
CfnLaunchConfiguration.Builder
A fluent builder for
CfnLaunchConfiguration. |
static interface |
CfnLaunchConfiguration.MetadataOptionsProperty
`MetadataOptions` is a property of [AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html) that describes metadata options for the instances.
|
software.amazon.jsii.JsiiObject.InitializationModeIInspectable.Jsii$Default, IInspectable.Jsii$Proxy| Modifier and Type | Field and Description |
|---|---|
static String |
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
|
| Modifier | Constructor and Description |
|---|---|
|
CfnLaunchConfiguration(software.constructs.Construct scope,
String id,
CfnLaunchConfigurationProps props)
Create a new `AWS::AutoScaling::LaunchConfiguration`.
|
protected |
CfnLaunchConfiguration(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
CfnLaunchConfiguration(software.amazon.jsii.JsiiObjectRef objRef) |
| Modifier and Type | Method and Description |
|---|---|
Object |
getAssociatePublicIpAddress()
Specifies whether to assign a public IPv4 address to the group's instances.
|
Object |
getBlockDeviceMappings()
The block device mapping entries that define the block devices to attach to the instances at launch.
|
protected Map<String,Object> |
getCfnProperties() |
String |
getClassicLinkVpcId()
*EC2-Classic retires on August 15, 2022.
|
List<String> |
getClassicLinkVpcSecurityGroups()
*EC2-Classic retires on August 15, 2022.
|
Object |
getEbsOptimized()
Specifies whether the launch configuration is optimized for EBS I/O ( `true` ) or not ( `false` ).
|
String |
getIamInstanceProfile()
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.
|
String |
getImageId()
The ID of the Amazon Machine Image (AMI) that was assigned during registration.
|
String |
getInstanceId()
The ID of the Amazon EC2 instance to use to create the launch configuration.
|
Object |
getInstanceMonitoring()
Controls whether instances in this group are launched with detailed ( `true` ) or basic ( `false` ) monitoring.
|
String |
getInstanceType()
Specifies the instance type of the EC2 instance.
|
String |
getKernelId()
The ID of the kernel associated with the AMI.
|
String |
getKeyName()
The name of the key pair.
|
String |
getLaunchConfigurationName()
The name of the launch configuration.
|
Object |
getMetadataOptions()
The metadata options for the instances.
|
String |
getPlacementTenancy()
The tenancy of the instance, either `default` or `dedicated` .
|
String |
getRamDiskId()
The ID of the RAM disk to select.
|
List<String> |
getSecurityGroups()
A list that contains the security groups to assign to the instances in the Auto Scaling group.
|
String |
getSpotPrice()
The maximum hourly price to be paid for any Spot Instance launched to fulfill the request.
|
String |
getUserData()
The Base64-encoded user data to make available to the launched EC2 instances.
|
void |
inspect(TreeInspector inspector)
Examines the CloudFormation resource and discloses attributes.
|
protected Map<String,Object> |
renderProperties(Map<String,Object> props) |
void |
setAssociatePublicIpAddress(Boolean value)
Specifies whether to assign a public IPv4 address to the group's instances.
|
void |
setAssociatePublicIpAddress(IResolvable value)
Specifies whether to assign a public IPv4 address to the group's instances.
|
void |
setBlockDeviceMappings(IResolvable value)
The block device mapping entries that define the block devices to attach to the instances at launch.
|
void |
setBlockDeviceMappings(List<Object> value)
The block device mapping entries that define the block devices to attach to the instances at launch.
|
void |
setClassicLinkVpcId(String value)
*EC2-Classic retires on August 15, 2022.
|
void |
setClassicLinkVpcSecurityGroups(List<String> value)
*EC2-Classic retires on August 15, 2022.
|
void |
setEbsOptimized(Boolean value)
Specifies whether the launch configuration is optimized for EBS I/O ( `true` ) or not ( `false` ).
|
void |
setEbsOptimized(IResolvable value)
Specifies whether the launch configuration is optimized for EBS I/O ( `true` ) or not ( `false` ).
|
void |
setIamInstanceProfile(String value)
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.
|
void |
setImageId(String value)
The ID of the Amazon Machine Image (AMI) that was assigned during registration.
|
void |
setInstanceId(String value)
The ID of the Amazon EC2 instance to use to create the launch configuration.
|
void |
setInstanceMonitoring(Boolean value)
Controls whether instances in this group are launched with detailed ( `true` ) or basic ( `false` ) monitoring.
|
void |
setInstanceMonitoring(IResolvable value)
Controls whether instances in this group are launched with detailed ( `true` ) or basic ( `false` ) monitoring.
|
void |
setInstanceType(String value)
Specifies the instance type of the EC2 instance.
|
void |
setKernelId(String value)
The ID of the kernel associated with the AMI.
|
void |
setKeyName(String value)
The name of the key pair.
|
void |
setLaunchConfigurationName(String value)
The name of the launch configuration.
|
void |
setMetadataOptions(CfnLaunchConfiguration.MetadataOptionsProperty value)
The metadata options for the instances.
|
void |
setMetadataOptions(IResolvable value)
The metadata options for the instances.
|
void |
setPlacementTenancy(String value)
The tenancy of the instance, either `default` or `dedicated` .
|
void |
setRamDiskId(String value)
The ID of the RAM disk to select.
|
void |
setSecurityGroups(List<String> value)
A list that contains the security groups to assign to the instances in the Auto Scaling group.
|
void |
setSpotPrice(String value)
The maximum hourly price to be paid for any Spot Instance launched to fulfill the request.
|
void |
setUserData(String value)
The Base64-encoded user data to make available to the launched EC2 instances.
|
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, getUpdatedProperties, isCfnResource, shouldSynthesize, toString, validatePropertiesgetRefgetCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdjsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet@Stability(value=Stable) public static final String CFN_RESOURCE_TYPE_NAME
protected CfnLaunchConfiguration(software.amazon.jsii.JsiiObjectRef objRef)
protected CfnLaunchConfiguration(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
@Stability(value=Stable)
public CfnLaunchConfiguration(@NotNull
software.constructs.Construct scope,
@NotNull
String id,
@NotNull
CfnLaunchConfigurationProps 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.@Stability(value=Stable)
public void inspect(@NotNull
TreeInspector inspector)
inspect in interface IInspectableinspector - - tree inspector to collect and process attributes. This parameter is required.@Stability(value=Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
renderProperties in class CfnResourceprops - This parameter is required.@Stability(value=Stable) @NotNull protected Map<String,Object> getCfnProperties()
getCfnProperties in class CfnResource@Stability(value=Stable) @NotNull public String getImageId()
For more information, see Finding a Linux AMI in the Amazon EC2 User Guide for Linux Instances .
If you specify InstanceId , an ImageId is not required.
@Stability(value=Stable)
public void setImageId(@NotNull
String value)
For more information, see Finding a Linux AMI in the Amazon EC2 User Guide for Linux Instances .
If you specify InstanceId , an ImageId is not required.
@Stability(value=Stable) @NotNull public String getInstanceType()
For information about available instance types, see Available instance types in the Amazon EC2 User Guide for Linux Instances .
If you specify InstanceId , an InstanceType is not required.
@Stability(value=Stable)
public void setInstanceType(@NotNull
String value)
For information about available instance types, see Available instance types in the Amazon EC2 User Guide for Linux Instances .
If you specify InstanceId , an InstanceType is not required.
@Stability(value=Stable) @Nullable public Object getAssociatePublicIpAddress()
If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet.
If you specify true , each instance in the Auto Scaling group receives a unique public IPv4 address. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide .
If you specify this property, you must specify at least one subnet for VPCZoneIdentifier when you create your group.
@Stability(value=Stable)
public void setAssociatePublicIpAddress(@Nullable
Boolean value)
If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet.
If you specify true , each instance in the Auto Scaling group receives a unique public IPv4 address. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide .
If you specify this property, you must specify at least one subnet for VPCZoneIdentifier when you create your group.
@Stability(value=Stable)
public void setAssociatePublicIpAddress(@Nullable
IResolvable value)
If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet.
If you specify true , each instance in the Auto Scaling group receives a unique public IPv4 address. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide .
If you specify this property, you must specify at least one subnet for VPCZoneIdentifier when you create your group.
@Stability(value=Stable) @Nullable public Object getBlockDeviceMappings()
By default, the block devices specified in the block device mapping for the AMI are used. For more information, see Block device mappings in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setBlockDeviceMappings(@Nullable
IResolvable value)
By default, the block devices specified in the block device mapping for the AMI are used. For more information, see Block device mappings in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setBlockDeviceMappings(@Nullable
List<Object> value)
By default, the block devices specified in the block device mapping for the AMI are used. For more information, see Block device mappings in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable) @Nullable public String getClassicLinkVpcId()
The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setClassicLinkVpcId(@Nullable
String value)
The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable) @Nullable public List<String> getClassicLinkVpcSecurityGroups()
The IDs of one or more security groups for the specified ClassicLink-enabled VPC.
If you specify the ClassicLinkVPCId property, you must specify ClassicLinkVPCSecurityGroups .
@Stability(value=Stable)
public void setClassicLinkVpcSecurityGroups(@Nullable
List<String> value)
The IDs of one or more security groups for the specified ClassicLink-enabled VPC.
If you specify the ClassicLinkVPCId property, you must specify ClassicLinkVPCSecurityGroups .
@Stability(value=Stable) @Nullable public Object getEbsOptimized()
The optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization is not available with all instance types. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS-optimized by default. For more information, see Amazon EBS-optimized instances in the Amazon EC2 User Guide for Linux Instances .
The default value is false .
@Stability(value=Stable)
public void setEbsOptimized(@Nullable
Boolean value)
The optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization is not available with all instance types. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS-optimized by default. For more information, see Amazon EBS-optimized instances in the Amazon EC2 User Guide for Linux Instances .
The default value is false .
@Stability(value=Stable)
public void setEbsOptimized(@Nullable
IResolvable value)
The optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization is not available with all instance types. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS-optimized by default. For more information, see Amazon EBS-optimized instances in the Amazon EC2 User Guide for Linux Instances .
The default value is false .
@Stability(value=Stable) @Nullable public String getIamInstanceProfile()
The instance profile contains the IAM role. For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable)
public void setIamInstanceProfile(@Nullable
String value)
The instance profile contains the IAM role. For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable) @Nullable public String getInstanceId()
When you use an instance to create a launch configuration, all properties are derived from the instance with the exception of BlockDeviceMapping and AssociatePublicIpAddress . You can override any properties from the instance by specifying them in the launch configuration.
@Stability(value=Stable)
public void setInstanceId(@Nullable
String value)
When you use an instance to create a launch configuration, all properties are derived from the instance with the exception of BlockDeviceMapping and AssociatePublicIpAddress . You can override any properties from the instance by specifying them in the launch configuration.
@Stability(value=Stable) @Nullable public Object getInstanceMonitoring()
The default value is true (enabled).
When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. For more information, see Configure Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable)
public void setInstanceMonitoring(@Nullable
Boolean value)
The default value is true (enabled).
When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. For more information, see Configure Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable)
public void setInstanceMonitoring(@Nullable
IResolvable value)
The default value is true (enabled).
When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. For more information, see Configure Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable) @Nullable public String getKernelId()
We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User provided kernels in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setKernelId(@Nullable
String value)
We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User provided kernels in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable) @Nullable public String getKeyName()
For more information, see Amazon EC2 key pairs and Linux instances in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setKeyName(@Nullable
String value)
For more information, see Amazon EC2 key pairs and Linux instances in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable) @Nullable public String getLaunchConfigurationName()
This name must be unique per Region per account.
@Stability(value=Stable)
public void setLaunchConfigurationName(@Nullable
String value)
This name must be unique per Region per account.
@Stability(value=Stable) @Nullable public Object getMetadataOptions()
For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable)
public void setMetadataOptions(@Nullable
CfnLaunchConfiguration.MetadataOptionsProperty value)
For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable)
public void setMetadataOptions(@Nullable
IResolvable value)
For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide .
@Stability(value=Stable) @Nullable public String getPlacementTenancy()
An instance with dedicated tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to default ), you must set the value of this property to dedicated . For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide .
If you specify PlacementTenancy , you must specify at least one subnet for VPCZoneIdentifier when you create your group.
Valid values: default | dedicated
@Stability(value=Stable)
public void setPlacementTenancy(@Nullable
String value)
An instance with dedicated tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to default ), you must set the value of this property to dedicated . For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide .
If you specify PlacementTenancy , you must specify at least one subnet for VPCZoneIdentifier when you create your group.
Valid values: default | dedicated
@Stability(value=Stable) @Nullable public String getRamDiskId()
We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User provided kernels in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setRamDiskId(@Nullable
String value)
We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User provided kernels in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable) @Nullable public List<String> getSecurityGroups()
The list can contain both the IDs of existing security groups and references to SecurityGroup resources created in the template.
For more information, see Control traffic to resources using security groups in the Amazon Virtual Private Cloud User Guide .
@Stability(value=Stable)
public void setSecurityGroups(@Nullable
List<String> value)
The list can contain both the IDs of existing security groups and references to SecurityGroup resources created in the template.
For more information, see Control traffic to resources using security groups in the Amazon Virtual Private Cloud User Guide .
@Stability(value=Stable) @Nullable public String getSpotPrice()
Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Request Spot Instances for fault-tolerant and flexible applications in the Amazon EC2 Auto Scaling User Guide .
Valid Range: Minimum value of 0.001
When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price.
@Stability(value=Stable)
public void setSpotPrice(@Nullable
String value)
Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Request Spot Instances for fault-tolerant and flexible applications in the Amazon EC2 Auto Scaling User Guide .
Valid Range: Minimum value of 0.001
When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price.
@Stability(value=Stable) @Nullable public String getUserData()
For more information, see Instance metadata and user data in the Amazon EC2 User Guide for Linux Instances .
@Stability(value=Stable)
public void setUserData(@Nullable
String value)
For more information, see Instance metadata and user data in the Amazon EC2 User Guide for Linux Instances .
Copyright © 2022. All rights reserved.