@Generated(value="jsii-pacmak/1.73.0 (build 6faeda3)", date="2023-01-31T18:36:58.487Z") 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 .
Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a launch template or a launch configuration. We strongly recommend that you do not use launch configurations. They do not provide full functionality for Amazon EC2 Auto Scaling or Amazon EC2. For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide .
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.
|
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 |
---|---|
|
CfnLaunchConfiguration(Construct scope,
java.lang.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 |
---|---|
java.lang.Object |
getAssociatePublicIpAddress()
Specifies whether to assign a public IPv4 address to the group's instances.
|
java.lang.Object |
getBlockDeviceMappings()
The block device mapping entries that define the block devices to attach to the instances at launch.
|
protected java.util.Map<java.lang.String,java.lang.Object> |
getCfnProperties() |
java.lang.String |
getClassicLinkVpcId()
Available for backward compatibility.
|
java.util.List<java.lang.String> |
getClassicLinkVpcSecurityGroups()
Available for backward compatibility.
|
java.lang.Object |
getEbsOptimized()
Specifies whether the launch configuration is optimized for EBS I/O ( `true` ) or not ( `false` ).
|
java.lang.String |
getIamInstanceProfile()
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.
|
java.lang.String |
getImageId()
The ID of the Amazon Machine Image (AMI) that was assigned during registration.
|
java.lang.String |
getInstanceId()
The ID of the Amazon EC2 instance to use to create the launch configuration.
|
java.lang.Object |
getInstanceMonitoring()
Controls whether instances in this group are launched with detailed ( `true` ) or basic ( `false` ) monitoring.
|
java.lang.String |
getInstanceType()
Specifies the instance type of the EC2 instance.
|
java.lang.String |
getKernelId()
The ID of the kernel associated with the AMI.
|
java.lang.String |
getKeyName()
The name of the key pair.
|
java.lang.String |
getLaunchConfigurationName()
The name of the launch configuration.
|
java.lang.Object |
getMetadataOptions()
The metadata options for the instances.
|
java.lang.String |
getPlacementTenancy()
The tenancy of the instance, either `default` or `dedicated` .
|
java.lang.String |
getRamDiskId()
The ID of the RAM disk to select.
|
java.util.List<java.lang.String> |
getSecurityGroups()
A list that contains the security groups to assign to the instances in the Auto Scaling group.
|
java.lang.String |
getSpotPrice()
The maximum hourly price to be paid for any Spot Instance launched to fulfill the request.
|
java.lang.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 java.util.Map<java.lang.String,java.lang.Object> |
renderProperties(java.util.Map<java.lang.String,java.lang.Object> props) |
void |
setAssociatePublicIpAddress(java.lang.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(java.util.List<java.lang.Object> value)
The block device mapping entries that define the block devices to attach to the instances at launch.
|
void |
setClassicLinkVpcId(java.lang.String value)
Available for backward compatibility.
|
void |
setClassicLinkVpcSecurityGroups(java.util.List<java.lang.String> value)
Available for backward compatibility.
|
void |
setEbsOptimized(java.lang.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(java.lang.String value)
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.
|
void |
setImageId(java.lang.String value)
The ID of the Amazon Machine Image (AMI) that was assigned during registration.
|
void |
setInstanceId(java.lang.String value)
The ID of the Amazon EC2 instance to use to create the launch configuration.
|
void |
setInstanceMonitoring(java.lang.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(java.lang.String value)
Specifies the instance type of the EC2 instance.
|
void |
setKernelId(java.lang.String value)
The ID of the kernel associated with the AMI.
|
void |
setKeyName(java.lang.String value)
The name of the key pair.
|
void |
setLaunchConfigurationName(java.lang.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(java.lang.String value)
The tenancy of the instance, either `default` or `dedicated` .
|
void |
setRamDiskId(java.lang.String value)
The ID of the RAM disk to select.
|
void |
setSecurityGroups(java.util.List<java.lang.String> value)
A list that contains the security groups to assign to the instances in the Auto Scaling group.
|
void |
setSpotPrice(java.lang.String value)
The maximum hourly price to be paid for any Spot Instance launched to fulfill the request.
|
void |
setUserData(java.lang.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, 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 CfnLaunchConfiguration(software.amazon.jsii.JsiiObjectRef objRef)
protected CfnLaunchConfiguration(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
public CfnLaunchConfiguration(Construct scope, java.lang.String id, 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.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 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.
public void setImageId(java.lang.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.
public java.lang.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.
public void setInstanceType(java.lang.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.
public java.lang.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.
public void setAssociatePublicIpAddress(java.lang.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.
public void setAssociatePublicIpAddress(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.
public java.lang.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 .
public void setBlockDeviceMappings(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 .
public void setBlockDeviceMappings(java.util.List<java.lang.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 .
public java.lang.String getClassicLinkVpcId()
public void setClassicLinkVpcId(java.lang.String value)
public java.util.List<java.lang.String> getClassicLinkVpcSecurityGroups()
public void setClassicLinkVpcSecurityGroups(java.util.List<java.lang.String> value)
public java.lang.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
.
public void setEbsOptimized(java.lang.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
.
public void setEbsOptimized(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
.
public java.lang.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 .
public void setIamInstanceProfile(java.lang.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 .
public java.lang.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.
public void setInstanceId(java.lang.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.
public java.lang.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 .
public void setInstanceMonitoring(java.lang.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 .
public void setInstanceMonitoring(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 .
public java.lang.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 .
public void setKernelId(java.lang.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 .
public java.lang.String getKeyName()
For more information, see Amazon EC2 key pairs and Linux instances in the Amazon EC2 User Guide for Linux Instances .
public void setKeyName(java.lang.String value)
For more information, see Amazon EC2 key pairs and Linux instances in the Amazon EC2 User Guide for Linux Instances .
public java.lang.String getLaunchConfigurationName()
This name must be unique per Region per account.
public void setLaunchConfigurationName(java.lang.String value)
This name must be unique per Region per account.
public java.lang.Object getMetadataOptions()
For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide .
public void setMetadataOptions(IResolvable value)
For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide .
public void setMetadataOptions(CfnLaunchConfiguration.MetadataOptionsProperty value)
For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide .
public java.lang.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
public void setPlacementTenancy(java.lang.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
public java.lang.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 .
public void setRamDiskId(java.lang.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 .
public java.util.List<java.lang.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 .
public void setSecurityGroups(java.util.List<java.lang.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 .
public java.lang.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.
public void setSpotPrice(java.lang.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.
public java.lang.String getUserData()
For more information, see Instance metadata and user data in the Amazon EC2 User Guide for Linux Instances .
public void setUserData(java.lang.String value)
For more information, see Instance metadata and user data in the Amazon EC2 User Guide for Linux Instances .