Try AWS Native preview for resources not in the classic version.
aws.ec2.LaunchConfiguration
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
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
withaws.autoscaling.Group
, it is recommended to use thename_prefix
(Optional) instead of thename
(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 theup
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 bestandard
,gp2
,gp3
,st1
,sc1
orio1
.volume_size
- (Optional) The size of the volume in gigabytes.iops
- (Optional) The amount of provisioned IOPS. This must be set with avolume_type
of"io1"
.throughput
- (Optional) The throughput (MiBps) to provision for agp3
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 tofalse
.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 totrue
.encrypted
- (Optional) Whether the volume should be encrypted or not. Defaults tofalse
.iops
- (Optional) The amount of provisioned IOPS. This must be set with avolume_type
ofio1
.throughput
- (Optional) The throughput (MiBps) to provision for agp3
volume.volume_size
- (Optional) The size of the volume in gigabytes.volume_type
- (Optional) The type of volume. Can bestandard
,gp2
,gp3
,st1
,sc1
orio1
.
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:
- Image
Id string The EC2 image ID to launch.
- Instance
Type string The size of instance to launch.
The following arguments are optional:
- Associate
Public boolIp Address Associate a public ip address with an instance in a VPC.
- Ebs
Block List<LaunchDevices Configuration Ebs Block Device> 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 List<LaunchDevices Configuration Ephemeral Block Device> Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- Iam
Instance string | stringProfile The name attribute of the IAM instance profile to associate with launched instances.
- Key
Name string The key name that should be used for the instance.
- Metadata
Options LaunchConfiguration Metadata Options 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
.- Name
Prefix string Creates a unique name beginning with the specified prefix. Conflicts with
name
.- Placement
Tenancy string The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- Root
Block LaunchDevice Configuration Root Block Device Customize details about the root block device of the instance. See Block Devices below for details.
- Security
Groups List<string> A list of associated security group IDS.
- Spot
Price string The maximum price to use for reserving spot instances.
- User
Data string 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 stringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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 string The EC2 image ID to launch.
- Instance
Type string The size of instance to launch.
The following arguments are optional:
- Associate
Public boolIp Address Associate a public ip address with an instance in a VPC.
- Ebs
Block []LaunchDevices Configuration Ebs Block Device Args 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 []LaunchDevices Configuration Ephemeral Block Device Args Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- Iam
Instance string | stringProfile The name attribute of the IAM instance profile to associate with launched instances.
- Key
Name string The key name that should be used for the instance.
- Metadata
Options LaunchConfiguration Metadata Options Args 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
.- Name
Prefix string Creates a unique name beginning with the specified prefix. Conflicts with
name
.- Placement
Tenancy string The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- Root
Block LaunchDevice Configuration Root Block Device Args Customize details about the root block device of the instance. See Block Devices below for details.
- Security
Groups []string A list of associated security group IDS.
- Spot
Price string The maximum price to use for reserving spot instances.
- User
Data string 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 stringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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 String The EC2 image ID to launch.
- instance
Type String The size of instance to launch.
The following arguments are optional:
- associate
Public BooleanIp Address Associate a public ip address with an instance in a VPC.
- ebs
Block List<LaunchDevices Configuration Ebs Block Device> Additional EBS block devices to attach to the instance. See Block Devices below for details.
- ebs
Optimized Boolean If true, the launched EC2 instance will be EBS-optimized.
- enable
Monitoring Boolean Enables/disables detailed monitoring. This is enabled by default.
- ephemeral
Block List<LaunchDevices Configuration Ephemeral Block Device> Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam
Instance String | StringProfile The name attribute of the IAM instance profile to associate with launched instances.
- key
Name String The key name that should be used for the instance.
- metadata
Options LaunchConfiguration Metadata Options 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
.- name
Prefix String Creates a unique name beginning with the specified prefix. Conflicts with
name
.- placement
Tenancy String The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- root
Block LaunchDevice Configuration Root Block Device Customize details about the root block device of the instance. See Block Devices below for details.
- security
Groups List<String> A list of associated security group IDS.
- spot
Price String The maximum price to use for reserving spot instances.
- user
Data String 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 StringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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 string The EC2 image ID to launch.
- instance
Type string The size of instance to launch.
The following arguments are optional:
- associate
Public booleanIp Address Associate a public ip address with an instance in a VPC.
- ebs
Block LaunchDevices Configuration Ebs Block Device[] Additional EBS block devices to attach to the instance. See Block Devices below for details.
- ebs
Optimized boolean If true, the launched EC2 instance will be EBS-optimized.
- enable
Monitoring boolean Enables/disables detailed monitoring. This is enabled by default.
- ephemeral
Block LaunchDevices Configuration Ephemeral Block Device[] Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam
Instance string | InstanceProfile Profile The name attribute of the IAM instance profile to associate with launched instances.
- key
Name string The key name that should be used for the instance.
- metadata
Options LaunchConfiguration Metadata Options 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
.- name
Prefix string Creates a unique name beginning with the specified prefix. Conflicts with
name
.- placement
Tenancy string The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- root
Block LaunchDevice Configuration Root Block Device Customize details about the root block device of the instance. See Block Devices below for details.
- security
Groups string[] A list of associated security group IDS.
- spot
Price string The maximum price to use for reserving spot instances.
- user
Data string 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 stringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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_ boolip_ address Associate a public ip address with an instance in a VPC.
- ebs_
block_ Sequence[Launchdevices Configuration Ebs Block Device Args] 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_ Sequence[Launchdevices Configuration Ephemeral Block Device Args] Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam_
instance_ str | strprofile 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 LaunchConfiguration Metadata Options Args 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
ordedicated
, see AWS's Create Launch Configuration for more details.- root_
block_ Launchdevice Configuration Root Block Device Args 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_ strbase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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 String The EC2 image ID to launch.
- instance
Type String The size of instance to launch.
The following arguments are optional:
- associate
Public BooleanIp Address Associate a public ip address with an instance in a VPC.
- ebs
Block List<Property Map>Devices Additional EBS block devices to attach to the instance. See Block Devices below for details.
- ebs
Optimized Boolean If true, the launched EC2 instance will be EBS-optimized.
- enable
Monitoring Boolean Enables/disables detailed monitoring. This is enabled by default.
- ephemeral
Block List<Property Map>Devices Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam
Instance String |Profile The name attribute of the IAM instance profile to associate with launched instances.
- key
Name String The key name that should be used for the instance.
- metadata
Options 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
.- name
Prefix String Creates a unique name beginning with the specified prefix. Conflicts with
name
.- placement
Tenancy String The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- root
Block Property MapDevice Customize details about the root block device of the instance. See Block Devices below for details.
- security
Groups List<String> A list of associated security group IDS.
- spot
Price String The maximum price to use for reserving spot instances.
- user
Data String 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 StringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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:
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.
- Arn string
The Amazon Resource Name of the launch configuration.
- Associate
Public boolIp Address Associate a public ip address with an instance in a VPC.
- Ebs
Block List<LaunchDevices Configuration Ebs Block Device> 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 List<LaunchDevices Configuration Ephemeral Block Device> Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- Iam
Instance string | stringProfile The name attribute of the IAM instance profile to associate with launched instances.
- Image
Id string The EC2 image ID to launch.
- Instance
Type string The size of instance to launch.
The following arguments are optional:
- Key
Name string The key name that should be used for the instance.
- Metadata
Options LaunchConfiguration Metadata Options 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
.- Name
Prefix string Creates a unique name beginning with the specified prefix. Conflicts with
name
.- Placement
Tenancy string The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- Root
Block LaunchDevice Configuration Root Block Device Customize details about the root block device of the instance. See Block Devices below for details.
- Security
Groups List<string> A list of associated security group IDS.
- Spot
Price string The maximum price to use for reserving spot instances.
- User
Data string 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 stringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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.
- Associate
Public boolIp Address Associate a public ip address with an instance in a VPC.
- Ebs
Block []LaunchDevices Configuration Ebs Block Device Args 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 []LaunchDevices Configuration Ephemeral Block Device Args Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- Iam
Instance string | stringProfile The name attribute of the IAM instance profile to associate with launched instances.
- Image
Id string The EC2 image ID to launch.
- Instance
Type string The size of instance to launch.
The following arguments are optional:
- Key
Name string The key name that should be used for the instance.
- Metadata
Options LaunchConfiguration Metadata Options Args 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
.- Name
Prefix string Creates a unique name beginning with the specified prefix. Conflicts with
name
.- Placement
Tenancy string The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- Root
Block LaunchDevice Configuration Root Block Device Args Customize details about the root block device of the instance. See Block Devices below for details.
- Security
Groups []string A list of associated security group IDS.
- Spot
Price string The maximum price to use for reserving spot instances.
- User
Data string 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 stringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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.
- associate
Public BooleanIp Address Associate a public ip address with an instance in a VPC.
- ebs
Block List<LaunchDevices Configuration Ebs Block Device> Additional EBS block devices to attach to the instance. See Block Devices below for details.
- ebs
Optimized Boolean If true, the launched EC2 instance will be EBS-optimized.
- enable
Monitoring Boolean Enables/disables detailed monitoring. This is enabled by default.
- ephemeral
Block List<LaunchDevices Configuration Ephemeral Block Device> Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam
Instance String | StringProfile The name attribute of the IAM instance profile to associate with launched instances.
- image
Id String The EC2 image ID to launch.
- instance
Type String The size of instance to launch.
The following arguments are optional:
- key
Name String The key name that should be used for the instance.
- metadata
Options LaunchConfiguration Metadata Options 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
.- name
Prefix String Creates a unique name beginning with the specified prefix. Conflicts with
name
.- placement
Tenancy String The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- root
Block LaunchDevice Configuration Root Block Device Customize details about the root block device of the instance. See Block Devices below for details.
- security
Groups List<String> A list of associated security group IDS.
- spot
Price String The maximum price to use for reserving spot instances.
- user
Data String 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 StringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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.
- associate
Public booleanIp Address Associate a public ip address with an instance in a VPC.
- ebs
Block LaunchDevices Configuration Ebs Block Device[] Additional EBS block devices to attach to the instance. See Block Devices below for details.
- ebs
Optimized boolean If true, the launched EC2 instance will be EBS-optimized.
- enable
Monitoring boolean Enables/disables detailed monitoring. This is enabled by default.
- ephemeral
Block LaunchDevices Configuration Ephemeral Block Device[] Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam
Instance string | InstanceProfile Profile The name attribute of the IAM instance profile to associate with launched instances.
- image
Id string The EC2 image ID to launch.
- instance
Type string The size of instance to launch.
The following arguments are optional:
- key
Name string The key name that should be used for the instance.
- metadata
Options LaunchConfiguration Metadata Options 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
.- name
Prefix string Creates a unique name beginning with the specified prefix. Conflicts with
name
.- placement
Tenancy string The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- root
Block LaunchDevice Configuration Root Block Device Customize details about the root block device of the instance. See Block Devices below for details.
- security
Groups string[] A list of associated security group IDS.
- spot
Price string The maximum price to use for reserving spot instances.
- user
Data string 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 stringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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_ boolip_ address Associate a public ip address with an instance in a VPC.
- ebs_
block_ Sequence[Launchdevices Configuration Ebs Block Device Args] 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_ Sequence[Launchdevices Configuration Ephemeral Block Device Args] Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam_
instance_ str | strprofile 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 LaunchConfiguration Metadata Options Args 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
ordedicated
, see AWS's Create Launch Configuration for more details.- root_
block_ Launchdevice Configuration Root Block Device Args 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_ strbase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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.
- associate
Public BooleanIp Address Associate a public ip address with an instance in a VPC.
- ebs
Block List<Property Map>Devices Additional EBS block devices to attach to the instance. See Block Devices below for details.
- ebs
Optimized Boolean If true, the launched EC2 instance will be EBS-optimized.
- enable
Monitoring Boolean Enables/disables detailed monitoring. This is enabled by default.
- ephemeral
Block List<Property Map>Devices Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details.
- iam
Instance String |Profile The name attribute of the IAM instance profile to associate with launched instances.
- image
Id String The EC2 image ID to launch.
- instance
Type String The size of instance to launch.
The following arguments are optional:
- key
Name String The key name that should be used for the instance.
- metadata
Options 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
.- name
Prefix String Creates a unique name beginning with the specified prefix. Conflicts with
name
.- placement
Tenancy String The tenancy of the instance. Valid values are
default
ordedicated
, see AWS's Create Launch Configuration for more details.- root
Block Property MapDevice Customize details about the root block device of the instance. See Block Devices below for details.
- security
Groups List<String> A list of associated security group IDS.
- spot
Price String The maximum price to use for reserving spot instances.
- user
Data String 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 StringBase64 Can be used instead of
user_data
to pass base64-encoded binary data directly. Use this instead ofuser_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
- Device
Name string - Delete
On boolTermination - Encrypted bool
- Iops int
- No
Device bool - Snapshot
Id string - Throughput int
- Volume
Size int - Volume
Type string
- Device
Name string - Delete
On boolTermination - Encrypted bool
- Iops int
- No
Device bool - Snapshot
Id string - Throughput int
- Volume
Size int - Volume
Type string
- device
Name String - delete
On BooleanTermination - encrypted Boolean
- iops Integer
- no
Device Boolean - snapshot
Id String - throughput Integer
- volume
Size Integer - volume
Type String
- device
Name string - delete
On booleanTermination - encrypted boolean
- iops number
- no
Device boolean - snapshot
Id string - throughput number
- volume
Size number - volume
Type string
- device_
name str - delete_
on_ booltermination - encrypted bool
- iops int
- no_
device bool - snapshot_
id str - throughput int
- volume_
size int - volume_
type str
- device
Name String - delete
On BooleanTermination - encrypted Boolean
- iops Number
- no
Device Boolean - snapshot
Id String - throughput Number
- volume
Size Number - volume
Type String
LaunchConfigurationEphemeralBlockDevice, LaunchConfigurationEphemeralBlockDeviceArgs
- Device
Name string - No
Device bool - Virtual
Name string
- Device
Name string - No
Device bool - Virtual
Name string
- device
Name String - no
Device Boolean - virtual
Name String
- device
Name string - no
Device boolean - virtual
Name string
- device_
name str - no_
device bool - virtual_
name str
- device
Name String - no
Device Boolean - virtual
Name String
LaunchConfigurationMetadataOptions, LaunchConfigurationMetadataOptionsArgs
- Http
Endpoint string The state of the metadata service:
enabled
,disabled
.- Http
Put intResponse Hop Limit The desired HTTP PUT response hop limit for instance metadata requests.
- Http
Tokens string If session tokens are required:
optional
,required
.
- Http
Endpoint string The state of the metadata service:
enabled
,disabled
.- Http
Put intResponse Hop Limit The desired HTTP PUT response hop limit for instance metadata requests.
- Http
Tokens string If session tokens are required:
optional
,required
.
- http
Endpoint String The state of the metadata service:
enabled
,disabled
.- http
Put IntegerResponse Hop Limit The desired HTTP PUT response hop limit for instance metadata requests.
- http
Tokens String If session tokens are required:
optional
,required
.
- http
Endpoint string The state of the metadata service:
enabled
,disabled
.- http
Put numberResponse Hop Limit The desired HTTP PUT response hop limit for instance metadata requests.
- http
Tokens string If session tokens are required:
optional
,required
.
- http_
endpoint str The state of the metadata service:
enabled
,disabled
.- http_
put_ intresponse_ hop_ limit The desired HTTP PUT response hop limit for instance metadata requests.
- http_
tokens str If session tokens are required:
optional
,required
.
- http
Endpoint String The state of the metadata service:
enabled
,disabled
.- http
Put NumberResponse Hop Limit The desired HTTP PUT response hop limit for instance metadata requests.
- http
Tokens String If session tokens are required:
optional
,required
.
LaunchConfigurationRootBlockDevice, LaunchConfigurationRootBlockDeviceArgs
- Delete
On boolTermination - Encrypted bool
- Iops int
- Throughput int
- Volume
Size int - Volume
Type string
- Delete
On boolTermination - Encrypted bool
- Iops int
- Throughput int
- Volume
Size int - Volume
Type string
- delete
On BooleanTermination - encrypted Boolean
- iops Integer
- throughput Integer
- volume
Size Integer - volume
Type String
- delete
On booleanTermination - encrypted boolean
- iops number
- throughput number
- volume
Size number - volume
Type string
- delete_
on_ booltermination - encrypted bool
- iops int
- throughput int
- volume_
size int - volume_
type str
- delete
On BooleanTermination - encrypted Boolean
- iops Number
- throughput Number
- volume
Size Number - volume
Type String
Import
Using pulumi import
, import launch configurations using the name
. For example:
$ pulumi import aws:ec2/launchConfiguration:LaunchConfiguration as_conf TODO-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.
Try AWS Native preview for resources not in the classic version.