ApplicationScalingRuleArgs

data class ApplicationScalingRuleArgs(val appId: Output<String>? = null, val minReadyInstanceRatio: Output<Int>? = null, val minReadyInstances: Output<Int>? = null, val scalingRuleEnable: Output<Boolean>? = null, val scalingRuleMetric: Output<ApplicationScalingRuleScalingRuleMetricArgs>? = null, val scalingRuleName: Output<String>? = null, val scalingRuleTimer: Output<ApplicationScalingRuleScalingRuleTimerArgs>? = null, val scalingRuleType: Output<String>? = null) : ConvertibleToJava<ApplicationScalingRuleArgs>

Provides a Serverless App Engine (SAE) Application Scaling Rule resource. For information about Serverless App Engine (SAE) Application Scaling Rule and how to use it, see What is Application Scaling Rule.

NOTE: Available in v1.159.0+.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.vpc.VpcFunctions;
import com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;
import com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;
import com.pulumi.alicloud.sae.Namespace;
import com.pulumi.alicloud.sae.NamespaceArgs;
import com.pulumi.alicloud.sae.Application;
import com.pulumi.alicloud.sae.ApplicationArgs;
import com.pulumi.alicloud.sae.ApplicationScalingRule;
import com.pulumi.alicloud.sae.ApplicationScalingRuleArgs;
import com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleTimerArgs;
import com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleMetricArgs;
import com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleMetricScaleUpRulesArgs;
import com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleMetricScaleDownRulesArgs;
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 defaultNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()
.nameRegex("default-NODELETING")
.build());
final var defaultSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()
.vpcId(defaultNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.build());
var defaultNamespace = new Namespace("defaultNamespace", NamespaceArgs.builder()
.namespaceDescription("example_value")
.namespaceId("example_value")
.namespaceName("example_value")
.build());
var defaultApplication = new Application("defaultApplication", ApplicationArgs.builder()
.appDescription("example_value")
.appName("example_value")
.namespaceId(defaultNamespace.namespaceId())
.imageUrl("registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5")
.packageType("Image")
.jdk("Open JDK 8")
.vswitchId(defaultSwitches.applyValue(getSwitchesResult -> getSwitchesResult.ids()[0]))
.vpcId(defaultNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.timezone("Asia/Shanghai")
.replicas("5")
.cpu("500")
.memory("2048")
.build());
var example = new ApplicationScalingRule("example", ApplicationScalingRuleArgs.builder()
.appId(defaultApplication.id())
.scalingRuleName("example-value")
.scalingRuleEnable(true)
.scalingRuleType("mix")
.scalingRuleTimer(ApplicationScalingRuleScalingRuleTimerArgs.builder()
.beginDate("2022-02-25")
.endDate("2022-03-25")
.period("* * *")
.schedules(
ApplicationScalingRuleScalingRuleTimerScheduleArgs.builder()
.atTime("08:00")
.maxReplicas(10)
.minReplicas(3)
.build(),
ApplicationScalingRuleScalingRuleTimerScheduleArgs.builder()
.atTime("20:00")
.maxReplicas(50)
.minReplicas(3)
.build())
.build())
.scalingRuleMetric(ApplicationScalingRuleScalingRuleMetricArgs.builder()
.maxReplicas(50)
.minReplicas(3)
.metrics(
ApplicationScalingRuleScalingRuleMetricMetricArgs.builder()
.metricType("CPU")
.metricTargetAverageUtilization(20)
.build(),
ApplicationScalingRuleScalingRuleMetricMetricArgs.builder()
.metricType("MEMORY")
.metricTargetAverageUtilization(30)
.build(),
ApplicationScalingRuleScalingRuleMetricMetricArgs.builder()
.metricType("tcpActiveConn")
.metricTargetAverageUtilization(20)
.build())
.scaleUpRules(ApplicationScalingRuleScalingRuleMetricScaleUpRulesArgs.builder()
.step(10)
.disabled(false)
.stabilizationWindowSeconds(0)
.build())
.scaleDownRules(ApplicationScalingRuleScalingRuleMetricScaleDownRulesArgs.builder()
.step(10)
.disabled(false)
.stabilizationWindowSeconds(10)
.build())
.build())
.build());
}
}

Import

Serverless App Engine (SAE) Application Scaling Rule can be imported using the id, e.g.

$ pulumi import alicloud:sae/applicationScalingRule:ApplicationScalingRule example <app_id>:<scaling_rule_name>

Constructors

Link copied to clipboard
fun ApplicationScalingRuleArgs(appId: Output<String>? = null, minReadyInstanceRatio: Output<Int>? = null, minReadyInstances: Output<Int>? = null, scalingRuleEnable: Output<Boolean>? = null, scalingRuleMetric: Output<ApplicationScalingRuleScalingRuleMetricArgs>? = null, scalingRuleName: Output<String>? = null, scalingRuleTimer: Output<ApplicationScalingRuleScalingRuleTimerArgs>? = null, scalingRuleType: Output<String>? = null)

Functions

Link copied to clipboard
open override fun toJava(): ApplicationScalingRuleArgs

Properties

Link copied to clipboard
val appId: Output<String>? = null

Application ID.

Link copied to clipboard
val minReadyInstanceRatio: Output<Int>? = null

The min ready instance ratio.

Link copied to clipboard
val minReadyInstances: Output<Int>? = null

The min ready instances.

Link copied to clipboard
val scalingRuleEnable: Output<Boolean>? = null

True whether the auto scaling policy is enabled. The value description is as follows: true: enabled state. false: disabled status. Valid values: false, true.

Link copied to clipboard

Monitor the configuration of the indicator elasticity strategy. See the following Block scaling_rule_metric.

Link copied to clipboard
val scalingRuleName: Output<String>? = null

The name of a custom elastic scaling policy. In the application, the policy name cannot be repeated. It must start with a lowercase letter, and can only contain lowercase letters, numbers, and dashes (-), and no more than 32 characters. After the scaling policy is successfully created, the policy name cannot be modified.

Link copied to clipboard

Configuration of Timing Resilient Policies. See the following Block scaling_rule_timer.

Link copied to clipboard
val scalingRuleType: Output<String>? = null

Flexible strategy type. Valid values: mix, timing and metric.