1. Packages
  2. AWS Classic
  3. API Docs
  4. ec2
  5. LaunchConfiguration

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.23.0 published on Thursday, Feb 22, 2024 by Pulumi

aws.ec2.LaunchConfiguration

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.23.0 published on Thursday, Feb 22, 2024 by Pulumi

    Provides a resource to create a new launch configuration, used for autoscaling groups.

    !> WARNING: The use of launch configurations is discouraged in favour of launch templates. Read more in the AWS EC2 Documentation.

    Note When using aws.ec2.LaunchConfiguration with aws.autoscaling.Group, it is recommended to use the name_prefix (Optional) instead of the name (Optional) attribute.

    Using with AutoScaling Groups

    Launch Configurations cannot be updated after creation with the Amazon Web Service API. In order to update a Launch Configuration, this provider will destroy the existing resource and create a replacement. In order to effectively use a Launch Configuration resource with an AutoScaling Group resource, it’s recommended to specify create_before_destroy in a lifecycle block. Either omit the Launch Configuration name attribute, or specify a partial name with name_prefix. Example:

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const ubuntu = aws.ec2.getAmi({
        mostRecent: true,
        filters: [
            {
                name: "name",
                values: ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            },
            {
                name: "virtualization-type",
                values: ["hvm"],
            },
        ],
        owners: ["099720109477"],
    });
    const asConf = new aws.ec2.LaunchConfiguration("asConf", {
        namePrefix: "lc-example-",
        imageId: ubuntu.then(ubuntu => ubuntu.id),
        instanceType: "t2.micro",
    });
    const bar = new aws.autoscaling.Group("bar", {
        launchConfiguration: asConf.name,
        minSize: 1,
        maxSize: 2,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    ubuntu = aws.ec2.get_ami(most_recent=True,
        filters=[
            aws.ec2.GetAmiFilterArgs(
                name="name",
                values=["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            ),
            aws.ec2.GetAmiFilterArgs(
                name="virtualization-type",
                values=["hvm"],
            ),
        ],
        owners=["099720109477"])
    as_conf = aws.ec2.LaunchConfiguration("asConf",
        name_prefix="lc-example-",
        image_id=ubuntu.id,
        instance_type="t2.micro")
    bar = aws.autoscaling.Group("bar",
        launch_configuration=as_conf.name,
        min_size=1,
        max_size=2)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntu = Aws.Ec2.GetAmi.Invoke(new()
        {
            MostRecent = true,
            Filters = new[]
            {
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "name",
                    Values = new[]
                    {
                        "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
                    },
                },
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "virtualization-type",
                    Values = new[]
                    {
                        "hvm",
                    },
                },
            },
            Owners = new[]
            {
                "099720109477",
            },
        });
    
        var asConf = new Aws.Ec2.LaunchConfiguration("asConf", new()
        {
            NamePrefix = "lc-example-",
            ImageId = ubuntu.Apply(getAmiResult => getAmiResult.Id),
            InstanceType = "t2.micro",
        });
    
        var bar = new Aws.AutoScaling.Group("bar", new()
        {
            LaunchConfiguration = asConf.Name,
            MinSize = 1,
            MaxSize = 2,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		ubuntu, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
    			MostRecent: pulumi.BoolRef(true),
    			Filters: []ec2.GetAmiFilter{
    				{
    					Name: "name",
    					Values: []string{
    						"ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
    					},
    				},
    				{
    					Name: "virtualization-type",
    					Values: []string{
    						"hvm",
    					},
    				},
    			},
    			Owners: []string{
    				"099720109477",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		asConf, err := ec2.NewLaunchConfiguration(ctx, "asConf", &ec2.LaunchConfigurationArgs{
    			NamePrefix:   pulumi.String("lc-example-"),
    			ImageId:      *pulumi.String(ubuntu.Id),
    			InstanceType: pulumi.String("t2.micro"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
    			LaunchConfiguration: asConf.Name,
    			MinSize:             pulumi.Int(1),
    			MaxSize:             pulumi.Int(2),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.ec2.Ec2Functions;
    import com.pulumi.aws.ec2.inputs.GetAmiArgs;
    import com.pulumi.aws.ec2.LaunchConfiguration;
    import com.pulumi.aws.ec2.LaunchConfigurationArgs;
    import com.pulumi.aws.autoscaling.Group;
    import com.pulumi.aws.autoscaling.GroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var ubuntu = Ec2Functions.getAmi(GetAmiArgs.builder()
                .mostRecent(true)
                .filters(            
                    GetAmiFilterArgs.builder()
                        .name("name")
                        .values("ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*")
                        .build(),
                    GetAmiFilterArgs.builder()
                        .name("virtualization-type")
                        .values("hvm")
                        .build())
                .owners("099720109477")
                .build());
    
            var asConf = new LaunchConfiguration("asConf", LaunchConfigurationArgs.builder()        
                .namePrefix("lc-example-")
                .imageId(ubuntu.applyValue(getAmiResult -> getAmiResult.id()))
                .instanceType("t2.micro")
                .build());
    
            var bar = new Group("bar", GroupArgs.builder()        
                .launchConfiguration(asConf.name())
                .minSize(1)
                .maxSize(2)
                .build());
    
        }
    }
    
    resources:
      asConf:
        type: aws:ec2:LaunchConfiguration
        properties:
          namePrefix: lc-example-
          imageId: ${ubuntu.id}
          instanceType: t2.micro
      bar:
        type: aws:autoscaling:Group
        properties:
          launchConfiguration: ${asConf.name}
          minSize: 1
          maxSize: 2
    variables:
      ubuntu:
        fn::invoke:
          Function: aws:ec2:getAmi
          Arguments:
            mostRecent: true
            filters:
              - name: name
                values:
                  - ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*
              - name: virtualization-type
                values:
                  - hvm
            owners:
              - '099720109477'
    

    With this setup this provider generates a unique name for your Launch Configuration and can then update the AutoScaling Group without conflict before destroying the previous Launch Configuration.

    Using with Spot Instances

    Launch configurations can set the spot instance pricing to be used for the Auto Scaling Group to reserve instances. Simply specifying the spot_price parameter will set the price on the Launch Configuration which will attempt to reserve your instances at this price. See the AWS Spot Instance documentation for more information or how to launch [Spot Instances][3] with this provider.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const ubuntu = aws.ec2.getAmi({
        mostRecent: true,
        filters: [
            {
                name: "name",
                values: ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            },
            {
                name: "virtualization-type",
                values: ["hvm"],
            },
        ],
        owners: ["099720109477"],
    });
    const asConf = new aws.ec2.LaunchConfiguration("asConf", {
        imageId: ubuntu.then(ubuntu => ubuntu.id),
        instanceType: "m4.large",
        spotPrice: "0.001",
    });
    const bar = new aws.autoscaling.Group("bar", {launchConfiguration: asConf.name});
    
    import pulumi
    import pulumi_aws as aws
    
    ubuntu = aws.ec2.get_ami(most_recent=True,
        filters=[
            aws.ec2.GetAmiFilterArgs(
                name="name",
                values=["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            ),
            aws.ec2.GetAmiFilterArgs(
                name="virtualization-type",
                values=["hvm"],
            ),
        ],
        owners=["099720109477"])
    as_conf = aws.ec2.LaunchConfiguration("asConf",
        image_id=ubuntu.id,
        instance_type="m4.large",
        spot_price="0.001")
    bar = aws.autoscaling.Group("bar", launch_configuration=as_conf.name)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntu = Aws.Ec2.GetAmi.Invoke(new()
        {
            MostRecent = true,
            Filters = new[]
            {
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "name",
                    Values = new[]
                    {
                        "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
                    },
                },
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "virtualization-type",
                    Values = new[]
                    {
                        "hvm",
                    },
                },
            },
            Owners = new[]
            {
                "099720109477",
            },
        });
    
        var asConf = new Aws.Ec2.LaunchConfiguration("asConf", new()
        {
            ImageId = ubuntu.Apply(getAmiResult => getAmiResult.Id),
            InstanceType = "m4.large",
            SpotPrice = "0.001",
        });
    
        var bar = new Aws.AutoScaling.Group("bar", new()
        {
            LaunchConfiguration = asConf.Name,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		ubuntu, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
    			MostRecent: pulumi.BoolRef(true),
    			Filters: []ec2.GetAmiFilter{
    				{
    					Name: "name",
    					Values: []string{
    						"ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
    					},
    				},
    				{
    					Name: "virtualization-type",
    					Values: []string{
    						"hvm",
    					},
    				},
    			},
    			Owners: []string{
    				"099720109477",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		asConf, err := ec2.NewLaunchConfiguration(ctx, "asConf", &ec2.LaunchConfigurationArgs{
    			ImageId:      *pulumi.String(ubuntu.Id),
    			InstanceType: pulumi.String("m4.large"),
    			SpotPrice:    pulumi.String("0.001"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
    			LaunchConfiguration: asConf.Name,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.ec2.Ec2Functions;
    import com.pulumi.aws.ec2.inputs.GetAmiArgs;
    import com.pulumi.aws.ec2.LaunchConfiguration;
    import com.pulumi.aws.ec2.LaunchConfigurationArgs;
    import com.pulumi.aws.autoscaling.Group;
    import com.pulumi.aws.autoscaling.GroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var ubuntu = Ec2Functions.getAmi(GetAmiArgs.builder()
                .mostRecent(true)
                .filters(            
                    GetAmiFilterArgs.builder()
                        .name("name")
                        .values("ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*")
                        .build(),
                    GetAmiFilterArgs.builder()
                        .name("virtualization-type")
                        .values("hvm")
                        .build())
                .owners("099720109477")
                .build());
    
            var asConf = new LaunchConfiguration("asConf", LaunchConfigurationArgs.builder()        
                .imageId(ubuntu.applyValue(getAmiResult -> getAmiResult.id()))
                .instanceType("m4.large")
                .spotPrice("0.001")
                .build());
    
            var bar = new Group("bar", GroupArgs.builder()        
                .launchConfiguration(asConf.name())
                .build());
    
        }
    }
    
    resources:
      asConf:
        type: aws:ec2:LaunchConfiguration
        properties:
          imageId: ${ubuntu.id}
          instanceType: m4.large
          spotPrice: '0.001'
      bar:
        type: aws:autoscaling:Group
        properties:
          launchConfiguration: ${asConf.name}
    variables:
      ubuntu:
        fn::invoke:
          Function: aws:ec2:getAmi
          Arguments:
            mostRecent: true
            filters:
              - name: name
                values:
                  - ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*
              - name: virtualization-type
                values:
                  - hvm
            owners:
              - '099720109477'
    

    Block devices

    Each of the *_block_device attributes controls a portion of the AWS Launch Configuration’s “Block Device Mapping”. It’s a good idea to familiarize yourself with AWS’s Block Device Mapping docs to understand the implications of using these attributes.

    Each AWS Instance type has a different set of Instance Store block devices available for attachment. AWS publishes a list of which ephemeral devices are available on each type. The devices are always identified by the virtual_name in the format ephemeral{0..N}.

    NOTE: Changes to *_block_device configuration of existing resources cannot currently be detected by this provider. After updating to block device configuration, resource recreation can be manually triggered by using the up command with the –replace argument.

    ebs_block_device

    Modifying any of the ebs_block_device settings requires resource replacement.

    • device_name - (Required) The name of the device to mount.
    • snapshot_id - (Optional) The Snapshot ID to mount.
    • volume_type - (Optional) The type of volume. Can be standard, gp2, gp3, st1, sc1 or io1.
    • volume_size - (Optional) The size of the volume in gigabytes.
    • iops - (Optional) The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    • throughput - (Optional) The throughput (MiBps) to provision for a gp3 volume.
    • delete_on_termination - (Optional) Whether the volume should be destroyed on instance termination (Default: true).
    • encrypted - (Optional) Whether the volume should be encrypted or not. Defaults to false.
    • no_device - (Optional) Whether the device in the block device mapping of the AMI is suppressed.

    ephemeral_block_device

    • device_name - (Required) The name of the block device to mount on the instance.
    • no_device - (Optional) Whether the device in the block device mapping of the AMI is suppressed.
    • virtual_name - (Optional) The Instance Store Device Name.

    root_block_device

    Modifying any of the root_block_device settings requires resource replacement.

    • delete_on_termination - (Optional) Whether the volume should be destroyed on instance termination. Defaults to true.
    • encrypted - (Optional) Whether the volume should be encrypted or not. Defaults to false.
    • iops - (Optional) The amount of provisioned IOPS. This must be set with a volume_type of io1.
    • throughput - (Optional) The throughput (MiBps) to provision for a gp3 volume.
    • volume_size - (Optional) The size of the volume in gigabytes.
    • volume_type - (Optional) The type of volume. Can be standard, gp2, gp3, st1, sc1 or io1.

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntu = Aws.Ec2.GetAmi.Invoke(new()
        {
            MostRecent = true,
            Filters = new[]
            {
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "name",
                    Values = new[]
                    {
                        "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
                    },
                },
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "virtualization-type",
                    Values = new[]
                    {
                        "hvm",
                    },
                },
            },
            Owners = new[]
            {
                "099720109477",
            },
        });
    
        var asConf = new Aws.Ec2.LaunchConfiguration("asConf", new()
        {
            ImageId = ubuntu.Apply(getAmiResult => getAmiResult.Id),
            InstanceType = "t2.micro",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		ubuntu, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
    			MostRecent: pulumi.BoolRef(true),
    			Filters: []ec2.GetAmiFilter{
    				{
    					Name: "name",
    					Values: []string{
    						"ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
    					},
    				},
    				{
    					Name: "virtualization-type",
    					Values: []string{
    						"hvm",
    					},
    				},
    			},
    			Owners: []string{
    				"099720109477",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = ec2.NewLaunchConfiguration(ctx, "asConf", &ec2.LaunchConfigurationArgs{
    			ImageId:      *pulumi.String(ubuntu.Id),
    			InstanceType: pulumi.String("t2.micro"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.ec2.Ec2Functions;
    import com.pulumi.aws.ec2.inputs.GetAmiArgs;
    import com.pulumi.aws.ec2.LaunchConfiguration;
    import com.pulumi.aws.ec2.LaunchConfigurationArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var ubuntu = Ec2Functions.getAmi(GetAmiArgs.builder()
                .mostRecent(true)
                .filters(            
                    GetAmiFilterArgs.builder()
                        .name("name")
                        .values("ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*")
                        .build(),
                    GetAmiFilterArgs.builder()
                        .name("virtualization-type")
                        .values("hvm")
                        .build())
                .owners("099720109477")
                .build());
    
            var asConf = new LaunchConfiguration("asConf", LaunchConfigurationArgs.builder()        
                .imageId(ubuntu.applyValue(getAmiResult -> getAmiResult.id()))
                .instanceType("t2.micro")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    ubuntu = aws.ec2.get_ami(most_recent=True,
        filters=[
            aws.ec2.GetAmiFilterArgs(
                name="name",
                values=["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            ),
            aws.ec2.GetAmiFilterArgs(
                name="virtualization-type",
                values=["hvm"],
            ),
        ],
        owners=["099720109477"])
    as_conf = aws.ec2.LaunchConfiguration("asConf",
        image_id=ubuntu.id,
        instance_type="t2.micro")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const ubuntu = aws.ec2.getAmi({
        mostRecent: true,
        filters: [
            {
                name: "name",
                values: ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            },
            {
                name: "virtualization-type",
                values: ["hvm"],
            },
        ],
        owners: ["099720109477"],
    });
    const asConf = new aws.ec2.LaunchConfiguration("asConf", {
        imageId: ubuntu.then(ubuntu => ubuntu.id),
        instanceType: "t2.micro",
    });
    
    resources:
      asConf:
        type: aws:ec2:LaunchConfiguration
        properties:
          imageId: ${ubuntu.id}
          instanceType: t2.micro
    variables:
      ubuntu:
        fn::invoke:
          Function: aws:ec2:getAmi
          Arguments:
            mostRecent: true
            filters:
              - name: name
                values:
                  - ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*
              - name: virtualization-type
                values:
                  - hvm
            owners:
              - '099720109477'
    

    . Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntu = Aws.Ec2.GetAmi.Invoke(new()
        {
            MostRecent = true,
            Filters = new[]
            {
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "name",
                    Values = new[]
                    {
                        "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
                    },
                },
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "virtualization-type",
                    Values = new[]
                    {
                        "hvm",
                    },
                },
            },
            Owners = new[]
            {
                "099720109477",
            },
        });
    
        var asConf = new Aws.Ec2.LaunchConfiguration("asConf", new()
        {
            NamePrefix = "lc-example-",
            ImageId = ubuntu.Apply(getAmiResult => getAmiResult.Id),
            InstanceType = "t2.micro",
        });
    
        var bar = new Aws.AutoScaling.Group("bar", new()
        {
            LaunchConfiguration = asConf.Name,
            MinSize = 1,
            MaxSize = 2,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		ubuntu, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
    			MostRecent: pulumi.BoolRef(true),
    			Filters: []ec2.GetAmiFilter{
    				{
    					Name: "name",
    					Values: []string{
    						"ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
    					},
    				},
    				{
    					Name: "virtualization-type",
    					Values: []string{
    						"hvm",
    					},
    				},
    			},
    			Owners: []string{
    				"099720109477",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		asConf, err := ec2.NewLaunchConfiguration(ctx, "asConf", &ec2.LaunchConfigurationArgs{
    			NamePrefix:   pulumi.String("lc-example-"),
    			ImageId:      *pulumi.String(ubuntu.Id),
    			InstanceType: pulumi.String("t2.micro"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
    			LaunchConfiguration: asConf.Name,
    			MinSize:             pulumi.Int(1),
    			MaxSize:             pulumi.Int(2),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.ec2.Ec2Functions;
    import com.pulumi.aws.ec2.inputs.GetAmiArgs;
    import com.pulumi.aws.ec2.LaunchConfiguration;
    import com.pulumi.aws.ec2.LaunchConfigurationArgs;
    import com.pulumi.aws.autoscaling.Group;
    import com.pulumi.aws.autoscaling.GroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var ubuntu = Ec2Functions.getAmi(GetAmiArgs.builder()
                .mostRecent(true)
                .filters(            
                    GetAmiFilterArgs.builder()
                        .name("name")
                        .values("ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*")
                        .build(),
                    GetAmiFilterArgs.builder()
                        .name("virtualization-type")
                        .values("hvm")
                        .build())
                .owners("099720109477")
                .build());
    
            var asConf = new LaunchConfiguration("asConf", LaunchConfigurationArgs.builder()        
                .namePrefix("lc-example-")
                .imageId(ubuntu.applyValue(getAmiResult -> getAmiResult.id()))
                .instanceType("t2.micro")
                .build());
    
            var bar = new Group("bar", GroupArgs.builder()        
                .launchConfiguration(asConf.name())
                .minSize(1)
                .maxSize(2)
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    ubuntu = aws.ec2.get_ami(most_recent=True,
        filters=[
            aws.ec2.GetAmiFilterArgs(
                name="name",
                values=["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            ),
            aws.ec2.GetAmiFilterArgs(
                name="virtualization-type",
                values=["hvm"],
            ),
        ],
        owners=["099720109477"])
    as_conf = aws.ec2.LaunchConfiguration("asConf",
        name_prefix="lc-example-",
        image_id=ubuntu.id,
        instance_type="t2.micro")
    bar = aws.autoscaling.Group("bar",
        launch_configuration=as_conf.name,
        min_size=1,
        max_size=2)
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const ubuntu = aws.ec2.getAmi({
        mostRecent: true,
        filters: [
            {
                name: "name",
                values: ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            },
            {
                name: "virtualization-type",
                values: ["hvm"],
            },
        ],
        owners: ["099720109477"],
    });
    const asConf = new aws.ec2.LaunchConfiguration("asConf", {
        namePrefix: "lc-example-",
        imageId: ubuntu.then(ubuntu => ubuntu.id),
        instanceType: "t2.micro",
    });
    const bar = new aws.autoscaling.Group("bar", {
        launchConfiguration: asConf.name,
        minSize: 1,
        maxSize: 2,
    });
    
    resources:
      asConf:
        type: aws:ec2:LaunchConfiguration
        properties:
          namePrefix: lc-example-
          imageId: ${ubuntu.id}
          instanceType: t2.micro
      bar:
        type: aws:autoscaling:Group
        properties:
          launchConfiguration: ${asConf.name}
          minSize: 1
          maxSize: 2
    variables:
      ubuntu:
        fn::invoke:
          Function: aws:ec2:getAmi
          Arguments:
            mostRecent: true
            filters:
              - name: name
                values:
                  - ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*
              - name: virtualization-type
                values:
                  - hvm
            owners:
              - '099720109477'
    

    ] with this provider.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntu = Aws.Ec2.GetAmi.Invoke(new()
        {
            MostRecent = true,
            Filters = new[]
            {
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "name",
                    Values = new[]
                    {
                        "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
                    },
                },
                new Aws.Ec2.Inputs.GetAmiFilterInputArgs
                {
                    Name = "virtualization-type",
                    Values = new[]
                    {
                        "hvm",
                    },
                },
            },
            Owners = new[]
            {
                "099720109477",
            },
        });
    
        var asConf = new Aws.Ec2.LaunchConfiguration("asConf", new()
        {
            ImageId = ubuntu.Apply(getAmiResult => getAmiResult.Id),
            InstanceType = "m4.large",
            SpotPrice = "0.001",
        });
    
        var bar = new Aws.AutoScaling.Group("bar", new()
        {
            LaunchConfiguration = asConf.Name,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		ubuntu, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
    			MostRecent: pulumi.BoolRef(true),
    			Filters: []ec2.GetAmiFilter{
    				{
    					Name: "name",
    					Values: []string{
    						"ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
    					},
    				},
    				{
    					Name: "virtualization-type",
    					Values: []string{
    						"hvm",
    					},
    				},
    			},
    			Owners: []string{
    				"099720109477",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		asConf, err := ec2.NewLaunchConfiguration(ctx, "asConf", &ec2.LaunchConfigurationArgs{
    			ImageId:      *pulumi.String(ubuntu.Id),
    			InstanceType: pulumi.String("m4.large"),
    			SpotPrice:    pulumi.String("0.001"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
    			LaunchConfiguration: asConf.Name,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.ec2.Ec2Functions;
    import com.pulumi.aws.ec2.inputs.GetAmiArgs;
    import com.pulumi.aws.ec2.LaunchConfiguration;
    import com.pulumi.aws.ec2.LaunchConfigurationArgs;
    import com.pulumi.aws.autoscaling.Group;
    import com.pulumi.aws.autoscaling.GroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var ubuntu = Ec2Functions.getAmi(GetAmiArgs.builder()
                .mostRecent(true)
                .filters(            
                    GetAmiFilterArgs.builder()
                        .name("name")
                        .values("ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*")
                        .build(),
                    GetAmiFilterArgs.builder()
                        .name("virtualization-type")
                        .values("hvm")
                        .build())
                .owners("099720109477")
                .build());
    
            var asConf = new LaunchConfiguration("asConf", LaunchConfigurationArgs.builder()        
                .imageId(ubuntu.applyValue(getAmiResult -> getAmiResult.id()))
                .instanceType("m4.large")
                .spotPrice("0.001")
                .build());
    
            var bar = new Group("bar", GroupArgs.builder()        
                .launchConfiguration(asConf.name())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    ubuntu = aws.ec2.get_ami(most_recent=True,
        filters=[
            aws.ec2.GetAmiFilterArgs(
                name="name",
                values=["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            ),
            aws.ec2.GetAmiFilterArgs(
                name="virtualization-type",
                values=["hvm"],
            ),
        ],
        owners=["099720109477"])
    as_conf = aws.ec2.LaunchConfiguration("asConf",
        image_id=ubuntu.id,
        instance_type="m4.large",
        spot_price="0.001")
    bar = aws.autoscaling.Group("bar", launch_configuration=as_conf.name)
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const ubuntu = aws.ec2.getAmi({
        mostRecent: true,
        filters: [
            {
                name: "name",
                values: ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"],
            },
            {
                name: "virtualization-type",
                values: ["hvm"],
            },
        ],
        owners: ["099720109477"],
    });
    const asConf = new aws.ec2.LaunchConfiguration("asConf", {
        imageId: ubuntu.then(ubuntu => ubuntu.id),
        instanceType: "m4.large",
        spotPrice: "0.001",
    });
    const bar = new aws.autoscaling.Group("bar", {launchConfiguration: asConf.name});
    
    resources:
      asConf:
        type: aws:ec2:LaunchConfiguration
        properties:
          imageId: ${ubuntu.id}
          instanceType: m4.large
          spotPrice: '0.001'
      bar:
        type: aws:autoscaling:Group
        properties:
          launchConfiguration: ${asConf.name}
    variables:
      ubuntu:
        fn::invoke:
          Function: aws:ec2:getAmi
          Arguments:
            mostRecent: true
            filters:
              - name: name
                values:
                  - ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*
              - name: virtualization-type
                values:
                  - hvm
            owners:
              - '099720109477'
    

    Create LaunchConfiguration Resource

    new LaunchConfiguration(name: string, args: LaunchConfigurationArgs, opts?: CustomResourceOptions);
    @overload
    def LaunchConfiguration(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            associate_public_ip_address: Optional[bool] = None,
                            ebs_block_devices: Optional[Sequence[LaunchConfigurationEbsBlockDeviceArgs]] = None,
                            ebs_optimized: Optional[bool] = None,
                            enable_monitoring: Optional[bool] = None,
                            ephemeral_block_devices: Optional[Sequence[LaunchConfigurationEphemeralBlockDeviceArgs]] = None,
                            iam_instance_profile: Optional[str] = None,
                            image_id: Optional[str] = None,
                            instance_type: Optional[str] = None,
                            key_name: Optional[str] = None,
                            metadata_options: Optional[LaunchConfigurationMetadataOptionsArgs] = None,
                            name: Optional[str] = None,
                            name_prefix: Optional[str] = None,
                            placement_tenancy: Optional[str] = None,
                            root_block_device: Optional[LaunchConfigurationRootBlockDeviceArgs] = None,
                            security_groups: Optional[Sequence[str]] = None,
                            spot_price: Optional[str] = None,
                            user_data: Optional[str] = None,
                            user_data_base64: Optional[str] = None)
    @overload
    def LaunchConfiguration(resource_name: str,
                            args: LaunchConfigurationArgs,
                            opts: Optional[ResourceOptions] = None)
    func NewLaunchConfiguration(ctx *Context, name string, args LaunchConfigurationArgs, opts ...ResourceOption) (*LaunchConfiguration, error)
    public LaunchConfiguration(string name, LaunchConfigurationArgs args, CustomResourceOptions? opts = null)
    public LaunchConfiguration(String name, LaunchConfigurationArgs args)
    public LaunchConfiguration(String name, LaunchConfigurationArgs args, CustomResourceOptions options)
    
    type: aws:ec2:LaunchConfiguration
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args LaunchConfigurationArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args LaunchConfigurationArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args LaunchConfigurationArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args LaunchConfigurationArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args LaunchConfigurationArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    LaunchConfiguration Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The LaunchConfiguration resource accepts the following input properties:

    ImageId string
    The EC2 image ID to launch.
    InstanceType string

    The size of instance to launch.

    The following arguments are optional:

    AssociatePublicIpAddress bool
    Associate a public ip address with an instance in a VPC.
    EbsBlockDevices List<LaunchConfigurationEbsBlockDevice>
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    EbsOptimized bool
    If true, the launched EC2 instance will be EBS-optimized.
    EnableMonitoring bool
    Enables/disables detailed monitoring. This is enabled by default.
    EphemeralBlockDevices List<LaunchConfigurationEphemeralBlockDevice>
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    IamInstanceProfile string | string
    The name attribute of the IAM instance profile to associate with launched instances.
    KeyName string
    The key name that should be used for the instance.
    MetadataOptions LaunchConfigurationMetadataOptions
    The metadata options for the instance.
    Name string
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PlacementTenancy string
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    RootBlockDevice LaunchConfigurationRootBlockDevice
    Customize details about the root block device of the instance. See Block Devices below for details.
    SecurityGroups List<string>
    A list of associated security group IDS.
    SpotPrice string
    The maximum price to use for reserving spot instances.
    UserData string
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    UserDataBase64 string
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    ImageId string
    The EC2 image ID to launch.
    InstanceType string

    The size of instance to launch.

    The following arguments are optional:

    AssociatePublicIpAddress bool
    Associate a public ip address with an instance in a VPC.
    EbsBlockDevices []LaunchConfigurationEbsBlockDeviceArgs
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    EbsOptimized bool
    If true, the launched EC2 instance will be EBS-optimized.
    EnableMonitoring bool
    Enables/disables detailed monitoring. This is enabled by default.
    EphemeralBlockDevices []LaunchConfigurationEphemeralBlockDeviceArgs
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    IamInstanceProfile string | string
    The name attribute of the IAM instance profile to associate with launched instances.
    KeyName string
    The key name that should be used for the instance.
    MetadataOptions LaunchConfigurationMetadataOptionsArgs
    The metadata options for the instance.
    Name string
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PlacementTenancy string
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    RootBlockDevice LaunchConfigurationRootBlockDeviceArgs
    Customize details about the root block device of the instance. See Block Devices below for details.
    SecurityGroups []string
    A list of associated security group IDS.
    SpotPrice string
    The maximum price to use for reserving spot instances.
    UserData string
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    UserDataBase64 string
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    imageId String
    The EC2 image ID to launch.
    instanceType String

    The size of instance to launch.

    The following arguments are optional:

    associatePublicIpAddress Boolean
    Associate a public ip address with an instance in a VPC.
    ebsBlockDevices List<LaunchConfigurationEbsBlockDevice>
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebsOptimized Boolean
    If true, the launched EC2 instance will be EBS-optimized.
    enableMonitoring Boolean
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeralBlockDevices List<LaunchConfigurationEphemeralBlockDevice>
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iamInstanceProfile String | String
    The name attribute of the IAM instance profile to associate with launched instances.
    keyName String
    The key name that should be used for the instance.
    metadataOptions LaunchConfigurationMetadataOptions
    The metadata options for the instance.
    name String
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placementTenancy String
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    rootBlockDevice LaunchConfigurationRootBlockDevice
    Customize details about the root block device of the instance. See Block Devices below for details.
    securityGroups List<String>
    A list of associated security group IDS.
    spotPrice String
    The maximum price to use for reserving spot instances.
    userData String
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    userDataBase64 String
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    imageId string
    The EC2 image ID to launch.
    instanceType string

    The size of instance to launch.

    The following arguments are optional:

    associatePublicIpAddress boolean
    Associate a public ip address with an instance in a VPC.
    ebsBlockDevices LaunchConfigurationEbsBlockDevice[]
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebsOptimized boolean
    If true, the launched EC2 instance will be EBS-optimized.
    enableMonitoring boolean
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeralBlockDevices LaunchConfigurationEphemeralBlockDevice[]
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iamInstanceProfile string | InstanceProfile
    The name attribute of the IAM instance profile to associate with launched instances.
    keyName string
    The key name that should be used for the instance.
    metadataOptions LaunchConfigurationMetadataOptions
    The metadata options for the instance.
    name string
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placementTenancy string
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    rootBlockDevice LaunchConfigurationRootBlockDevice
    Customize details about the root block device of the instance. See Block Devices below for details.
    securityGroups string[]
    A list of associated security group IDS.
    spotPrice string
    The maximum price to use for reserving spot instances.
    userData string
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    userDataBase64 string
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    image_id str
    The EC2 image ID to launch.
    instance_type str

    The size of instance to launch.

    The following arguments are optional:

    associate_public_ip_address bool
    Associate a public ip address with an instance in a VPC.
    ebs_block_devices Sequence[LaunchConfigurationEbsBlockDeviceArgs]
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebs_optimized bool
    If true, the launched EC2 instance will be EBS-optimized.
    enable_monitoring bool
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeral_block_devices Sequence[LaunchConfigurationEphemeralBlockDeviceArgs]
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iam_instance_profile str | str
    The name attribute of the IAM instance profile to associate with launched instances.
    key_name str
    The key name that should be used for the instance.
    metadata_options LaunchConfigurationMetadataOptionsArgs
    The metadata options for the instance.
    name str
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placement_tenancy str
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    root_block_device LaunchConfigurationRootBlockDeviceArgs
    Customize details about the root block device of the instance. See Block Devices below for details.
    security_groups Sequence[str]
    A list of associated security group IDS.
    spot_price str
    The maximum price to use for reserving spot instances.
    user_data str
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    user_data_base64 str
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    imageId String
    The EC2 image ID to launch.
    instanceType String

    The size of instance to launch.

    The following arguments are optional:

    associatePublicIpAddress Boolean
    Associate a public ip address with an instance in a VPC.
    ebsBlockDevices List<Property Map>
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebsOptimized Boolean
    If true, the launched EC2 instance will be EBS-optimized.
    enableMonitoring Boolean
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeralBlockDevices List<Property Map>
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iamInstanceProfile String |
    The name attribute of the IAM instance profile to associate with launched instances.
    keyName String
    The key name that should be used for the instance.
    metadataOptions Property Map
    The metadata options for the instance.
    name String
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placementTenancy String
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    rootBlockDevice Property Map
    Customize details about the root block device of the instance. See Block Devices below for details.
    securityGroups List<String>
    A list of associated security group IDS.
    spotPrice String
    The maximum price to use for reserving spot instances.
    userData String
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    userDataBase64 String
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the LaunchConfiguration resource produces the following output properties:

    Arn string
    The Amazon Resource Name of the launch configuration.
    Id string
    The provider-assigned unique ID for this managed resource.
    Arn string
    The Amazon Resource Name of the launch configuration.
    Id string
    The provider-assigned unique ID for this managed resource.
    arn String
    The Amazon Resource Name of the launch configuration.
    id String
    The provider-assigned unique ID for this managed resource.
    arn string
    The Amazon Resource Name of the launch configuration.
    id string
    The provider-assigned unique ID for this managed resource.
    arn str
    The Amazon Resource Name of the launch configuration.
    id str
    The provider-assigned unique ID for this managed resource.
    arn String
    The Amazon Resource Name of the launch configuration.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing LaunchConfiguration Resource

    Get an existing LaunchConfiguration resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: LaunchConfigurationState, opts?: CustomResourceOptions): LaunchConfiguration
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            arn: Optional[str] = None,
            associate_public_ip_address: Optional[bool] = None,
            ebs_block_devices: Optional[Sequence[LaunchConfigurationEbsBlockDeviceArgs]] = None,
            ebs_optimized: Optional[bool] = None,
            enable_monitoring: Optional[bool] = None,
            ephemeral_block_devices: Optional[Sequence[LaunchConfigurationEphemeralBlockDeviceArgs]] = None,
            iam_instance_profile: Optional[str] = None,
            image_id: Optional[str] = None,
            instance_type: Optional[str] = None,
            key_name: Optional[str] = None,
            metadata_options: Optional[LaunchConfigurationMetadataOptionsArgs] = None,
            name: Optional[str] = None,
            name_prefix: Optional[str] = None,
            placement_tenancy: Optional[str] = None,
            root_block_device: Optional[LaunchConfigurationRootBlockDeviceArgs] = None,
            security_groups: Optional[Sequence[str]] = None,
            spot_price: Optional[str] = None,
            user_data: Optional[str] = None,
            user_data_base64: Optional[str] = None) -> LaunchConfiguration
    func GetLaunchConfiguration(ctx *Context, name string, id IDInput, state *LaunchConfigurationState, opts ...ResourceOption) (*LaunchConfiguration, error)
    public static LaunchConfiguration Get(string name, Input<string> id, LaunchConfigurationState? state, CustomResourceOptions? opts = null)
    public static LaunchConfiguration get(String name, Output<String> id, LaunchConfigurationState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Arn string
    The Amazon Resource Name of the launch configuration.
    AssociatePublicIpAddress bool
    Associate a public ip address with an instance in a VPC.
    EbsBlockDevices List<LaunchConfigurationEbsBlockDevice>
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    EbsOptimized bool
    If true, the launched EC2 instance will be EBS-optimized.
    EnableMonitoring bool
    Enables/disables detailed monitoring. This is enabled by default.
    EphemeralBlockDevices List<LaunchConfigurationEphemeralBlockDevice>
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    IamInstanceProfile string | string
    The name attribute of the IAM instance profile to associate with launched instances.
    ImageId string
    The EC2 image ID to launch.
    InstanceType string

    The size of instance to launch.

    The following arguments are optional:

    KeyName string
    The key name that should be used for the instance.
    MetadataOptions LaunchConfigurationMetadataOptions
    The metadata options for the instance.
    Name string
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PlacementTenancy string
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    RootBlockDevice LaunchConfigurationRootBlockDevice
    Customize details about the root block device of the instance. See Block Devices below for details.
    SecurityGroups List<string>
    A list of associated security group IDS.
    SpotPrice string
    The maximum price to use for reserving spot instances.
    UserData string
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    UserDataBase64 string
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    Arn string
    The Amazon Resource Name of the launch configuration.
    AssociatePublicIpAddress bool
    Associate a public ip address with an instance in a VPC.
    EbsBlockDevices []LaunchConfigurationEbsBlockDeviceArgs
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    EbsOptimized bool
    If true, the launched EC2 instance will be EBS-optimized.
    EnableMonitoring bool
    Enables/disables detailed monitoring. This is enabled by default.
    EphemeralBlockDevices []LaunchConfigurationEphemeralBlockDeviceArgs
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    IamInstanceProfile string | string
    The name attribute of the IAM instance profile to associate with launched instances.
    ImageId string
    The EC2 image ID to launch.
    InstanceType string

    The size of instance to launch.

    The following arguments are optional:

    KeyName string
    The key name that should be used for the instance.
    MetadataOptions LaunchConfigurationMetadataOptionsArgs
    The metadata options for the instance.
    Name string
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    NamePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    PlacementTenancy string
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    RootBlockDevice LaunchConfigurationRootBlockDeviceArgs
    Customize details about the root block device of the instance. See Block Devices below for details.
    SecurityGroups []string
    A list of associated security group IDS.
    SpotPrice string
    The maximum price to use for reserving spot instances.
    UserData string
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    UserDataBase64 string
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    arn String
    The Amazon Resource Name of the launch configuration.
    associatePublicIpAddress Boolean
    Associate a public ip address with an instance in a VPC.
    ebsBlockDevices List<LaunchConfigurationEbsBlockDevice>
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebsOptimized Boolean
    If true, the launched EC2 instance will be EBS-optimized.
    enableMonitoring Boolean
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeralBlockDevices List<LaunchConfigurationEphemeralBlockDevice>
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iamInstanceProfile String | String
    The name attribute of the IAM instance profile to associate with launched instances.
    imageId String
    The EC2 image ID to launch.
    instanceType String

    The size of instance to launch.

    The following arguments are optional:

    keyName String
    The key name that should be used for the instance.
    metadataOptions LaunchConfigurationMetadataOptions
    The metadata options for the instance.
    name String
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placementTenancy String
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    rootBlockDevice LaunchConfigurationRootBlockDevice
    Customize details about the root block device of the instance. See Block Devices below for details.
    securityGroups List<String>
    A list of associated security group IDS.
    spotPrice String
    The maximum price to use for reserving spot instances.
    userData String
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    userDataBase64 String
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    arn string
    The Amazon Resource Name of the launch configuration.
    associatePublicIpAddress boolean
    Associate a public ip address with an instance in a VPC.
    ebsBlockDevices LaunchConfigurationEbsBlockDevice[]
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebsOptimized boolean
    If true, the launched EC2 instance will be EBS-optimized.
    enableMonitoring boolean
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeralBlockDevices LaunchConfigurationEphemeralBlockDevice[]
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iamInstanceProfile string | InstanceProfile
    The name attribute of the IAM instance profile to associate with launched instances.
    imageId string
    The EC2 image ID to launch.
    instanceType string

    The size of instance to launch.

    The following arguments are optional:

    keyName string
    The key name that should be used for the instance.
    metadataOptions LaunchConfigurationMetadataOptions
    The metadata options for the instance.
    name string
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    namePrefix string
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placementTenancy string
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    rootBlockDevice LaunchConfigurationRootBlockDevice
    Customize details about the root block device of the instance. See Block Devices below for details.
    securityGroups string[]
    A list of associated security group IDS.
    spotPrice string
    The maximum price to use for reserving spot instances.
    userData string
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    userDataBase64 string
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    arn str
    The Amazon Resource Name of the launch configuration.
    associate_public_ip_address bool
    Associate a public ip address with an instance in a VPC.
    ebs_block_devices Sequence[LaunchConfigurationEbsBlockDeviceArgs]
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebs_optimized bool
    If true, the launched EC2 instance will be EBS-optimized.
    enable_monitoring bool
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeral_block_devices Sequence[LaunchConfigurationEphemeralBlockDeviceArgs]
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iam_instance_profile str | str
    The name attribute of the IAM instance profile to associate with launched instances.
    image_id str
    The EC2 image ID to launch.
    instance_type str

    The size of instance to launch.

    The following arguments are optional:

    key_name str
    The key name that should be used for the instance.
    metadata_options LaunchConfigurationMetadataOptionsArgs
    The metadata options for the instance.
    name str
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    name_prefix str
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placement_tenancy str
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    root_block_device LaunchConfigurationRootBlockDeviceArgs
    Customize details about the root block device of the instance. See Block Devices below for details.
    security_groups Sequence[str]
    A list of associated security group IDS.
    spot_price str
    The maximum price to use for reserving spot instances.
    user_data str
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    user_data_base64 str
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
    arn String
    The Amazon Resource Name of the launch configuration.
    associatePublicIpAddress Boolean
    Associate a public ip address with an instance in a VPC.
    ebsBlockDevices List<Property Map>
    Additional EBS block devices to attach to the instance. See Block Devices below for details.
    ebsOptimized Boolean
    If true, the launched EC2 instance will be EBS-optimized.
    enableMonitoring Boolean
    Enables/disables detailed monitoring. This is enabled by default.
    ephemeralBlockDevices List<Property Map>
    Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
    iamInstanceProfile String |
    The name attribute of the IAM instance profile to associate with launched instances.
    imageId String
    The EC2 image ID to launch.
    instanceType String

    The size of instance to launch.

    The following arguments are optional:

    keyName String
    The key name that should be used for the instance.
    metadataOptions Property Map
    The metadata options for the instance.
    name String
    The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with name_prefix.
    namePrefix String
    Creates a unique name beginning with the specified prefix. Conflicts with name.
    placementTenancy String
    The tenancy of the instance. Valid values are default or dedicated, see AWS's Create Launch Configuration for more details.
    rootBlockDevice Property Map
    Customize details about the root block device of the instance. See Block Devices below for details.
    securityGroups List<String>
    A list of associated security group IDS.
    spotPrice String
    The maximum price to use for reserving spot instances.
    userData String
    The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
    userDataBase64 String
    Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.

    Supporting Types

    LaunchConfigurationEbsBlockDevice, LaunchConfigurationEbsBlockDeviceArgs

    deviceName String
    deleteOnTermination Boolean
    encrypted Boolean
    iops Integer
    noDevice Boolean
    snapshotId String
    throughput Integer
    volumeSize Integer
    volumeType String
    deviceName string
    deleteOnTermination boolean
    encrypted boolean
    iops number
    noDevice boolean
    snapshotId string
    throughput number
    volumeSize number
    volumeType string
    deviceName String
    deleteOnTermination Boolean
    encrypted Boolean
    iops Number
    noDevice Boolean
    snapshotId String
    throughput Number
    volumeSize Number
    volumeType String

    LaunchConfigurationEphemeralBlockDevice, LaunchConfigurationEphemeralBlockDeviceArgs

    deviceName String
    noDevice Boolean
    virtualName String
    deviceName string
    noDevice boolean
    virtualName string
    deviceName String
    noDevice Boolean
    virtualName String

    LaunchConfigurationMetadataOptions, LaunchConfigurationMetadataOptionsArgs

    HttpEndpoint string
    The state of the metadata service: enabled, disabled.
    HttpPutResponseHopLimit int
    The desired HTTP PUT response hop limit for instance metadata requests.
    HttpTokens string
    If session tokens are required: optional, required.
    HttpEndpoint string
    The state of the metadata service: enabled, disabled.
    HttpPutResponseHopLimit int
    The desired HTTP PUT response hop limit for instance metadata requests.
    HttpTokens string
    If session tokens are required: optional, required.
    httpEndpoint String
    The state of the metadata service: enabled, disabled.
    httpPutResponseHopLimit Integer
    The desired HTTP PUT response hop limit for instance metadata requests.
    httpTokens String
    If session tokens are required: optional, required.
    httpEndpoint string
    The state of the metadata service: enabled, disabled.
    httpPutResponseHopLimit number
    The desired HTTP PUT response hop limit for instance metadata requests.
    httpTokens string
    If session tokens are required: optional, required.
    http_endpoint str
    The state of the metadata service: enabled, disabled.
    http_put_response_hop_limit int
    The desired HTTP PUT response hop limit for instance metadata requests.
    http_tokens str
    If session tokens are required: optional, required.
    httpEndpoint String
    The state of the metadata service: enabled, disabled.
    httpPutResponseHopLimit Number
    The desired HTTP PUT response hop limit for instance metadata requests.
    httpTokens String
    If session tokens are required: optional, required.

    LaunchConfigurationRootBlockDevice, LaunchConfigurationRootBlockDeviceArgs

    deleteOnTermination Boolean
    encrypted Boolean
    iops Integer
    throughput Integer
    volumeSize Integer
    volumeType String
    deleteOnTermination boolean
    encrypted boolean
    iops number
    throughput number
    volumeSize number
    volumeType string
    deleteOnTermination Boolean
    encrypted Boolean
    iops Number
    throughput Number
    volumeSize Number
    volumeType String

    Import

    Using pulumi import, import launch configurations using the name. For example:

     $ pulumi import aws:ec2/launchConfiguration:LaunchConfiguration as_conf pulumi-lg-123456
    

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.23.0 published on Thursday, Feb 22, 2024 by Pulumi