Reserved Instance
Provides an Reserved Instance resource.
NOTE: Available in 1.65.0+
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const default = alicloud.ecs.getInstanceTypes({
instanceTypeFamily: "ecs.g6",
});
const defaultReservedInstance = new alicloud.ecs.ReservedInstance("default", {
instanceType: _default.then(_default => _default.instanceTypes?.[0]?.id),
instanceAmount: 1,
periodUnit: "Month",
offeringType: "All Upfront",
reservedInstanceName: "terraform-example",
description: "ReservedInstance",
zoneId: _default.then(_default => _default.instanceTypes?.[0]?.availabilityZones?.[0]),
scope: "Zone",
});Content copied to clipboard
import pulumi
import pulumi_alicloud as alicloud
default = alicloud.ecs.get_instance_types(instance_type_family="ecs.g6")
default_reserved_instance = alicloud.ecs.ReservedInstance("default",
instance_type=default.instance_types[0].id,
instance_amount=1,
period_unit="Month",
offering_type="All Upfront",
reserved_instance_name="terraform-example",
description="ReservedInstance",
zone_id=default.instance_types[0].availability_zones[0],
scope="Zone")Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()
{
InstanceTypeFamily = "ecs.g6",
});
var defaultReservedInstance = new AliCloud.Ecs.ReservedInstance("default", new()
{
InstanceType = @default.Apply(@default => @default.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.Id)),
InstanceAmount = 1,
PeriodUnit = "Month",
OfferingType = "All Upfront",
ReservedInstanceName = "terraform-example",
Description = "ReservedInstance",
ZoneId = @default.Apply(@default => @default.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0])),
Scope = "Zone",
});
});Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := ecs.GetInstanceTypes(ctx, &ecs.GetInstanceTypesArgs{
InstanceTypeFamily: pulumi.StringRef("ecs.g6"),
}, nil)
if err != nil {
return err
}
_, err = ecs.NewReservedInstance(ctx, "default", &ecs.ReservedInstanceArgs{
InstanceType: pulumi.String(_default.InstanceTypes[0].Id),
InstanceAmount: pulumi.Int(1),
PeriodUnit: pulumi.String("Month"),
OfferingType: pulumi.String("All Upfront"),
ReservedInstanceName: pulumi.String("terraform-example"),
Description: pulumi.String("ReservedInstance"),
ZoneId: pulumi.String(_default.InstanceTypes[0].AvailabilityZones[0]),
Scope: pulumi.String("Zone"),
})
if err != nil {
return err
}
return nil
})
}Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.ReservedInstance;
import com.pulumi.alicloud.ecs.ReservedInstanceArgs;
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 = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.instanceTypeFamily("ecs.g6")
.build());
var defaultReservedInstance = new ReservedInstance("defaultReservedInstance", ReservedInstanceArgs.builder()
.instanceType(default_.instanceTypes()[0].id())
.instanceAmount("1")
.periodUnit("Month")
.offeringType("All Upfront")
.reservedInstanceName("terraform-example")
.description("ReservedInstance")
.zoneId(default_.instanceTypes()[0].availabilityZones()[0])
.scope("Zone")
.build());
}
}Content copied to clipboard
resources:
defaultReservedInstance:
type: alicloud:ecs:ReservedInstance
name: default
properties:
instanceType: ${default.instanceTypes[0].id}
instanceAmount: '1'
periodUnit: Month
offeringType: All Upfront
reservedInstanceName: terraform-example
description: ReservedInstance
zoneId: ${default.instanceTypes[0].availabilityZones[0]}
scope: Zone
variables:
default:
fn::invoke:
Function: alicloud:ecs:getInstanceTypes
Arguments:
instanceTypeFamily: ecs.g6Content copied to clipboard
Import
reservedInstance can be imported using id, e.g.
$ pulumi import alicloud:ecs/reservedInstance:ReservedInstance default ecsri-uf6df4xm0h3licit****Content copied to clipboard
Properties
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Instance type of the RI. For more information, see Instance type families.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
ID of the zone to which the RI belongs. When Scope is set to Zone, this parameter is required. For information about the zone list, see DescribeZones.