Eci Scaling Configuration Args
Provides a ESS eci scaling configuration resource. For information about ess eci scaling configuration, see CreateEciScalingConfiguration.
NOTE: Available since v1.164.0.
Example Usage
Basic 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 defaultInteger = new random.index.Integer("default", {
min: 10000,
max: 99999,
});
const myName = `${name}-${defaultInteger.result}`;
const _default = alicloud.getZones({
availableDiskCategory: "cloud_efficiency",
availableResourceCreation: "VSwitch",
});
const defaultNetwork = new alicloud.vpc.Network("default", {
vpcName: myName,
cidrBlock: "172.16.0.0/16",
});
const defaultSwitch = new alicloud.vpc.Switch("default", {
vpcId: defaultNetwork.id,
cidrBlock: "172.16.0.0/24",
zoneId: _default.then(_default => _default.zones?.[0]?.id),
vswitchName: myName,
});
const defaultSecurityGroup = new alicloud.ecs.SecurityGroup("default", {
name: myName,
vpcId: defaultNetwork.id,
});
const defaultScalingGroup = new alicloud.ess.ScalingGroup("default", {
minSize: 0,
maxSize: 1,
scalingGroupName: myName,
removalPolicies: [
"OldestInstance",
"NewestInstance",
],
vswitchIds: [defaultSwitch.id],
groupType: "ECI",
});
const defaultEciScalingConfiguration = new alicloud.ess.EciScalingConfiguration("default", {
scalingGroupId: defaultScalingGroup.id,
cpu: 2,
memory: 4,
securityGroupId: defaultSecurityGroup.id,
forceDelete: true,
active: true,
containerGroupName: "container-group-1649839595174",
containers: [{
name: "container-1",
image: "registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5",
}],
});
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_integer = random.index.Integer("default",
min=10000,
max=99999)
my_name = f"{name}-{default_integer['result']}"
default = alicloud.get_zones(available_disk_category="cloud_efficiency",
available_resource_creation="VSwitch")
default_network = alicloud.vpc.Network("default",
vpc_name=my_name,
cidr_block="172.16.0.0/16")
default_switch = alicloud.vpc.Switch("default",
vpc_id=default_network.id,
cidr_block="172.16.0.0/24",
zone_id=default.zones[0].id,
vswitch_name=my_name)
default_security_group = alicloud.ecs.SecurityGroup("default",
name=my_name,
vpc_id=default_network.id)
default_scaling_group = alicloud.ess.ScalingGroup("default",
min_size=0,
max_size=1,
scaling_group_name=my_name,
removal_policies=[
"OldestInstance",
"NewestInstance",
],
vswitch_ids=[default_switch.id],
group_type="ECI")
default_eci_scaling_configuration = alicloud.ess.EciScalingConfiguration("default",
scaling_group_id=default_scaling_group.id,
cpu=2,
memory=4,
security_group_id=default_security_group.id,
force_delete=True,
active=True,
container_group_name="container-group-1649839595174",
containers=[{
"name": "container-1",
"image": "registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5",
}])
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 defaultInteger = new Random.Index.Integer("default", new()
{
Min = 10000,
Max = 99999,
});
var myName = $"{name}-{defaultInteger.Result}";
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableDiskCategory = "cloud_efficiency",
AvailableResourceCreation = "VSwitch",
});
var defaultNetwork = new AliCloud.Vpc.Network("default", new()
{
VpcName = myName,
CidrBlock = "172.16.0.0/16",
});
var defaultSwitch = new AliCloud.Vpc.Switch("default", new()
{
VpcId = defaultNetwork.Id,
CidrBlock = "172.16.0.0/24",
ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
VswitchName = myName,
});
var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup("default", new()
{
Name = myName,
VpcId = defaultNetwork.Id,
});
var defaultScalingGroup = new AliCloud.Ess.ScalingGroup("default", new()
{
MinSize = 0,
MaxSize = 1,
ScalingGroupName = myName,
RemovalPolicies = new[]
{
"OldestInstance",
"NewestInstance",
},
VswitchIds = new[]
{
defaultSwitch.Id,
},
GroupType = "ECI",
});
var defaultEciScalingConfiguration = new AliCloud.Ess.EciScalingConfiguration("default", new()
{
ScalingGroupId = defaultScalingGroup.Id,
Cpu = 2,
Memory = 4,
SecurityGroupId = defaultSecurityGroup.Id,
ForceDelete = true,
Active = true,
ContainerGroupName = "container-group-1649839595174",
Containers = new[]
{
new AliCloud.Ess.Inputs.EciScalingConfigurationContainerArgs
{
Name = "container-1",
Image = "registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5",
},
},
});
});
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
}
defaultInteger, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Min: 10000,
Max: 99999,
})
if err != nil {
return err
}
myName := fmt.Sprintf("%v-%v", name, defaultInteger.Result)
_default, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableDiskCategory: pulumi.StringRef("cloud_efficiency"),
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
defaultNetwork, err := vpc.NewNetwork(ctx, "default", &vpc.NetworkArgs{
VpcName: pulumi.String(myName),
CidrBlock: pulumi.String("172.16.0.0/16"),
})
if err != nil {
return err
}
defaultSwitch, err := vpc.NewSwitch(ctx, "default", &vpc.SwitchArgs{
VpcId: defaultNetwork.ID(),
CidrBlock: pulumi.String("172.16.0.0/24"),
ZoneId: pulumi.String(_default.Zones[0].Id),
VswitchName: pulumi.String(myName),
})
if err != nil {
return err
}
defaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, "default", &ecs.SecurityGroupArgs{
Name: pulumi.String(myName),
VpcId: defaultNetwork.ID(),
})
if err != nil {
return err
}
defaultScalingGroup, err := ess.NewScalingGroup(ctx, "default", &ess.ScalingGroupArgs{
MinSize: pulumi.Int(0),
MaxSize: pulumi.Int(1),
ScalingGroupName: pulumi.String(myName),
RemovalPolicies: pulumi.StringArray{
pulumi.String("OldestInstance"),
pulumi.String("NewestInstance"),
},
VswitchIds: pulumi.StringArray{
defaultSwitch.ID(),
},
GroupType: pulumi.String("ECI"),
})
if err != nil {
return err
}
_, err = ess.NewEciScalingConfiguration(ctx, "default", &ess.EciScalingConfigurationArgs{
ScalingGroupId: defaultScalingGroup.ID(),
Cpu: pulumi.Float64(2),
Memory: pulumi.Float64(4),
SecurityGroupId: defaultSecurityGroup.ID(),
ForceDelete: pulumi.Bool(true),
Active: pulumi.Bool(true),
ContainerGroupName: pulumi.String("container-group-1649839595174"),
Containers: ess.EciScalingConfigurationContainerArray{
&ess.EciScalingConfigurationContainerArgs{
Name: pulumi.String("container-1"),
Image: pulumi.String("registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.integerArgs;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
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.ess.ScalingGroup;
import com.pulumi.alicloud.ess.ScalingGroupArgs;
import com.pulumi.alicloud.ess.EciScalingConfiguration;
import com.pulumi.alicloud.ess.EciScalingConfigurationArgs;
import com.pulumi.alicloud.ess.inputs.EciScalingConfigurationContainerArgs;
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 defaultInteger = new Integer("defaultInteger", IntegerArgs.builder()
.min(10000)
.max(99999)
.build());
final var myName = String.format("%s-%s", name,defaultInteger.result());
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_efficiency")
.availableResourceCreation("VSwitch")
.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(default_.zones()[0].id())
.vswitchName(myName)
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.name(myName)
.vpcId(defaultNetwork.id())
.build());
var defaultScalingGroup = new ScalingGroup("defaultScalingGroup", ScalingGroupArgs.builder()
.minSize(0)
.maxSize(1)
.scalingGroupName(myName)
.removalPolicies(
"OldestInstance",
"NewestInstance")
.vswitchIds(defaultSwitch.id())
.groupType("ECI")
.build());
var defaultEciScalingConfiguration = new EciScalingConfiguration("defaultEciScalingConfiguration", EciScalingConfigurationArgs.builder()
.scalingGroupId(defaultScalingGroup.id())
.cpu(2.0)
.memory(4.0)
.securityGroupId(defaultSecurityGroup.id())
.forceDelete(true)
.active(true)
.containerGroupName("container-group-1649839595174")
.containers(EciScalingConfigurationContainerArgs.builder()
.name("container-1")
.image("registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5")
.build())
.build());
}
}
configuration:
name:
type: string
default: terraform-example
resources:
defaultInteger:
type: random:integer
name: default
properties:
min: 10000
max: 99999
defaultNetwork:
type: alicloud:vpc:Network
name: default
properties:
vpcName: ${myName}
cidrBlock: 172.16.0.0/16
defaultSwitch:
type: alicloud:vpc:Switch
name: default
properties:
vpcId: ${defaultNetwork.id}
cidrBlock: 172.16.0.0/24
zoneId: ${default.zones[0].id}
vswitchName: ${myName}
defaultSecurityGroup:
type: alicloud:ecs:SecurityGroup
name: default
properties:
name: ${myName}
vpcId: ${defaultNetwork.id}
defaultScalingGroup:
type: alicloud:ess:ScalingGroup
name: default
properties:
minSize: 0
maxSize: 1
scalingGroupName: ${myName}
removalPolicies:
- OldestInstance
- NewestInstance
vswitchIds:
- ${defaultSwitch.id}
groupType: ECI
defaultEciScalingConfiguration:
type: alicloud:ess:EciScalingConfiguration
name: default
properties:
scalingGroupId: ${defaultScalingGroup.id}
cpu: 2
memory: 4
securityGroupId: ${defaultSecurityGroup.id}
forceDelete: true
active: true
containerGroupName: container-group-1649839595174
containers:
- name: container-1
image: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5
variables:
myName: ${name}-${defaultInteger.result}
default:
fn::invoke:
function: alicloud:getZones
arguments:
availableDiskCategory: cloud_efficiency
availableResourceCreation: VSwitch
Import
ESS eci scaling configuration can be imported using the id, e.g.
$ pulumi import alicloud:ess/eciScalingConfiguration:EciScalingConfiguration example asc-abc123456
Constructors
Properties
Information about the Container Registry Enterprise Edition instance. See acr_registry_infos
below for details.
The duration in seconds relative to the startTime that the job may be active before the system tries to terminate it.
Whether create eip automatically.
Whether to automatically match the image cache.
The name series of the elastic container instances created from the scaling configuration. If you want to use an ordered instance name, specify the value for this parameter in the following format: name_prefix(AUTO_INCREMENT)begin_number,bitsname_suffix. name_prefix: the prefix of the hostname. (AUTO_INCREMENT): the sort method. This is a static field. begin_number: the start value of the sequential values. Valid values: 0 to 999999. bits: the number of digits in sequential values. Valid values: 1 to 6. If the number of digits in the specified begin_number value is greater than the value of the bits field, the bits field is automatically set to 6. name_suffix: the suffix of the hostname. This field is optional.
The list of containers. See containers
below for details.
Indicates whether the Cost Optimization feature is enabled. Valid values: true,false.
The number of physical CPU cores. You can specify this parameter for only specific instance types.
The number of threads per core. You can specify this parameter for only specific instance types. If you set this parameter to 1, Hyper-Threading is disabled.
The description of data disk N. Valid values of N: 1 to 16. The description must be 2 to 256 characters in length and cannot start with http:// or https://.
The options. Each option is a name-value pair. The value in the name-value pair is optional. See dns_config_options
below for details.
egress bandwidth.
Eip bandwidth.
The size of ephemeral storage.
The eci scaling configuration will be deleted forcibly with deleting its scaling group. Default to false.
HostAliases. See host_aliases
below.
The image registry credential. See image_registry_credentials
below for details.
The ID of image cache.
Ingress bandwidth.
The list of initContainers. See init_containers
below for details.
The level of the instance family, which is used to filter instance types that meet the specified criteria. This parameter takes effect only if you set CostOptimization to true. Valid values: EntryLevel, EnterpriseLevel, CreditEntryLevel.
The specified ECS instance types. You can specify up to five ECS instance types.
Number of IPv6 addresses.
The weight of an ECI instance attached to the Server Group.
The RAM role that the container group assumes. ECI and ECS share the same RAM role.
ID of resource group.
The restart policy of the container group. Default to Always
.
Name shown for the scheduled task. 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 EciScalingConfigurationId.
ID of the scaling group of a eci scaling configuration.
The system information about the security context in which the elastic container instance is run. See security_context_sysctls
below for details.
ID of the security group used to create new instance. It is conflict with security_group_ids
.
The maximum price hourly for spot instance.
The spot strategy for a Pay-As-You-Go instance. Valid values: NoSpot
, SpotAsPriceGo
, SpotWithPriceLimit
.
The program's buffering time before closing.
The list of volumes. See volumes
below for details.