ApplicationScalingRule

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>

Properties

Link copied to clipboard
val appId: Output<String>

Application ID.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

The min ready instance ratio.

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

The min ready instances.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

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>

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>

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

Link copied to clipboard
val urn: Output<String>