1. Packages
  2. Alibaba Cloud
  3. API Docs
  4. ess
  5. ScalingRule
Alibaba Cloud v3.51.0 published on Saturday, Mar 23, 2024 by Pulumi

alicloud.ess.ScalingRule

Explore with Pulumi AI

alicloud logo
Alibaba Cloud v3.51.0 published on Saturday, Mar 23, 2024 by Pulumi

    Provides a ESS scaling rule resource.

    For information about ess scaling rule, see CreateScalingRule.

    NOTE: Available since v1.39.0.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as alicloud from "@pulumi/alicloud";
    import * as random from "@pulumi/random";
    
    const config = new pulumi.Config();
    const name = config.get("name") || "terraform-example";
    const defaultRandomInteger = new random.RandomInteger("defaultRandomInteger", {
        min: 10000,
        max: 99999,
    });
    const myName = pulumi.interpolate`${name}-${defaultRandomInteger.result}`;
    const defaultZones = alicloud.getZones({
        availableDiskCategory: "cloud_efficiency",
        availableResourceCreation: "VSwitch",
    });
    const defaultInstanceTypes = defaultZones.then(defaultZones => alicloud.ecs.getInstanceTypes({
        availabilityZone: defaultZones.zones?.[0]?.id,
        cpuCoreCount: 2,
        memorySize: 4,
    }));
    const defaultImages = alicloud.ecs.getImages({
        nameRegex: "^ubuntu_18.*64",
        mostRecent: true,
        owners: "system",
    });
    const defaultNetwork = new alicloud.vpc.Network("defaultNetwork", {
        vpcName: myName,
        cidrBlock: "172.16.0.0/16",
    });
    const defaultSwitch = new alicloud.vpc.Switch("defaultSwitch", {
        vpcId: defaultNetwork.id,
        cidrBlock: "172.16.0.0/24",
        zoneId: defaultZones.then(defaultZones => defaultZones.zones?.[0]?.id),
        vswitchName: myName,
    });
    const defaultSecurityGroup = new alicloud.ecs.SecurityGroup("defaultSecurityGroup", {vpcId: defaultNetwork.id});
    const defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule("defaultSecurityGroupRule", {
        type: "ingress",
        ipProtocol: "tcp",
        nicType: "intranet",
        policy: "accept",
        portRange: "22/22",
        priority: 1,
        securityGroupId: defaultSecurityGroup.id,
        cidrIp: "172.16.0.0/24",
    });
    const defaultScalingGroup = new alicloud.ess.ScalingGroup("defaultScalingGroup", {
        minSize: 1,
        maxSize: 1,
        scalingGroupName: myName,
        vswitchIds: [defaultSwitch.id],
        removalPolicies: [
            "OldestInstance",
            "NewestInstance",
        ],
    });
    const defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration("defaultScalingConfiguration", {
        scalingGroupId: defaultScalingGroup.id,
        imageId: defaultImages.then(defaultImages => defaultImages.images?.[0]?.id),
        instanceType: defaultInstanceTypes.then(defaultInstanceTypes => defaultInstanceTypes.instanceTypes?.[0]?.id),
        securityGroupId: defaultSecurityGroup.id,
        forceDelete: true,
    });
    const defaultScalingRule = new alicloud.ess.ScalingRule("defaultScalingRule", {
        scalingGroupId: defaultScalingGroup.id,
        adjustmentType: "TotalCapacity",
        adjustmentValue: 1,
    });
    
    import pulumi
    import pulumi_alicloud as alicloud
    import pulumi_random as random
    
    config = pulumi.Config()
    name = config.get("name")
    if name is None:
        name = "terraform-example"
    default_random_integer = random.RandomInteger("defaultRandomInteger",
        min=10000,
        max=99999)
    my_name = default_random_integer.result.apply(lambda result: f"{name}-{result}")
    default_zones = alicloud.get_zones(available_disk_category="cloud_efficiency",
        available_resource_creation="VSwitch")
    default_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_zones.zones[0].id,
        cpu_core_count=2,
        memory_size=4)
    default_images = alicloud.ecs.get_images(name_regex="^ubuntu_18.*64",
        most_recent=True,
        owners="system")
    default_network = alicloud.vpc.Network("defaultNetwork",
        vpc_name=my_name,
        cidr_block="172.16.0.0/16")
    default_switch = alicloud.vpc.Switch("defaultSwitch",
        vpc_id=default_network.id,
        cidr_block="172.16.0.0/24",
        zone_id=default_zones.zones[0].id,
        vswitch_name=my_name)
    default_security_group = alicloud.ecs.SecurityGroup("defaultSecurityGroup", vpc_id=default_network.id)
    default_security_group_rule = alicloud.ecs.SecurityGroupRule("defaultSecurityGroupRule",
        type="ingress",
        ip_protocol="tcp",
        nic_type="intranet",
        policy="accept",
        port_range="22/22",
        priority=1,
        security_group_id=default_security_group.id,
        cidr_ip="172.16.0.0/24")
    default_scaling_group = alicloud.ess.ScalingGroup("defaultScalingGroup",
        min_size=1,
        max_size=1,
        scaling_group_name=my_name,
        vswitch_ids=[default_switch.id],
        removal_policies=[
            "OldestInstance",
            "NewestInstance",
        ])
    default_scaling_configuration = alicloud.ess.ScalingConfiguration("defaultScalingConfiguration",
        scaling_group_id=default_scaling_group.id,
        image_id=default_images.images[0].id,
        instance_type=default_instance_types.instance_types[0].id,
        security_group_id=default_security_group.id,
        force_delete=True)
    default_scaling_rule = alicloud.ess.ScalingRule("defaultScalingRule",
        scaling_group_id=default_scaling_group.id,
        adjustment_type="TotalCapacity",
        adjustment_value=1)
    
    package main
    
    import (
    	"fmt"
    
    	"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/ess"
    	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
    	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		name := "terraform-example"
    		if param := cfg.Get("name"); param != "" {
    			name = param
    		}
    		defaultRandomInteger, err := random.NewRandomInteger(ctx, "defaultRandomInteger", &random.RandomIntegerArgs{
    			Min: pulumi.Int(10000),
    			Max: pulumi.Int(99999),
    		})
    		if err != nil {
    			return err
    		}
    		myName := defaultRandomInteger.Result.ApplyT(func(result int) (string, error) {
    			return fmt.Sprintf("%v-%v", name, result), nil
    		}).(pulumi.StringOutput)
    		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
    			AvailableDiskCategory:     pulumi.StringRef("cloud_efficiency"),
    			AvailableResourceCreation: pulumi.StringRef("VSwitch"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		defaultInstanceTypes, err := ecs.GetInstanceTypes(ctx, &ecs.GetInstanceTypesArgs{
    			AvailabilityZone: pulumi.StringRef(defaultZones.Zones[0].Id),
    			CpuCoreCount:     pulumi.IntRef(2),
    			MemorySize:       pulumi.Float64Ref(4),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		defaultImages, err := ecs.GetImages(ctx, &ecs.GetImagesArgs{
    			NameRegex:  pulumi.StringRef("^ubuntu_18.*64"),
    			MostRecent: pulumi.BoolRef(true),
    			Owners:     pulumi.StringRef("system"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
    			VpcName:   pulumi.String(myName),
    			CidrBlock: pulumi.String("172.16.0.0/16"),
    		})
    		if err != nil {
    			return err
    		}
    		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
    			VpcId:       defaultNetwork.ID(),
    			CidrBlock:   pulumi.String("172.16.0.0/24"),
    			ZoneId:      pulumi.String(defaultZones.Zones[0].Id),
    			VswitchName: pulumi.String(myName),
    		})
    		if err != nil {
    			return err
    		}
    		defaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, "defaultSecurityGroup", &ecs.SecurityGroupArgs{
    			VpcId: defaultNetwork.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ecs.NewSecurityGroupRule(ctx, "defaultSecurityGroupRule", &ecs.SecurityGroupRuleArgs{
    			Type:            pulumi.String("ingress"),
    			IpProtocol:      pulumi.String("tcp"),
    			NicType:         pulumi.String("intranet"),
    			Policy:          pulumi.String("accept"),
    			PortRange:       pulumi.String("22/22"),
    			Priority:        pulumi.Int(1),
    			SecurityGroupId: defaultSecurityGroup.ID(),
    			CidrIp:          pulumi.String("172.16.0.0/24"),
    		})
    		if err != nil {
    			return err
    		}
    		defaultScalingGroup, err := ess.NewScalingGroup(ctx, "defaultScalingGroup", &ess.ScalingGroupArgs{
    			MinSize:          pulumi.Int(1),
    			MaxSize:          pulumi.Int(1),
    			ScalingGroupName: pulumi.String(myName),
    			VswitchIds: pulumi.StringArray{
    				defaultSwitch.ID(),
    			},
    			RemovalPolicies: pulumi.StringArray{
    				pulumi.String("OldestInstance"),
    				pulumi.String("NewestInstance"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ess.NewScalingConfiguration(ctx, "defaultScalingConfiguration", &ess.ScalingConfigurationArgs{
    			ScalingGroupId:  defaultScalingGroup.ID(),
    			ImageId:         pulumi.String(defaultImages.Images[0].Id),
    			InstanceType:    pulumi.String(defaultInstanceTypes.InstanceTypes[0].Id),
    			SecurityGroupId: defaultSecurityGroup.ID(),
    			ForceDelete:     pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ess.NewScalingRule(ctx, "defaultScalingRule", &ess.ScalingRuleArgs{
    			ScalingGroupId:  defaultScalingGroup.ID(),
    			AdjustmentType:  pulumi.String("TotalCapacity"),
    			AdjustmentValue: pulumi.Int(1),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AliCloud = Pulumi.AliCloud;
    using Random = Pulumi.Random;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var name = config.Get("name") ?? "terraform-example";
        var defaultRandomInteger = new Random.RandomInteger("defaultRandomInteger", new()
        {
            Min = 10000,
            Max = 99999,
        });
    
        var myName = defaultRandomInteger.Result.Apply(result => $"{name}-{result}");
    
        var defaultZones = AliCloud.GetZones.Invoke(new()
        {
            AvailableDiskCategory = "cloud_efficiency",
            AvailableResourceCreation = "VSwitch",
        });
    
        var defaultInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()
        {
            AvailabilityZone = defaultZones.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
            CpuCoreCount = 2,
            MemorySize = 4,
        });
    
        var defaultImages = AliCloud.Ecs.GetImages.Invoke(new()
        {
            NameRegex = "^ubuntu_18.*64",
            MostRecent = true,
            Owners = "system",
        });
    
        var defaultNetwork = new AliCloud.Vpc.Network("defaultNetwork", new()
        {
            VpcName = myName,
            CidrBlock = "172.16.0.0/16",
        });
    
        var defaultSwitch = new AliCloud.Vpc.Switch("defaultSwitch", new()
        {
            VpcId = defaultNetwork.Id,
            CidrBlock = "172.16.0.0/24",
            ZoneId = defaultZones.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
            VswitchName = myName,
        });
    
        var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup("defaultSecurityGroup", new()
        {
            VpcId = defaultNetwork.Id,
        });
    
        var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule("defaultSecurityGroupRule", new()
        {
            Type = "ingress",
            IpProtocol = "tcp",
            NicType = "intranet",
            Policy = "accept",
            PortRange = "22/22",
            Priority = 1,
            SecurityGroupId = defaultSecurityGroup.Id,
            CidrIp = "172.16.0.0/24",
        });
    
        var defaultScalingGroup = new AliCloud.Ess.ScalingGroup("defaultScalingGroup", new()
        {
            MinSize = 1,
            MaxSize = 1,
            ScalingGroupName = myName,
            VswitchIds = new[]
            {
                defaultSwitch.Id,
            },
            RemovalPolicies = new[]
            {
                "OldestInstance",
                "NewestInstance",
            },
        });
    
        var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration("defaultScalingConfiguration", new()
        {
            ScalingGroupId = defaultScalingGroup.Id,
            ImageId = defaultImages.Apply(getImagesResult => getImagesResult.Images[0]?.Id),
            InstanceType = defaultInstanceTypes.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.Id),
            SecurityGroupId = defaultSecurityGroup.Id,
            ForceDelete = true,
        });
    
        var defaultScalingRule = new AliCloud.Ess.ScalingRule("defaultScalingRule", new()
        {
            ScalingGroupId = defaultScalingGroup.Id,
            AdjustmentType = "TotalCapacity",
            AdjustmentValue = 1,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.random.RandomInteger;
    import com.pulumi.random.RandomIntegerArgs;
    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.SecurityGroupRule;
    import com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;
    import com.pulumi.alicloud.ess.ScalingGroup;
    import com.pulumi.alicloud.ess.ScalingGroupArgs;
    import com.pulumi.alicloud.ess.ScalingConfiguration;
    import com.pulumi.alicloud.ess.ScalingConfigurationArgs;
    import com.pulumi.alicloud.ess.ScalingRule;
    import com.pulumi.alicloud.ess.ScalingRuleArgs;
    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 config = ctx.config();
            final var name = config.get("name").orElse("terraform-example");
            var defaultRandomInteger = new RandomInteger("defaultRandomInteger", RandomIntegerArgs.builder()        
                .min(10000)
                .max(99999)
                .build());
    
            final var myName = defaultRandomInteger.result().applyValue(result -> String.format("%s-%s", name,result));
    
            final var defaultZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
                .availableDiskCategory("cloud_efficiency")
                .availableResourceCreation("VSwitch")
                .build());
    
            final var defaultInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
                .availabilityZone(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
                .cpuCoreCount(2)
                .memorySize(4)
                .build());
    
            final var defaultImages = EcsFunctions.getImages(GetImagesArgs.builder()
                .nameRegex("^ubuntu_18.*64")
                .mostRecent(true)
                .owners("system")
                .build());
    
            var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()        
                .vpcName(myName)
                .cidrBlock("172.16.0.0/16")
                .build());
    
            var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()        
                .vpcId(defaultNetwork.id())
                .cidrBlock("172.16.0.0/24")
                .zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
                .vswitchName(myName)
                .build());
    
            var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()        
                .vpcId(defaultNetwork.id())
                .build());
    
            var defaultSecurityGroupRule = new SecurityGroupRule("defaultSecurityGroupRule", SecurityGroupRuleArgs.builder()        
                .type("ingress")
                .ipProtocol("tcp")
                .nicType("intranet")
                .policy("accept")
                .portRange("22/22")
                .priority(1)
                .securityGroupId(defaultSecurityGroup.id())
                .cidrIp("172.16.0.0/24")
                .build());
    
            var defaultScalingGroup = new ScalingGroup("defaultScalingGroup", ScalingGroupArgs.builder()        
                .minSize(1)
                .maxSize(1)
                .scalingGroupName(myName)
                .vswitchIds(defaultSwitch.id())
                .removalPolicies(            
                    "OldestInstance",
                    "NewestInstance")
                .build());
    
            var defaultScalingConfiguration = new ScalingConfiguration("defaultScalingConfiguration", ScalingConfigurationArgs.builder()        
                .scalingGroupId(defaultScalingGroup.id())
                .imageId(defaultImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
                .instanceType(defaultInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
                .securityGroupId(defaultSecurityGroup.id())
                .forceDelete("true")
                .build());
    
            var defaultScalingRule = new ScalingRule("defaultScalingRule", ScalingRuleArgs.builder()        
                .scalingGroupId(defaultScalingGroup.id())
                .adjustmentType("TotalCapacity")
                .adjustmentValue(1)
                .build());
    
        }
    }
    
    configuration:
      name:
        type: string
        default: terraform-example
    resources:
      defaultRandomInteger:
        type: random:RandomInteger
        properties:
          min: 10000
          max: 99999
      defaultNetwork:
        type: alicloud:vpc:Network
        properties:
          vpcName: ${myName}
          cidrBlock: 172.16.0.0/16
      defaultSwitch:
        type: alicloud:vpc:Switch
        properties:
          vpcId: ${defaultNetwork.id}
          cidrBlock: 172.16.0.0/24
          zoneId: ${defaultZones.zones[0].id}
          vswitchName: ${myName}
      defaultSecurityGroup:
        type: alicloud:ecs:SecurityGroup
        properties:
          vpcId: ${defaultNetwork.id}
      defaultSecurityGroupRule:
        type: alicloud:ecs:SecurityGroupRule
        properties:
          type: ingress
          ipProtocol: tcp
          nicType: intranet
          policy: accept
          portRange: 22/22
          priority: 1
          securityGroupId: ${defaultSecurityGroup.id}
          cidrIp: 172.16.0.0/24
      defaultScalingGroup:
        type: alicloud:ess:ScalingGroup
        properties:
          minSize: 1
          maxSize: 1
          scalingGroupName: ${myName}
          vswitchIds:
            - ${defaultSwitch.id}
          removalPolicies:
            - OldestInstance
            - NewestInstance
      defaultScalingConfiguration:
        type: alicloud:ess:ScalingConfiguration
        properties:
          scalingGroupId: ${defaultScalingGroup.id}
          imageId: ${defaultImages.images[0].id}
          instanceType: ${defaultInstanceTypes.instanceTypes[0].id}
          securityGroupId: ${defaultSecurityGroup.id}
          forceDelete: 'true'
      defaultScalingRule:
        type: alicloud:ess:ScalingRule
        properties:
          scalingGroupId: ${defaultScalingGroup.id}
          adjustmentType: TotalCapacity
          adjustmentValue: 1
    variables:
      myName: ${name}-${defaultRandomInteger.result}
      defaultZones:
        fn::invoke:
          Function: alicloud:getZones
          Arguments:
            availableDiskCategory: cloud_efficiency
            availableResourceCreation: VSwitch
      defaultInstanceTypes:
        fn::invoke:
          Function: alicloud:ecs:getInstanceTypes
          Arguments:
            availabilityZone: ${defaultZones.zones[0].id}
            cpuCoreCount: 2
            memorySize: 4
      defaultImages:
        fn::invoke:
          Function: alicloud:ecs:getImages
          Arguments:
            nameRegex: ^ubuntu_18.*64
            mostRecent: true
            owners: system
    

    Module Support

    You can use to the existing autoscaling-rule module to create different type rules, alarm task and scheduled task one-click.

    Create ScalingRule Resource

    new ScalingRule(name: string, args: ScalingRuleArgs, opts?: CustomResourceOptions);
    @overload
    def ScalingRule(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    adjustment_type: Optional[str] = None,
                    adjustment_value: Optional[int] = None,
                    alarm_dimension: Optional[ScalingRuleAlarmDimensionArgs] = None,
                    cooldown: Optional[int] = None,
                    disable_scale_in: Optional[bool] = None,
                    estimated_instance_warmup: Optional[int] = None,
                    metric_name: Optional[str] = None,
                    scaling_group_id: Optional[str] = None,
                    scaling_rule_name: Optional[str] = None,
                    scaling_rule_type: Optional[str] = None,
                    step_adjustments: Optional[Sequence[ScalingRuleStepAdjustmentArgs]] = None,
                    target_value: Optional[float] = None)
    @overload
    def ScalingRule(resource_name: str,
                    args: ScalingRuleArgs,
                    opts: Optional[ResourceOptions] = None)
    func NewScalingRule(ctx *Context, name string, args ScalingRuleArgs, opts ...ResourceOption) (*ScalingRule, error)
    public ScalingRule(string name, ScalingRuleArgs args, CustomResourceOptions? opts = null)
    public ScalingRule(String name, ScalingRuleArgs args)
    public ScalingRule(String name, ScalingRuleArgs args, CustomResourceOptions options)
    
    type: alicloud:ess:ScalingRule
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args ScalingRuleArgs
    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 ScalingRuleArgs
    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 ScalingRuleArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ScalingRuleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ScalingRuleArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    ScalingRule 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 ScalingRule resource accepts the following input properties:

    ScalingGroupId string
    ID of the scaling group of a scaling rule.
    AdjustmentType string
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    AdjustmentValue int
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    AlarmDimension Pulumi.AliCloud.Ess.Inputs.ScalingRuleAlarmDimension
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    Cooldown int
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    DisableScaleIn bool
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    EstimatedInstanceWarmup int
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    MetricName string
    A CloudMonitor metric name.
    ScalingRuleName string
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    ScalingRuleType string
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    StepAdjustments List<Pulumi.AliCloud.Ess.Inputs.ScalingRuleStepAdjustment>
    Steps for StepScalingRule. See step_adjustment below.
    TargetValue double
    The target value for the metric.
    ScalingGroupId string
    ID of the scaling group of a scaling rule.
    AdjustmentType string
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    AdjustmentValue int
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    AlarmDimension ScalingRuleAlarmDimensionArgs
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    Cooldown int
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    DisableScaleIn bool
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    EstimatedInstanceWarmup int
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    MetricName string
    A CloudMonitor metric name.
    ScalingRuleName string
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    ScalingRuleType string
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    StepAdjustments []ScalingRuleStepAdjustmentArgs
    Steps for StepScalingRule. See step_adjustment below.
    TargetValue float64
    The target value for the metric.
    scalingGroupId String
    ID of the scaling group of a scaling rule.
    adjustmentType String
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustmentValue Integer
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarmDimension ScalingRuleAlarmDimension
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    cooldown Integer
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disableScaleIn Boolean
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimatedInstanceWarmup Integer
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metricName String
    A CloudMonitor metric name.
    scalingRuleName String
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scalingRuleType String
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    stepAdjustments List<ScalingRuleStepAdjustment>
    Steps for StepScalingRule. See step_adjustment below.
    targetValue Double
    The target value for the metric.
    scalingGroupId string
    ID of the scaling group of a scaling rule.
    adjustmentType string
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustmentValue number
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarmDimension ScalingRuleAlarmDimension
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    cooldown number
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disableScaleIn boolean
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimatedInstanceWarmup number
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metricName string
    A CloudMonitor metric name.
    scalingRuleName string
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scalingRuleType string
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    stepAdjustments ScalingRuleStepAdjustment[]
    Steps for StepScalingRule. See step_adjustment below.
    targetValue number
    The target value for the metric.
    scaling_group_id str
    ID of the scaling group of a scaling rule.
    adjustment_type str
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustment_value int
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarm_dimension ScalingRuleAlarmDimensionArgs
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    cooldown int
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disable_scale_in bool
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimated_instance_warmup int
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metric_name str
    A CloudMonitor metric name.
    scaling_rule_name str
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scaling_rule_type str
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    step_adjustments Sequence[ScalingRuleStepAdjustmentArgs]
    Steps for StepScalingRule. See step_adjustment below.
    target_value float
    The target value for the metric.
    scalingGroupId String
    ID of the scaling group of a scaling rule.
    adjustmentType String
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustmentValue Number
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarmDimension Property Map
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    cooldown Number
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disableScaleIn Boolean
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimatedInstanceWarmup Number
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metricName String
    A CloudMonitor metric name.
    scalingRuleName String
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scalingRuleType String
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    stepAdjustments List<Property Map>
    Steps for StepScalingRule. See step_adjustment below.
    targetValue Number
    The target value for the metric.

    Outputs

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

    Ari string
    The unique identifier of the scaling rule.
    Id string
    The provider-assigned unique ID for this managed resource.
    Ari string
    The unique identifier of the scaling rule.
    Id string
    The provider-assigned unique ID for this managed resource.
    ari String
    The unique identifier of the scaling rule.
    id String
    The provider-assigned unique ID for this managed resource.
    ari string
    The unique identifier of the scaling rule.
    id string
    The provider-assigned unique ID for this managed resource.
    ari str
    The unique identifier of the scaling rule.
    id str
    The provider-assigned unique ID for this managed resource.
    ari String
    The unique identifier of the scaling rule.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing ScalingRule Resource

    Get an existing ScalingRule 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?: ScalingRuleState, opts?: CustomResourceOptions): ScalingRule
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            adjustment_type: Optional[str] = None,
            adjustment_value: Optional[int] = None,
            alarm_dimension: Optional[ScalingRuleAlarmDimensionArgs] = None,
            ari: Optional[str] = None,
            cooldown: Optional[int] = None,
            disable_scale_in: Optional[bool] = None,
            estimated_instance_warmup: Optional[int] = None,
            metric_name: Optional[str] = None,
            scaling_group_id: Optional[str] = None,
            scaling_rule_name: Optional[str] = None,
            scaling_rule_type: Optional[str] = None,
            step_adjustments: Optional[Sequence[ScalingRuleStepAdjustmentArgs]] = None,
            target_value: Optional[float] = None) -> ScalingRule
    func GetScalingRule(ctx *Context, name string, id IDInput, state *ScalingRuleState, opts ...ResourceOption) (*ScalingRule, error)
    public static ScalingRule Get(string name, Input<string> id, ScalingRuleState? state, CustomResourceOptions? opts = null)
    public static ScalingRule get(String name, Output<String> id, ScalingRuleState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AdjustmentType string
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    AdjustmentValue int
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    AlarmDimension Pulumi.AliCloud.Ess.Inputs.ScalingRuleAlarmDimension
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    Ari string
    The unique identifier of the scaling rule.
    Cooldown int
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    DisableScaleIn bool
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    EstimatedInstanceWarmup int
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    MetricName string
    A CloudMonitor metric name.
    ScalingGroupId string
    ID of the scaling group of a scaling rule.
    ScalingRuleName string
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    ScalingRuleType string
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    StepAdjustments List<Pulumi.AliCloud.Ess.Inputs.ScalingRuleStepAdjustment>
    Steps for StepScalingRule. See step_adjustment below.
    TargetValue double
    The target value for the metric.
    AdjustmentType string
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    AdjustmentValue int
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    AlarmDimension ScalingRuleAlarmDimensionArgs
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    Ari string
    The unique identifier of the scaling rule.
    Cooldown int
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    DisableScaleIn bool
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    EstimatedInstanceWarmup int
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    MetricName string
    A CloudMonitor metric name.
    ScalingGroupId string
    ID of the scaling group of a scaling rule.
    ScalingRuleName string
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    ScalingRuleType string
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    StepAdjustments []ScalingRuleStepAdjustmentArgs
    Steps for StepScalingRule. See step_adjustment below.
    TargetValue float64
    The target value for the metric.
    adjustmentType String
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustmentValue Integer
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarmDimension ScalingRuleAlarmDimension
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    ari String
    The unique identifier of the scaling rule.
    cooldown Integer
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disableScaleIn Boolean
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimatedInstanceWarmup Integer
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metricName String
    A CloudMonitor metric name.
    scalingGroupId String
    ID of the scaling group of a scaling rule.
    scalingRuleName String
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scalingRuleType String
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    stepAdjustments List<ScalingRuleStepAdjustment>
    Steps for StepScalingRule. See step_adjustment below.
    targetValue Double
    The target value for the metric.
    adjustmentType string
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustmentValue number
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarmDimension ScalingRuleAlarmDimension
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    ari string
    The unique identifier of the scaling rule.
    cooldown number
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disableScaleIn boolean
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimatedInstanceWarmup number
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metricName string
    A CloudMonitor metric name.
    scalingGroupId string
    ID of the scaling group of a scaling rule.
    scalingRuleName string
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scalingRuleType string
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    stepAdjustments ScalingRuleStepAdjustment[]
    Steps for StepScalingRule. See step_adjustment below.
    targetValue number
    The target value for the metric.
    adjustment_type str
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustment_value int
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarm_dimension ScalingRuleAlarmDimensionArgs
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    ari str
    The unique identifier of the scaling rule.
    cooldown int
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disable_scale_in bool
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimated_instance_warmup int
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metric_name str
    A CloudMonitor metric name.
    scaling_group_id str
    ID of the scaling group of a scaling rule.
    scaling_rule_name str
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scaling_rule_type str
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    step_adjustments Sequence[ScalingRuleStepAdjustmentArgs]
    Steps for StepScalingRule. See step_adjustment below.
    target_value float
    The target value for the metric.
    adjustmentType String
    Adjustment mode of a scaling rule. Optional values:

    • QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.
    • PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.
    • TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.
    adjustmentValue Number
    The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:

    • QuantityChangeInCapacity:(0, 500] U (-500, 0]
    • PercentChangeInCapacity:[0, 10000] U [-100, 0]
    • TotalCapacity:[0, 1000]
    alarmDimension Property Map
    AlarmDimension for StepScalingRule. See alarm_dimension below.
    ari String
    The unique identifier of the scaling rule.
    cooldown Number
    The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty,if not set, the return value will be 0, which is the default value of integer.
    disableScaleIn Boolean
    Indicates whether scale in by the target tracking policy is disabled. Default to false.
    estimatedInstanceWarmup Number
    The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.
    metricName String
    A CloudMonitor metric name.
    scalingGroupId String
    ID of the scaling group of a scaling rule.
    scalingRuleName String
    Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores _, hypens -, and decimal point .. If this parameter value is not specified, the default value is scaling rule id.
    scalingRuleType String
    The scaling rule type, either "SimpleScalingRule", "TargetTrackingScalingRule", "StepScalingRule". Default to "SimpleScalingRule".
    stepAdjustments List<Property Map>
    Steps for StepScalingRule. See step_adjustment below.
    targetValue Number
    The target value for the metric.

    Supporting Types

    ScalingRuleAlarmDimension, ScalingRuleAlarmDimensionArgs

    DimensionKey string
    The dimension key of the metric.
    DimensionValue string
    The dimension value of the metric.
    DimensionKey string
    The dimension key of the metric.
    DimensionValue string
    The dimension value of the metric.
    dimensionKey String
    The dimension key of the metric.
    dimensionValue String
    The dimension value of the metric.
    dimensionKey string
    The dimension key of the metric.
    dimensionValue string
    The dimension value of the metric.
    dimension_key str
    The dimension key of the metric.
    dimension_value str
    The dimension value of the metric.
    dimensionKey String
    The dimension key of the metric.
    dimensionValue String
    The dimension value of the metric.

    ScalingRuleStepAdjustment, ScalingRuleStepAdjustmentArgs

    MetricIntervalLowerBound string
    The lower bound of step.
    MetricIntervalUpperBound string
    The upper bound of step.
    ScalingAdjustment int
    The adjust value of step.
    MetricIntervalLowerBound string
    The lower bound of step.
    MetricIntervalUpperBound string
    The upper bound of step.
    ScalingAdjustment int
    The adjust value of step.
    metricIntervalLowerBound String
    The lower bound of step.
    metricIntervalUpperBound String
    The upper bound of step.
    scalingAdjustment Integer
    The adjust value of step.
    metricIntervalLowerBound string
    The lower bound of step.
    metricIntervalUpperBound string
    The upper bound of step.
    scalingAdjustment number
    The adjust value of step.
    metric_interval_lower_bound str
    The lower bound of step.
    metric_interval_upper_bound str
    The upper bound of step.
    scaling_adjustment int
    The adjust value of step.
    metricIntervalLowerBound String
    The lower bound of step.
    metricIntervalUpperBound String
    The upper bound of step.
    scalingAdjustment Number
    The adjust value of step.

    Import

    ESS scaling rule can be imported using the id, e.g.

    $ pulumi import alicloud:ess/scalingRule:ScalingRule example abc123456
    

    Package Details

    Repository
    Alibaba Cloud pulumi/pulumi-alicloud
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the alicloud Terraform Provider.
    alicloud logo
    Alibaba Cloud v3.51.0 published on Saturday, Mar 23, 2024 by Pulumi