get Ecs Launch Templates
This data source provides the Ecs Launch Templates of the current Alibaba Cloud user.
NOTE: Available since v1.120.0.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const _default = alicloud.getZones({
availableDiskCategory: "cloud_efficiency",
availableResourceCreation: "VSwitch",
});
const defaultGetInstanceTypes = _default.then(_default => alicloud.ecs.getInstanceTypes({
availabilityZone: _default.zones?.[0]?.id,
}));
const defaultGetImages = alicloud.ecs.getImages({
nameRegex: "^ubuntu_18.*64",
owners: "system",
});
const defaultNetwork = new alicloud.vpc.Network("default", {
vpcName: "terraform-example",
cidrBlock: "172.17.3.0/24",
});
const defaultSwitch = new alicloud.vpc.Switch("default", {
vswitchName: "terraform-example",
cidrBlock: "172.17.3.0/24",
vpcId: defaultNetwork.id,
zoneId: _default.then(_default => _default.zones?.[0]?.id),
});
const defaultSecurityGroup = new alicloud.ecs.SecurityGroup("default", {
name: "terraform-example",
vpcId: defaultNetwork.id,
});
const defaultEcsLaunchTemplate = new alicloud.ecs.EcsLaunchTemplate("default", {
launchTemplateName: "terraform-example",
description: "terraform-example",
imageId: defaultGetImages.then(defaultGetImages => defaultGetImages.images?.[0]?.id),
hostName: "terraform-example",
instanceChargeType: "PrePaid",
instanceName: "terraform-example",
instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes => defaultGetInstanceTypes.instanceTypes?.[0]?.id),
internetChargeType: "PayByBandwidth",
internetMaxBandwidthIn: 5,
internetMaxBandwidthOut: 5,
ioOptimized: "optimized",
keyPairName: "key_pair_name",
ramRoleName: "ram_role_name",
networkType: "vpc",
securityEnhancementStrategy: "Active",
spotPriceLimit: 5,
spotStrategy: "SpotWithPriceLimit",
securityGroupIds: [defaultSecurityGroup.id],
systemDisk: {
category: "cloud_ssd",
description: "Test For Terraform",
name: "terraform-example",
size: 40,
deleteWithInstance: false,
},
userData: "xxxxxxx",
vswitchId: defaultSwitch.id,
vpcId: defaultNetwork.id,
zoneId: _default.then(_default => _default.zones?.[0]?.id),
templateTags: {
Create: "Terraform",
For: "example",
},
networkInterfaces: {
name: "eth0",
description: "hello1",
primaryIp: "10.0.0.2",
securityGroupId: defaultSecurityGroup.id,
vswitchId: defaultSwitch.id,
},
dataDisks: [
{
name: "disk1",
description: "description",
deleteWithInstance: true,
category: "cloud",
encrypted: false,
performanceLevel: "PL0",
size: 20,
},
{
name: "disk2",
description: "description2",
deleteWithInstance: true,
category: "cloud",
encrypted: false,
performanceLevel: "PL0",
size: 20,
},
],
});
const example = alicloud.ecs.getEcsLaunchTemplatesOutput({
ids: [defaultEcsLaunchTemplate.id],
});
export const firstEcsLaunchTemplateId = example.apply(example => example.templates?.[0]?.id);
import pulumi
import pulumi_alicloud as alicloud
default = alicloud.get_zones(available_disk_category="cloud_efficiency",
available_resource_creation="VSwitch")
default_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id)
default_get_images = alicloud.ecs.get_images(name_regex="^ubuntu_18.*64",
owners="system")
default_network = alicloud.vpc.Network("default",
vpc_name="terraform-example",
cidr_block="172.17.3.0/24")
default_switch = alicloud.vpc.Switch("default",
vswitch_name="terraform-example",
cidr_block="172.17.3.0/24",
vpc_id=default_network.id,
zone_id=default.zones[0].id)
default_security_group = alicloud.ecs.SecurityGroup("default",
name="terraform-example",
vpc_id=default_network.id)
default_ecs_launch_template = alicloud.ecs.EcsLaunchTemplate("default",
launch_template_name="terraform-example",
description="terraform-example",
image_id=default_get_images.images[0].id,
host_name="terraform-example",
instance_charge_type="PrePaid",
instance_name="terraform-example",
instance_type=default_get_instance_types.instance_types[0].id,
internet_charge_type="PayByBandwidth",
internet_max_bandwidth_in=5,
internet_max_bandwidth_out=5,
io_optimized="optimized",
key_pair_name="key_pair_name",
ram_role_name="ram_role_name",
network_type="vpc",
security_enhancement_strategy="Active",
spot_price_limit=5,
spot_strategy="SpotWithPriceLimit",
security_group_ids=[default_security_group.id],
system_disk={
"category": "cloud_ssd",
"description": "Test For Terraform",
"name": "terraform-example",
"size": 40,
"delete_with_instance": False,
},
user_data="xxxxxxx",
vswitch_id=default_switch.id,
vpc_id=default_network.id,
zone_id=default.zones[0].id,
template_tags={
"Create": "Terraform",
"For": "example",
},
network_interfaces={
"name": "eth0",
"description": "hello1",
"primary_ip": "10.0.0.2",
"security_group_id": default_security_group.id,
"vswitch_id": default_switch.id,
},
data_disks=[
{
"name": "disk1",
"description": "description",
"delete_with_instance": True,
"category": "cloud",
"encrypted": False,
"performance_level": "PL0",
"size": 20,
},
{
"name": "disk2",
"description": "description2",
"delete_with_instance": True,
"category": "cloud",
"encrypted": False,
"performance_level": "PL0",
"size": 20,
},
])
example = alicloud.ecs.get_ecs_launch_templates_output(ids=[default_ecs_launch_template.id])
pulumi.export("firstEcsLaunchTemplateId", example.templates[0].id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableDiskCategory = "cloud_efficiency",
AvailableResourceCreation = "VSwitch",
});
var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()
{
AvailabilityZone = @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
});
var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()
{
NameRegex = "^ubuntu_18.*64",
Owners = "system",
});
var defaultNetwork = new AliCloud.Vpc.Network("default", new()
{
VpcName = "terraform-example",
CidrBlock = "172.17.3.0/24",
});
var defaultSwitch = new AliCloud.Vpc.Switch("default", new()
{
VswitchName = "terraform-example",
CidrBlock = "172.17.3.0/24",
VpcId = defaultNetwork.Id,
ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
});
var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup("default", new()
{
Name = "terraform-example",
VpcId = defaultNetwork.Id,
});
var defaultEcsLaunchTemplate = new AliCloud.Ecs.EcsLaunchTemplate("default", new()
{
LaunchTemplateName = "terraform-example",
Description = "terraform-example",
ImageId = defaultGetImages.Apply(getImagesResult => getImagesResult.Images[0]?.Id),
HostName = "terraform-example",
InstanceChargeType = "PrePaid",
InstanceName = "terraform-example",
InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.Id),
InternetChargeType = "PayByBandwidth",
InternetMaxBandwidthIn = 5,
InternetMaxBandwidthOut = 5,
IoOptimized = "optimized",
KeyPairName = "key_pair_name",
RamRoleName = "ram_role_name",
NetworkType = "vpc",
SecurityEnhancementStrategy = "Active",
SpotPriceLimit = 5,
SpotStrategy = "SpotWithPriceLimit",
SecurityGroupIds = new[]
{
defaultSecurityGroup.Id,
},
SystemDisk = new AliCloud.Ecs.Inputs.EcsLaunchTemplateSystemDiskArgs
{
Category = "cloud_ssd",
Description = "Test For Terraform",
Name = "terraform-example",
Size = 40,
DeleteWithInstance = false,
},
UserData = "xxxxxxx",
VswitchId = defaultSwitch.Id,
VpcId = defaultNetwork.Id,
ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
TemplateTags =
{
{ "Create", "Terraform" },
{ "For", "example" },
},
NetworkInterfaces = new AliCloud.Ecs.Inputs.EcsLaunchTemplateNetworkInterfacesArgs
{
Name = "eth0",
Description = "hello1",
PrimaryIp = "10.0.0.2",
SecurityGroupId = defaultSecurityGroup.Id,
VswitchId = defaultSwitch.Id,
},
DataDisks = new[]
{
new AliCloud.Ecs.Inputs.EcsLaunchTemplateDataDiskArgs
{
Name = "disk1",
Description = "description",
DeleteWithInstance = true,
Category = "cloud",
Encrypted = false,
PerformanceLevel = "PL0",
Size = 20,
},
new AliCloud.Ecs.Inputs.EcsLaunchTemplateDataDiskArgs
{
Name = "disk2",
Description = "description2",
DeleteWithInstance = true,
Category = "cloud",
Encrypted = false,
PerformanceLevel = "PL0",
Size = 20,
},
},
});
var example = AliCloud.Ecs.GetEcsLaunchTemplates.Invoke(new()
{
Ids = new[]
{
defaultEcsLaunchTemplate.Id,
},
});
return new Dictionary<string, object?>
{
["firstEcsLaunchTemplateId"] = example.Apply(getEcsLaunchTemplatesResult => getEcsLaunchTemplatesResult.Templates[0]?.Id),
};
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableDiskCategory: pulumi.StringRef("cloud_efficiency"),
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
defaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, &ecs.GetInstanceTypesArgs{
AvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),
}, nil)
if err != nil {
return err
}
defaultGetImages, err := ecs.GetImages(ctx, &ecs.GetImagesArgs{
NameRegex: pulumi.StringRef("^ubuntu_18.*64"),
Owners: pulumi.StringRef("system"),
}, nil)
if err != nil {
return err
}
defaultNetwork, err := vpc.NewNetwork(ctx, "default", &vpc.NetworkArgs{
VpcName: pulumi.String("terraform-example"),
CidrBlock: pulumi.String("172.17.3.0/24"),
})
if err != nil {
return err
}
defaultSwitch, err := vpc.NewSwitch(ctx, "default", &vpc.SwitchArgs{
VswitchName: pulumi.String("terraform-example"),
CidrBlock: pulumi.String("172.17.3.0/24"),
VpcId: defaultNetwork.ID(),
ZoneId: pulumi.String(_default.Zones[0].Id),
})
if err != nil {
return err
}
defaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, "default", &ecs.SecurityGroupArgs{
Name: pulumi.String("terraform-example"),
VpcId: defaultNetwork.ID(),
})
if err != nil {
return err
}
defaultEcsLaunchTemplate, err := ecs.NewEcsLaunchTemplate(ctx, "default", &ecs.EcsLaunchTemplateArgs{
LaunchTemplateName: pulumi.String("terraform-example"),
Description: pulumi.String("terraform-example"),
ImageId: pulumi.String(defaultGetImages.Images[0].Id),
HostName: pulumi.String("terraform-example"),
InstanceChargeType: pulumi.String("PrePaid"),
InstanceName: pulumi.String("terraform-example"),
InstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),
InternetChargeType: pulumi.String("PayByBandwidth"),
InternetMaxBandwidthIn: pulumi.Int(5),
InternetMaxBandwidthOut: pulumi.Int(5),
IoOptimized: pulumi.String("optimized"),
KeyPairName: pulumi.String("key_pair_name"),
RamRoleName: pulumi.String("ram_role_name"),
NetworkType: pulumi.String("vpc"),
SecurityEnhancementStrategy: pulumi.String("Active"),
SpotPriceLimit: pulumi.Float64(5),
SpotStrategy: pulumi.String("SpotWithPriceLimit"),
SecurityGroupIds: pulumi.StringArray{
defaultSecurityGroup.ID(),
},
SystemDisk: &ecs.EcsLaunchTemplateSystemDiskArgs{
Category: pulumi.String("cloud_ssd"),
Description: pulumi.String("Test For Terraform"),
Name: pulumi.String("terraform-example"),
Size: pulumi.Int(40),
DeleteWithInstance: pulumi.Bool(false),
},
UserData: pulumi.String("xxxxxxx"),
VswitchId: defaultSwitch.ID(),
VpcId: defaultNetwork.ID(),
ZoneId: pulumi.String(_default.Zones[0].Id),
TemplateTags: pulumi.StringMap{
"Create": pulumi.String("Terraform"),
"For": pulumi.String("example"),
},
NetworkInterfaces: &ecs.EcsLaunchTemplateNetworkInterfacesArgs{
Name: pulumi.String("eth0"),
Description: pulumi.String("hello1"),
PrimaryIp: pulumi.String("10.0.0.2"),
SecurityGroupId: defaultSecurityGroup.ID(),
VswitchId: defaultSwitch.ID(),
},
DataDisks: ecs.EcsLaunchTemplateDataDiskArray{
&ecs.EcsLaunchTemplateDataDiskArgs{
Name: pulumi.String("disk1"),
Description: pulumi.String("description"),
DeleteWithInstance: pulumi.Bool(true),
Category: pulumi.String("cloud"),
Encrypted: pulumi.Bool(false),
PerformanceLevel: pulumi.String("PL0"),
Size: pulumi.Int(20),
},
&ecs.EcsLaunchTemplateDataDiskArgs{
Name: pulumi.String("disk2"),
Description: pulumi.String("description2"),
DeleteWithInstance: pulumi.Bool(true),
Category: pulumi.String("cloud"),
Encrypted: pulumi.Bool(false),
PerformanceLevel: pulumi.String("PL0"),
Size: pulumi.Int(20),
},
},
})
if err != nil {
return err
}
example := ecs.GetEcsLaunchTemplatesOutput(ctx, ecs.GetEcsLaunchTemplatesOutputArgs{
Ids: pulumi.StringArray{
defaultEcsLaunchTemplate.ID(),
},
}, nil)
ctx.Export("firstEcsLaunchTemplateId", example.ApplyT(func(example ecs.GetEcsLaunchTemplatesResult) (*string, error) {
return &example.Templates[0].Id, nil
}).(pulumi.StringPtrOutput))
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecs.EcsLaunchTemplate;
import com.pulumi.alicloud.ecs.EcsLaunchTemplateArgs;
import com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateSystemDiskArgs;
import com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateNetworkInterfacesArgs;
import com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateDataDiskArgs;
import com.pulumi.alicloud.ecs.inputs.GetEcsLaunchTemplatesArgs;
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 default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_efficiency")
.availableResourceCreation("VSwitch")
.build());
final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.availabilityZone(default_.zones()[0].id())
.build());
final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_18.*64")
.owners("system")
.build());
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName("terraform-example")
.cidrBlock("172.17.3.0/24")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vswitchName("terraform-example")
.cidrBlock("172.17.3.0/24")
.vpcId(defaultNetwork.id())
.zoneId(default_.zones()[0].id())
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.name("terraform-example")
.vpcId(defaultNetwork.id())
.build());
var defaultEcsLaunchTemplate = new EcsLaunchTemplate("defaultEcsLaunchTemplate", EcsLaunchTemplateArgs.builder()
.launchTemplateName("terraform-example")
.description("terraform-example")
.imageId(defaultGetImages.images()[0].id())
.hostName("terraform-example")
.instanceChargeType("PrePaid")
.instanceName("terraform-example")
.instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())
.internetChargeType("PayByBandwidth")
.internetMaxBandwidthIn(5)
.internetMaxBandwidthOut(5)
.ioOptimized("optimized")
.keyPairName("key_pair_name")
.ramRoleName("ram_role_name")
.networkType("vpc")
.securityEnhancementStrategy("Active")
.spotPriceLimit(5.0)
.spotStrategy("SpotWithPriceLimit")
.securityGroupIds(defaultSecurityGroup.id())
.systemDisk(EcsLaunchTemplateSystemDiskArgs.builder()
.category("cloud_ssd")
.description("Test For Terraform")
.name("terraform-example")
.size(40)
.deleteWithInstance(false)
.build())
.userData("xxxxxxx")
.vswitchId(defaultSwitch.id())
.vpcId(defaultNetwork.id())
.zoneId(default_.zones()[0].id())
.templateTags(Map.ofEntries(
Map.entry("Create", "Terraform"),
Map.entry("For", "example")
))
.networkInterfaces(EcsLaunchTemplateNetworkInterfacesArgs.builder()
.name("eth0")
.description("hello1")
.primaryIp("10.0.0.2")
.securityGroupId(defaultSecurityGroup.id())
.vswitchId(defaultSwitch.id())
.build())
.dataDisks(
EcsLaunchTemplateDataDiskArgs.builder()
.name("disk1")
.description("description")
.deleteWithInstance(true)
.category("cloud")
.encrypted(false)
.performanceLevel("PL0")
.size(20)
.build(),
EcsLaunchTemplateDataDiskArgs.builder()
.name("disk2")
.description("description2")
.deleteWithInstance(true)
.category("cloud")
.encrypted(false)
.performanceLevel("PL0")
.size(20)
.build())
.build());
final var example = EcsFunctions.getEcsLaunchTemplates(GetEcsLaunchTemplatesArgs.builder()
.ids(defaultEcsLaunchTemplate.id())
.build());
ctx.export("firstEcsLaunchTemplateId", example.applyValue(_example -> _example.templates()[0].id()));
}
}
resources:
defaultNetwork:
type: alicloud:vpc:Network
name: default
properties:
vpcName: terraform-example
cidrBlock: 172.17.3.0/24
defaultSwitch:
type: alicloud:vpc:Switch
name: default
properties:
vswitchName: terraform-example
cidrBlock: 172.17.3.0/24
vpcId: ${defaultNetwork.id}
zoneId: ${default.zones[0].id}
defaultSecurityGroup:
type: alicloud:ecs:SecurityGroup
name: default
properties:
name: terraform-example
vpcId: ${defaultNetwork.id}
defaultEcsLaunchTemplate:
type: alicloud:ecs:EcsLaunchTemplate
name: default
properties:
launchTemplateName: terraform-example
description: terraform-example
imageId: ${defaultGetImages.images[0].id}
hostName: terraform-example
instanceChargeType: PrePaid
instanceName: terraform-example
instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}
internetChargeType: PayByBandwidth
internetMaxBandwidthIn: '5'
internetMaxBandwidthOut: '5'
ioOptimized: optimized
keyPairName: key_pair_name
ramRoleName: ram_role_name
networkType: vpc
securityEnhancementStrategy: Active
spotPriceLimit: '5'
spotStrategy: SpotWithPriceLimit
securityGroupIds:
- ${defaultSecurityGroup.id}
systemDisk:
category: cloud_ssd
description: Test For Terraform
name: terraform-example
size: '40'
deleteWithInstance: 'false'
userData: xxxxxxx
vswitchId: ${defaultSwitch.id}
vpcId: ${defaultNetwork.id}
zoneId: ${default.zones[0].id}
templateTags:
Create: Terraform
For: example
networkInterfaces:
name: eth0
description: hello1
primaryIp: 10.0.0.2
securityGroupId: ${defaultSecurityGroup.id}
vswitchId: ${defaultSwitch.id}
dataDisks:
- name: disk1
description: description
deleteWithInstance: 'true'
category: cloud
encrypted: 'false'
performanceLevel: PL0
size: '20'
- name: disk2
description: description2
deleteWithInstance: 'true'
category: cloud
encrypted: 'false'
performanceLevel: PL0
size: '20'
variables:
default:
fn::invoke:
function: alicloud:getZones
arguments:
availableDiskCategory: cloud_efficiency
availableResourceCreation: VSwitch
defaultGetInstanceTypes:
fn::invoke:
function: alicloud:ecs:getInstanceTypes
arguments:
availabilityZone: ${default.zones[0].id}
defaultGetImages:
fn::invoke:
function: alicloud:ecs:getImages
arguments:
nameRegex: ^ubuntu_18.*64
owners: system
example:
fn::invoke:
function: alicloud:ecs:getEcsLaunchTemplates
arguments:
ids:
- ${defaultEcsLaunchTemplate.id}
outputs:
firstEcsLaunchTemplateId: ${example.templates[0].id}
Return
A collection of values returned by getEcsLaunchTemplates.
Parameters
A collection of arguments for invoking getEcsLaunchTemplates.
Return
A collection of values returned by getEcsLaunchTemplates.
Parameters
Default to false
. Set it to true
can output more details about resource attributes.
A list of Launch Template IDs.
The Launch Template Name.
A regex string to filter results by Launch Template name.
File name where to save data source results (after running pulumi preview
).
The template resource group id.
The template tags.
See also
Return
A collection of values returned by getEcsLaunchTemplates.
Parameters
Builder for com.pulumi.alicloud.ecs.kotlin.inputs.GetEcsLaunchTemplatesPlainArgs.