1. Packages
  2. Volcengine
  3. API Docs
  4. autoscaling
  5. ScalingInstances
Volcengine v0.0.27 published on Tuesday, Dec 10, 2024 by Volcengine

volcengine.autoscaling.ScalingInstances

Explore with Pulumi AI

Volcengine v0.0.27 published on Tuesday, Dec 10, 2024 by Volcengine

Use this data source to query detailed information of scaling instances

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as volcengine from "@pulumi/volcengine";
import * as volcengine from "@volcengine/pulumi";

const fooZones = volcengine.ecs.Zones({});
const fooVpc = new volcengine.vpc.Vpc("fooVpc", {
    vpcName: "acc-test-vpc",
    cidrBlock: "172.16.0.0/16",
});
const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", {
    subnetName: "acc-test-subnet",
    cidrBlock: "172.16.0.0/24",
    zoneId: fooZones.then(fooZones => fooZones.zones?.[0]?.id),
    vpcId: fooVpc.id,
});
const fooSecurityGroup = new volcengine.vpc.SecurityGroup("fooSecurityGroup", {
    securityGroupName: "acc-test-security-group",
    vpcId: fooVpc.id,
});
const fooImages = volcengine.ecs.Images({
    osType: "Linux",
    visibility: "public",
    instanceTypeId: "ecs.g1.large",
});
const fooKeyPair = new volcengine.ecs.KeyPair("fooKeyPair", {
    description: "acc-test-2",
    keyPairName: "acc-test-key-pair-name",
});
const fooLaunchTemplate = new volcengine.ecs.LaunchTemplate("fooLaunchTemplate", {
    description: "acc-test-desc",
    eipBandwidth: 200,
    eipBillingType: "PostPaidByBandwidth",
    eipIsp: "BGP",
    hostName: "acc-hostname",
    imageId: fooImages.then(fooImages => fooImages.images?.[0]?.imageId),
    instanceChargeType: "PostPaid",
    instanceName: "acc-instance-name",
    instanceTypeId: "ecs.g1.large",
    keyPairName: fooKeyPair.keyPairName,
    launchTemplateName: "acc-test-template",
    networkInterfaces: [{
        subnetId: fooSubnet.id,
        securityGroupIds: [fooSecurityGroup.id],
    }],
    volumes: [{
        volumeType: "ESSD_PL0",
        size: 50,
        deleteWithInstance: true,
    }],
});
const fooScalingGroup = new volcengine.autoscaling.ScalingGroup("fooScalingGroup", {
    scalingGroupName: "acc-test-scaling-group",
    subnetIds: [fooSubnet.id],
    multiAzPolicy: "BALANCE",
    desireInstanceNumber: -1,
    minInstanceNumber: 0,
    maxInstanceNumber: 10,
    instanceTerminatePolicy: "OldestInstance",
    defaultCooldown: 10,
    launchTemplateId: fooLaunchTemplate.id,
    launchTemplateVersion: "Default",
});
const fooScalingGroupEnabler = new volcengine.autoscaling.ScalingGroupEnabler("fooScalingGroupEnabler", {scalingGroupId: fooScalingGroup.id});
const fooInstance: volcengine.ecs.Instance[] = [];
for (const range = {value: 0}; range.value < 3; range.value++) {
    fooInstance.push(new volcengine.ecs.Instance(`fooInstance-${range.value}`, {
        instanceName: `acc-test-ecs-${range.value}`,
        description: "acc-test",
        hostName: "tf-acc-test",
        imageId: fooImages.then(fooImages => fooImages.images?.[0]?.imageId),
        instanceType: "ecs.g1.large",
        password: "93f0cb0614Aab12",
        instanceChargeType: "PostPaid",
        systemVolumeType: "ESSD_PL0",
        systemVolumeSize: 40,
        subnetId: fooSubnet.id,
        securityGroupIds: [fooSecurityGroup.id],
    }));
}
const fooScalingInstanceAttachment: volcengine.autoscaling.ScalingInstanceAttachment[] = [];
fooInstance.length.apply(rangeBody => {
    for (const range = {value: 0}; range.value < rangeBody; range.value++) {
        fooScalingInstanceAttachment.push(new volcengine.autoscaling.ScalingInstanceAttachment(`fooScalingInstanceAttachment-${range.value}`, {
            instanceId: fooInstance[range.value].id,
            scalingGroupId: fooScalingGroup.id,
            entrusted: true,
        }, {
        dependsOn: [fooScalingGroupEnabler],
    }));
    }
});
const fooScalingInstances = volcengine.autoscaling.ScalingInstancesOutput({
    scalingGroupId: fooScalingGroup.id,
    ids: fooScalingInstanceAttachment.map(__item => __item.instanceId),
});
Copy
import pulumi
import pulumi_volcengine as volcengine

foo_zones = volcengine.ecs.zones()
foo_vpc = volcengine.vpc.Vpc("fooVpc",
    vpc_name="acc-test-vpc",
    cidr_block="172.16.0.0/16")
foo_subnet = volcengine.vpc.Subnet("fooSubnet",
    subnet_name="acc-test-subnet",
    cidr_block="172.16.0.0/24",
    zone_id=foo_zones.zones[0].id,
    vpc_id=foo_vpc.id)
foo_security_group = volcengine.vpc.SecurityGroup("fooSecurityGroup",
    security_group_name="acc-test-security-group",
    vpc_id=foo_vpc.id)
foo_images = volcengine.ecs.images(os_type="Linux",
    visibility="public",
    instance_type_id="ecs.g1.large")
foo_key_pair = volcengine.ecs.KeyPair("fooKeyPair",
    description="acc-test-2",
    key_pair_name="acc-test-key-pair-name")
foo_launch_template = volcengine.ecs.LaunchTemplate("fooLaunchTemplate",
    description="acc-test-desc",
    eip_bandwidth=200,
    eip_billing_type="PostPaidByBandwidth",
    eip_isp="BGP",
    host_name="acc-hostname",
    image_id=foo_images.images[0].image_id,
    instance_charge_type="PostPaid",
    instance_name="acc-instance-name",
    instance_type_id="ecs.g1.large",
    key_pair_name=foo_key_pair.key_pair_name,
    launch_template_name="acc-test-template",
    network_interfaces=[volcengine.ecs.LaunchTemplateNetworkInterfaceArgs(
        subnet_id=foo_subnet.id,
        security_group_ids=[foo_security_group.id],
    )],
    volumes=[volcengine.ecs.LaunchTemplateVolumeArgs(
        volume_type="ESSD_PL0",
        size=50,
        delete_with_instance=True,
    )])
foo_scaling_group = volcengine.autoscaling.ScalingGroup("fooScalingGroup",
    scaling_group_name="acc-test-scaling-group",
    subnet_ids=[foo_subnet.id],
    multi_az_policy="BALANCE",
    desire_instance_number=-1,
    min_instance_number=0,
    max_instance_number=10,
    instance_terminate_policy="OldestInstance",
    default_cooldown=10,
    launch_template_id=foo_launch_template.id,
    launch_template_version="Default")
foo_scaling_group_enabler = volcengine.autoscaling.ScalingGroupEnabler("fooScalingGroupEnabler", scaling_group_id=foo_scaling_group.id)
foo_instance = []
for range in [{"value": i} for i in range(0, 3)]:
    foo_instance.append(volcengine.ecs.Instance(f"fooInstance-{range['value']}",
        instance_name=f"acc-test-ecs-{range['value']}",
        description="acc-test",
        host_name="tf-acc-test",
        image_id=foo_images.images[0].image_id,
        instance_type="ecs.g1.large",
        password="93f0cb0614Aab12",
        instance_charge_type="PostPaid",
        system_volume_type="ESSD_PL0",
        system_volume_size=40,
        subnet_id=foo_subnet.id,
        security_group_ids=[foo_security_group.id]))
foo_scaling_instance_attachment = []
def create_foo_scaling_instance_attachment(range_body):
    for range in [{"value": i} for i in range(0, range_body)]:
        foo_scaling_instance_attachment.append(volcengine.autoscaling.ScalingInstanceAttachment(f"fooScalingInstanceAttachment-{range['value']}",
            instance_id=foo_instance[range["value"]].id,
            scaling_group_id=foo_scaling_group.id,
            entrusted=True,
            opts=pulumi.ResourceOptions(depends_on=[foo_scaling_group_enabler])))

(len(foo_instance)).apply(create_foo_scaling_instance_attachment)
foo_scaling_instances = volcengine.autoscaling.scaling_instances_output(scaling_group_id=foo_scaling_group.id,
    ids=[__item.instance_id for __item in foo_scaling_instance_attachment])
Copy
package main

import (
	"fmt"

	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/autoscaling"
	"github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/ecs"
	"github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/vpc"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
fooZones, err := ecs.Zones(ctx, nil, nil);
if err != nil {
return err
}
fooVpc, err := vpc.NewVpc(ctx, "fooVpc", &vpc.VpcArgs{
VpcName: pulumi.String("acc-test-vpc"),
CidrBlock: pulumi.String("172.16.0.0/16"),
})
if err != nil {
return err
}
fooSubnet, err := vpc.NewSubnet(ctx, "fooSubnet", &vpc.SubnetArgs{
SubnetName: pulumi.String("acc-test-subnet"),
CidrBlock: pulumi.String("172.16.0.0/24"),
ZoneId: pulumi.String(fooZones.Zones[0].Id),
VpcId: fooVpc.ID(),
})
if err != nil {
return err
}
fooSecurityGroup, err := vpc.NewSecurityGroup(ctx, "fooSecurityGroup", &vpc.SecurityGroupArgs{
SecurityGroupName: pulumi.String("acc-test-security-group"),
VpcId: fooVpc.ID(),
})
if err != nil {
return err
}
fooImages, err := ecs.Images(ctx, &ecs.ImagesArgs{
OsType: pulumi.StringRef("Linux"),
Visibility: pulumi.StringRef("public"),
InstanceTypeId: pulumi.StringRef("ecs.g1.large"),
}, nil);
if err != nil {
return err
}
fooKeyPair, err := ecs.NewKeyPair(ctx, "fooKeyPair", &ecs.KeyPairArgs{
Description: pulumi.String("acc-test-2"),
KeyPairName: pulumi.String("acc-test-key-pair-name"),
})
if err != nil {
return err
}
fooLaunchTemplate, err := ecs.NewLaunchTemplate(ctx, "fooLaunchTemplate", &ecs.LaunchTemplateArgs{
Description: pulumi.String("acc-test-desc"),
EipBandwidth: pulumi.Int(200),
EipBillingType: pulumi.String("PostPaidByBandwidth"),
EipIsp: pulumi.String("BGP"),
HostName: pulumi.String("acc-hostname"),
ImageId: pulumi.String(fooImages.Images[0].ImageId),
InstanceChargeType: pulumi.String("PostPaid"),
InstanceName: pulumi.String("acc-instance-name"),
InstanceTypeId: pulumi.String("ecs.g1.large"),
KeyPairName: fooKeyPair.KeyPairName,
LaunchTemplateName: pulumi.String("acc-test-template"),
NetworkInterfaces: ecs.LaunchTemplateNetworkInterfaceArray{
&ecs.LaunchTemplateNetworkInterfaceArgs{
SubnetId: fooSubnet.ID(),
SecurityGroupIds: pulumi.StringArray{
fooSecurityGroup.ID(),
},
},
},
Volumes: ecs.LaunchTemplateVolumeArray{
&ecs.LaunchTemplateVolumeArgs{
VolumeType: pulumi.String("ESSD_PL0"),
Size: pulumi.Int(50),
DeleteWithInstance: pulumi.Bool(true),
},
},
})
if err != nil {
return err
}
fooScalingGroup, err := autoscaling.NewScalingGroup(ctx, "fooScalingGroup", &autoscaling.ScalingGroupArgs{
ScalingGroupName: pulumi.String("acc-test-scaling-group"),
SubnetIds: pulumi.StringArray{
fooSubnet.ID(),
},
MultiAzPolicy: pulumi.String("BALANCE"),
DesireInstanceNumber: -1,
MinInstanceNumber: pulumi.Int(0),
MaxInstanceNumber: pulumi.Int(10),
InstanceTerminatePolicy: pulumi.String("OldestInstance"),
DefaultCooldown: pulumi.Int(10),
LaunchTemplateId: fooLaunchTemplate.ID(),
LaunchTemplateVersion: pulumi.String("Default"),
})
if err != nil {
return err
}
fooScalingGroupEnabler, err := autoscaling.NewScalingGroupEnabler(ctx, "fooScalingGroupEnabler", &autoscaling.ScalingGroupEnablerArgs{
ScalingGroupId: fooScalingGroup.ID(),
})
if err != nil {
return err
}
var fooInstance []*ecs.Instance
for index := 0; index < 3; index++ {
    key0 := index
    val0 := index
__res, err := ecs.NewInstance(ctx, fmt.Sprintf("fooInstance-%v", key0), &ecs.InstanceArgs{
InstanceName: pulumi.String(fmt.Sprintf("acc-test-ecs-%v", val0)),
Description: pulumi.String("acc-test"),
HostName: pulumi.String("tf-acc-test"),
ImageId: pulumi.String(fooImages.Images[0].ImageId),
InstanceType: pulumi.String("ecs.g1.large"),
Password: pulumi.String("93f0cb0614Aab12"),
InstanceChargeType: pulumi.String("PostPaid"),
SystemVolumeType: pulumi.String("ESSD_PL0"),
SystemVolumeSize: pulumi.Int(40),
SubnetId: fooSubnet.ID(),
SecurityGroupIds: pulumi.StringArray{
fooSecurityGroup.ID(),
},
})
if err != nil {
return err
}
fooInstance = append(fooInstance, __res)
}
var fooScalingInstanceAttachment []*autoscaling.ScalingInstanceAttachment
for index := 0; index < len(fooInstance); index++ {
    key0 := index
    val0 := index
__res, err := autoscaling.NewScalingInstanceAttachment(ctx, fmt.Sprintf("fooScalingInstanceAttachment-%v", key0), &autoscaling.ScalingInstanceAttachmentArgs{
InstanceId: fooInstance[val0].ID(),
ScalingGroupId: fooScalingGroup.ID(),
Entrusted: pulumi.Bool(true),
}, pulumi.DependsOn([]pulumi.Resource{
fooScalingGroupEnabler,
}))
if err != nil {
return err
}
fooScalingInstanceAttachment = append(fooScalingInstanceAttachment, __res)
}
_ = autoscaling.ScalingInstancesOutput(ctx, autoscaling.ScalingInstancesOutputArgs{
ScalingGroupId: fooScalingGroup.ID(),
Ids: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ #-functions-volcengine:autoscaling-scalingInstances:ScalingInstances.pp:93,22-64),
}, nil);
return nil
})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Volcengine = Pulumi.Volcengine;

return await Deployment.RunAsync(() => 
{
    var fooZones = Volcengine.Ecs.Zones.Invoke();

    var fooVpc = new Volcengine.Vpc.Vpc("fooVpc", new()
    {
        VpcName = "acc-test-vpc",
        CidrBlock = "172.16.0.0/16",
    });

    var fooSubnet = new Volcengine.Vpc.Subnet("fooSubnet", new()
    {
        SubnetName = "acc-test-subnet",
        CidrBlock = "172.16.0.0/24",
        ZoneId = fooZones.Apply(zonesResult => zonesResult.Zones[0]?.Id),
        VpcId = fooVpc.Id,
    });

    var fooSecurityGroup = new Volcengine.Vpc.SecurityGroup("fooSecurityGroup", new()
    {
        SecurityGroupName = "acc-test-security-group",
        VpcId = fooVpc.Id,
    });

    var fooImages = Volcengine.Ecs.Images.Invoke(new()
    {
        OsType = "Linux",
        Visibility = "public",
        InstanceTypeId = "ecs.g1.large",
    });

    var fooKeyPair = new Volcengine.Ecs.KeyPair("fooKeyPair", new()
    {
        Description = "acc-test-2",
        KeyPairName = "acc-test-key-pair-name",
    });

    var fooLaunchTemplate = new Volcengine.Ecs.LaunchTemplate("fooLaunchTemplate", new()
    {
        Description = "acc-test-desc",
        EipBandwidth = 200,
        EipBillingType = "PostPaidByBandwidth",
        EipIsp = "BGP",
        HostName = "acc-hostname",
        ImageId = fooImages.Apply(imagesResult => imagesResult.Images[0]?.ImageId),
        InstanceChargeType = "PostPaid",
        InstanceName = "acc-instance-name",
        InstanceTypeId = "ecs.g1.large",
        KeyPairName = fooKeyPair.KeyPairName,
        LaunchTemplateName = "acc-test-template",
        NetworkInterfaces = new[]
        {
            new Volcengine.Ecs.Inputs.LaunchTemplateNetworkInterfaceArgs
            {
                SubnetId = fooSubnet.Id,
                SecurityGroupIds = new[]
                {
                    fooSecurityGroup.Id,
                },
            },
        },
        Volumes = new[]
        {
            new Volcengine.Ecs.Inputs.LaunchTemplateVolumeArgs
            {
                VolumeType = "ESSD_PL0",
                Size = 50,
                DeleteWithInstance = true,
            },
        },
    });

    var fooScalingGroup = new Volcengine.Autoscaling.ScalingGroup("fooScalingGroup", new()
    {
        ScalingGroupName = "acc-test-scaling-group",
        SubnetIds = new[]
        {
            fooSubnet.Id,
        },
        MultiAzPolicy = "BALANCE",
        DesireInstanceNumber = -1,
        MinInstanceNumber = 0,
        MaxInstanceNumber = 10,
        InstanceTerminatePolicy = "OldestInstance",
        DefaultCooldown = 10,
        LaunchTemplateId = fooLaunchTemplate.Id,
        LaunchTemplateVersion = "Default",
    });

    var fooScalingGroupEnabler = new Volcengine.Autoscaling.ScalingGroupEnabler("fooScalingGroupEnabler", new()
    {
        ScalingGroupId = fooScalingGroup.Id,
    });

    var fooInstance = new List<Volcengine.Ecs.Instance>();
    for (var rangeIndex = 0; rangeIndex < 3; rangeIndex++)
    {
        var range = new { Value = rangeIndex };
        fooInstance.Add(new Volcengine.Ecs.Instance($"fooInstance-{range.Value}", new()
        {
            InstanceName = $"acc-test-ecs-{range.Value}",
            Description = "acc-test",
            HostName = "tf-acc-test",
            ImageId = fooImages.Apply(imagesResult => imagesResult.Images[0]?.ImageId),
            InstanceType = "ecs.g1.large",
            Password = "93f0cb0614Aab12",
            InstanceChargeType = "PostPaid",
            SystemVolumeType = "ESSD_PL0",
            SystemVolumeSize = 40,
            SubnetId = fooSubnet.Id,
            SecurityGroupIds = new[]
            {
                fooSecurityGroup.Id,
            },
        }));
    }
    var fooScalingInstanceAttachment = new List<Volcengine.Autoscaling.ScalingInstanceAttachment>();
    for (var rangeIndex = 0; rangeIndex < fooInstance.Length; rangeIndex++)
    {
        var range = new { Value = rangeIndex };
        fooScalingInstanceAttachment.Add(new Volcengine.Autoscaling.ScalingInstanceAttachment($"fooScalingInstanceAttachment-{range.Value}", new()
        {
            InstanceId = fooInstance[range.Value].Id,
            ScalingGroupId = fooScalingGroup.Id,
            Entrusted = true,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                fooScalingGroupEnabler,
            },
        }));
    }
    var fooScalingInstances = Volcengine.Autoscaling.ScalingInstances.Invoke(new()
    {
        ScalingGroupId = fooScalingGroup.Id,
        Ids = fooScalingInstanceAttachment.Select(__item => __item.InstanceId).ToList(),
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.volcengine.ecs.EcsFunctions;
import com.pulumi.volcengine.ecs.inputs.ZonesArgs;
import com.pulumi.volcengine.vpc.Vpc;
import com.pulumi.volcengine.vpc.VpcArgs;
import com.pulumi.volcengine.vpc.Subnet;
import com.pulumi.volcengine.vpc.SubnetArgs;
import com.pulumi.volcengine.vpc.SecurityGroup;
import com.pulumi.volcengine.vpc.SecurityGroupArgs;
import com.pulumi.volcengine.ecs.inputs.ImagesArgs;
import com.pulumi.volcengine.ecs.KeyPair;
import com.pulumi.volcengine.ecs.KeyPairArgs;
import com.pulumi.volcengine.ecs.LaunchTemplate;
import com.pulumi.volcengine.ecs.LaunchTemplateArgs;
import com.pulumi.volcengine.ecs.inputs.LaunchTemplateNetworkInterfaceArgs;
import com.pulumi.volcengine.ecs.inputs.LaunchTemplateVolumeArgs;
import com.pulumi.volcengine.autoscaling.ScalingGroup;
import com.pulumi.volcengine.autoscaling.ScalingGroupArgs;
import com.pulumi.volcengine.autoscaling.ScalingGroupEnabler;
import com.pulumi.volcengine.autoscaling.ScalingGroupEnablerArgs;
import com.pulumi.volcengine.ecs.Instance;
import com.pulumi.volcengine.ecs.InstanceArgs;
import com.pulumi.volcengine.autoscaling.ScalingInstanceAttachment;
import com.pulumi.volcengine.autoscaling.ScalingInstanceAttachmentArgs;
import com.pulumi.volcengine.autoscaling.AutoscalingFunctions;
import com.pulumi.volcengine.autoscaling.inputs.ScalingInstancesArgs;
import com.pulumi.codegen.internal.KeyedValue;
import com.pulumi.resources.CustomResourceOptions;
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 fooZones = EcsFunctions.Zones();

        var fooVpc = new Vpc("fooVpc", VpcArgs.builder()        
            .vpcName("acc-test-vpc")
            .cidrBlock("172.16.0.0/16")
            .build());

        var fooSubnet = new Subnet("fooSubnet", SubnetArgs.builder()        
            .subnetName("acc-test-subnet")
            .cidrBlock("172.16.0.0/24")
            .zoneId(fooZones.applyValue(zonesResult -> zonesResult.zones()[0].id()))
            .vpcId(fooVpc.id())
            .build());

        var fooSecurityGroup = new SecurityGroup("fooSecurityGroup", SecurityGroupArgs.builder()        
            .securityGroupName("acc-test-security-group")
            .vpcId(fooVpc.id())
            .build());

        final var fooImages = EcsFunctions.Images(ImagesArgs.builder()
            .osType("Linux")
            .visibility("public")
            .instanceTypeId("ecs.g1.large")
            .build());

        var fooKeyPair = new KeyPair("fooKeyPair", KeyPairArgs.builder()        
            .description("acc-test-2")
            .keyPairName("acc-test-key-pair-name")
            .build());

        var fooLaunchTemplate = new LaunchTemplate("fooLaunchTemplate", LaunchTemplateArgs.builder()        
            .description("acc-test-desc")
            .eipBandwidth(200)
            .eipBillingType("PostPaidByBandwidth")
            .eipIsp("BGP")
            .hostName("acc-hostname")
            .imageId(fooImages.applyValue(imagesResult -> imagesResult.images()[0].imageId()))
            .instanceChargeType("PostPaid")
            .instanceName("acc-instance-name")
            .instanceTypeId("ecs.g1.large")
            .keyPairName(fooKeyPair.keyPairName())
            .launchTemplateName("acc-test-template")
            .networkInterfaces(LaunchTemplateNetworkInterfaceArgs.builder()
                .subnetId(fooSubnet.id())
                .securityGroupIds(fooSecurityGroup.id())
                .build())
            .volumes(LaunchTemplateVolumeArgs.builder()
                .volumeType("ESSD_PL0")
                .size(50)
                .deleteWithInstance(true)
                .build())
            .build());

        var fooScalingGroup = new ScalingGroup("fooScalingGroup", ScalingGroupArgs.builder()        
            .scalingGroupName("acc-test-scaling-group")
            .subnetIds(fooSubnet.id())
            .multiAzPolicy("BALANCE")
            .desireInstanceNumber("TODO: GenUnaryOpExpression")
            .minInstanceNumber(0)
            .maxInstanceNumber(10)
            .instanceTerminatePolicy("OldestInstance")
            .defaultCooldown(10)
            .launchTemplateId(fooLaunchTemplate.id())
            .launchTemplateVersion("Default")
            .build());

        var fooScalingGroupEnabler = new ScalingGroupEnabler("fooScalingGroupEnabler", ScalingGroupEnablerArgs.builder()        
            .scalingGroupId(fooScalingGroup.id())
            .build());

        for (var i = 0; i < 3; i++) {
            new Instance("fooInstance-" + i, InstanceArgs.builder()            
                .instanceName(String.format("acc-test-ecs-%s", range.value()))
                .description("acc-test")
                .hostName("tf-acc-test")
                .imageId(fooImages.applyValue(imagesResult -> imagesResult.images()[0].imageId()))
                .instanceType("ecs.g1.large")
                .password("93f0cb0614Aab12")
                .instanceChargeType("PostPaid")
                .systemVolumeType("ESSD_PL0")
                .systemVolumeSize(40)
                .subnetId(fooSubnet.id())
                .securityGroupIds(fooSecurityGroup.id())
                .build());

        
}
        for (var i = 0; i < fooInstance.length(); i++) {
            new ScalingInstanceAttachment("fooScalingInstanceAttachment-" + i, ScalingInstanceAttachmentArgs.builder()            
                .instanceId(fooInstance[range.value()].id())
                .scalingGroupId(fooScalingGroup.id())
                .entrusted(true)
                .build(), CustomResourceOptions.builder()
                    .dependsOn(fooScalingGroupEnabler)
                    .build());

        
}
        final var fooScalingInstances = AutoscalingFunctions.ScalingInstances(ScalingInstancesArgs.builder()
            .scalingGroupId(fooScalingGroup.id())
            .ids(fooScalingInstanceAttachment.stream().map(element -> element.instanceId()).collect(toList()))
            .build());

    }
}
Copy
Coming soon!

Using ScalingInstances

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function scalingInstances(args: ScalingInstancesArgs, opts?: InvokeOptions): Promise<ScalingInstancesResult>
function scalingInstancesOutput(args: ScalingInstancesOutputArgs, opts?: InvokeOptions): Output<ScalingInstancesResult>
Copy
def scaling_instances(creation_type: Optional[str] = None,
                      ids: Optional[Sequence[str]] = None,
                      output_file: Optional[str] = None,
                      scaling_configuration_id: Optional[str] = None,
                      scaling_group_id: Optional[str] = None,
                      status: Optional[str] = None,
                      opts: Optional[InvokeOptions] = None) -> ScalingInstancesResult
def scaling_instances_output(creation_type: Optional[pulumi.Input[str]] = None,
                      ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                      output_file: Optional[pulumi.Input[str]] = None,
                      scaling_configuration_id: Optional[pulumi.Input[str]] = None,
                      scaling_group_id: Optional[pulumi.Input[str]] = None,
                      status: Optional[pulumi.Input[str]] = None,
                      opts: Optional[InvokeOptions] = None) -> Output[ScalingInstancesResult]
Copy
func ScalingInstances(ctx *Context, args *ScalingInstancesArgs, opts ...InvokeOption) (*ScalingInstancesResult, error)
func ScalingInstancesOutput(ctx *Context, args *ScalingInstancesOutputArgs, opts ...InvokeOption) ScalingInstancesResultOutput
Copy
public static class ScalingInstances 
{
    public static Task<ScalingInstancesResult> InvokeAsync(ScalingInstancesArgs args, InvokeOptions? opts = null)
    public static Output<ScalingInstancesResult> Invoke(ScalingInstancesInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<ScalingInstancesResult> scalingInstances(ScalingInstancesArgs args, InvokeOptions options)
public static Output<ScalingInstancesResult> scalingInstances(ScalingInstancesArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: volcengine:autoscaling:ScalingInstances
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

ScalingGroupId This property is required. string
The id of the scaling group.
CreationType string
The creation type of the instances. Valid values: AutoCreated, Attached.
Ids List<string>
A list of instance ids.
OutputFile string
File name where to save data source results.
ScalingConfigurationId string
The id of the scaling configuration id.
Status string
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
ScalingGroupId This property is required. string
The id of the scaling group.
CreationType string
The creation type of the instances. Valid values: AutoCreated, Attached.
Ids []string
A list of instance ids.
OutputFile string
File name where to save data source results.
ScalingConfigurationId string
The id of the scaling configuration id.
Status string
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
scalingGroupId This property is required. String
The id of the scaling group.
creationType String
The creation type of the instances. Valid values: AutoCreated, Attached.
ids List<String>
A list of instance ids.
outputFile String
File name where to save data source results.
scalingConfigurationId String
The id of the scaling configuration id.
status String
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
scalingGroupId This property is required. string
The id of the scaling group.
creationType string
The creation type of the instances. Valid values: AutoCreated, Attached.
ids string[]
A list of instance ids.
outputFile string
File name where to save data source results.
scalingConfigurationId string
The id of the scaling configuration id.
status string
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
scaling_group_id This property is required. str
The id of the scaling group.
creation_type str
The creation type of the instances. Valid values: AutoCreated, Attached.
ids Sequence[str]
A list of instance ids.
output_file str
File name where to save data source results.
scaling_configuration_id str
The id of the scaling configuration id.
status str
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
scalingGroupId This property is required. String
The id of the scaling group.
creationType String
The creation type of the instances. Valid values: AutoCreated, Attached.
ids List<String>
A list of instance ids.
outputFile String
File name where to save data source results.
scalingConfigurationId String
The id of the scaling configuration id.
status String
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.

ScalingInstances Result

The following output properties are available:

Id string
The provider-assigned unique ID for this managed resource.
ScalingGroupId string
The id of the scaling group.
ScalingInstances List<ScalingInstancesScalingInstance>
The collection of scaling instances.
TotalCount int
The total count of scaling instances query.
CreationType string
The creation type of the instance. Valid values: AutoCreated, Attached.
Ids List<string>
OutputFile string
ScalingConfigurationId string
The id of the scaling configuration.
Status string
The status of instances.
Id string
The provider-assigned unique ID for this managed resource.
ScalingGroupId string
The id of the scaling group.
ScalingInstances []ScalingInstancesScalingInstance
The collection of scaling instances.
TotalCount int
The total count of scaling instances query.
CreationType string
The creation type of the instance. Valid values: AutoCreated, Attached.
Ids []string
OutputFile string
ScalingConfigurationId string
The id of the scaling configuration.
Status string
The status of instances.
id String
The provider-assigned unique ID for this managed resource.
scalingGroupId String
The id of the scaling group.
scalingInstances List<ScalingInstancesScalingInstance>
The collection of scaling instances.
totalCount Integer
The total count of scaling instances query.
creationType String
The creation type of the instance. Valid values: AutoCreated, Attached.
ids List<String>
outputFile String
scalingConfigurationId String
The id of the scaling configuration.
status String
The status of instances.
id string
The provider-assigned unique ID for this managed resource.
scalingGroupId string
The id of the scaling group.
scalingInstances ScalingInstancesScalingInstance[]
The collection of scaling instances.
totalCount number
The total count of scaling instances query.
creationType string
The creation type of the instance. Valid values: AutoCreated, Attached.
ids string[]
outputFile string
scalingConfigurationId string
The id of the scaling configuration.
status string
The status of instances.
id str
The provider-assigned unique ID for this managed resource.
scaling_group_id str
The id of the scaling group.
scaling_instances Sequence[ScalingInstancesScalingInstance]
The collection of scaling instances.
total_count int
The total count of scaling instances query.
creation_type str
The creation type of the instance. Valid values: AutoCreated, Attached.
ids Sequence[str]
output_file str
scaling_configuration_id str
The id of the scaling configuration.
status str
The status of instances.
id String
The provider-assigned unique ID for this managed resource.
scalingGroupId String
The id of the scaling group.
scalingInstances List<Property Map>
The collection of scaling instances.
totalCount Number
The total count of scaling instances query.
creationType String
The creation type of the instance. Valid values: AutoCreated, Attached.
ids List<String>
outputFile String
scalingConfigurationId String
The id of the scaling configuration.
status String
The status of instances.

Supporting Types

ScalingInstancesScalingInstance

CreatedTime This property is required. string
The time when the instance was added to the scaling group.
CreationType This property is required. string
The creation type of the instances. Valid values: AutoCreated, Attached.
Entrusted This property is required. bool
Whether to host the instance to a scaling group.
Id This property is required. string
The id of the scaling instance.
InstanceId This property is required. string
The id of the scaling instance.
ScalingConfigurationId This property is required. string
The id of the scaling configuration id.
ScalingGroupId This property is required. string
The id of the scaling group.
ScalingPolicyId This property is required. string
The id of the scaling policy.
Status This property is required. string
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
CreatedTime This property is required. string
The time when the instance was added to the scaling group.
CreationType This property is required. string
The creation type of the instances. Valid values: AutoCreated, Attached.
Entrusted This property is required. bool
Whether to host the instance to a scaling group.
Id This property is required. string
The id of the scaling instance.
InstanceId This property is required. string
The id of the scaling instance.
ScalingConfigurationId This property is required. string
The id of the scaling configuration id.
ScalingGroupId This property is required. string
The id of the scaling group.
ScalingPolicyId This property is required. string
The id of the scaling policy.
Status This property is required. string
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
createdTime This property is required. String
The time when the instance was added to the scaling group.
creationType This property is required. String
The creation type of the instances. Valid values: AutoCreated, Attached.
entrusted This property is required. Boolean
Whether to host the instance to a scaling group.
id This property is required. String
The id of the scaling instance.
instanceId This property is required. String
The id of the scaling instance.
scalingConfigurationId This property is required. String
The id of the scaling configuration id.
scalingGroupId This property is required. String
The id of the scaling group.
scalingPolicyId This property is required. String
The id of the scaling policy.
status This property is required. String
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
createdTime This property is required. string
The time when the instance was added to the scaling group.
creationType This property is required. string
The creation type of the instances. Valid values: AutoCreated, Attached.
entrusted This property is required. boolean
Whether to host the instance to a scaling group.
id This property is required. string
The id of the scaling instance.
instanceId This property is required. string
The id of the scaling instance.
scalingConfigurationId This property is required. string
The id of the scaling configuration id.
scalingGroupId This property is required. string
The id of the scaling group.
scalingPolicyId This property is required. string
The id of the scaling policy.
status This property is required. string
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
created_time This property is required. str
The time when the instance was added to the scaling group.
creation_type This property is required. str
The creation type of the instances. Valid values: AutoCreated, Attached.
entrusted This property is required. bool
Whether to host the instance to a scaling group.
id This property is required. str
The id of the scaling instance.
instance_id This property is required. str
The id of the scaling instance.
scaling_configuration_id This property is required. str
The id of the scaling configuration id.
scaling_group_id This property is required. str
The id of the scaling group.
scaling_policy_id This property is required. str
The id of the scaling policy.
status This property is required. str
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.
createdTime This property is required. String
The time when the instance was added to the scaling group.
creationType This property is required. String
The creation type of the instances. Valid values: AutoCreated, Attached.
entrusted This property is required. Boolean
Whether to host the instance to a scaling group.
id This property is required. String
The id of the scaling instance.
instanceId This property is required. String
The id of the scaling instance.
scalingConfigurationId This property is required. String
The id of the scaling configuration id.
scalingGroupId This property is required. String
The id of the scaling group.
scalingPolicyId This property is required. String
The id of the scaling policy.
status This property is required. String
The status of instances. Valid values: Init, Pending, Pending:Wait, InService, Error, Removing, Removing:Wait, Stopped, Protected.

Package Details

Repository
volcengine volcengine/pulumi-volcengine
License
Apache-2.0
Notes
This Pulumi package is based on the volcengine Terraform Provider.
Volcengine v0.0.27 published on Tuesday, Dec 10, 2024 by Volcengine