Try AWS Native preview for resources not in the classic version.
aws.autoscaling.Group
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
Provides an Auto Scaling Group resource.
Note: You must specify either
launch_configuration
,launch_template
, ormixed_instances_policy
.
NOTE on Auto Scaling Groups, Attachments and Traffic Source Attachments: Pulumi provides standalone Attachment (for attaching Classic Load Balancers and Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target groups) and Traffic Source Attachment (for attaching Load Balancers and VPC Lattice target groups) resources and an Auto Scaling Group resource with
load_balancers
,target_group_arns
andtraffic_source
attributes. Do not use the same traffic source in more than one of these resources. Doing so will cause a conflict of attachments. Alifecycle
configuration block can be used to suppress differences if necessary.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.ec2.PlacementGroup("test", {
name: "test",
strategy: aws.ec2.PlacementStrategy.Cluster,
});
const bar = new aws.autoscaling.Group("bar", {
name: "foobar3-test",
maxSize: 5,
minSize: 2,
healthCheckGracePeriod: 300,
healthCheckType: "ELB",
desiredCapacity: 4,
forceDelete: true,
placementGroup: test.id,
launchConfiguration: foobar.name,
vpcZoneIdentifiers: [
example1.id,
example2.id,
],
instanceMaintenancePolicy: {
minHealthyPercentage: 90,
maxHealthyPercentage: 120,
},
initialLifecycleHooks: [{
name: "foobar",
defaultResult: "CONTINUE",
heartbeatTimeout: 2000,
lifecycleTransition: "autoscaling:EC2_INSTANCE_LAUNCHING",
notificationMetadata: JSON.stringify({
foo: "bar",
}),
notificationTargetArn: "arn:aws:sqs:us-east-1:444455556666:queue1*",
roleArn: "arn:aws:iam::123456789012:role/S3Access",
}],
tags: [
{
key: "foo",
value: "bar",
propagateAtLaunch: true,
},
{
key: "lorem",
value: "ipsum",
propagateAtLaunch: false,
},
],
});
import pulumi
import json
import pulumi_aws as aws
test = aws.ec2.PlacementGroup("test",
name="test",
strategy=aws.ec2.PlacementStrategy.CLUSTER)
bar = aws.autoscaling.Group("bar",
name="foobar3-test",
max_size=5,
min_size=2,
health_check_grace_period=300,
health_check_type="ELB",
desired_capacity=4,
force_delete=True,
placement_group=test.id,
launch_configuration=foobar["name"],
vpc_zone_identifiers=[
example1["id"],
example2["id"],
],
instance_maintenance_policy={
"minHealthyPercentage": 90,
"maxHealthyPercentage": 120,
},
initial_lifecycle_hooks=[{
"name": "foobar",
"defaultResult": "CONTINUE",
"heartbeatTimeout": 2000,
"lifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
"notificationMetadata": json.dumps({
"foo": "bar",
}),
"notificationTargetArn": "arn:aws:sqs:us-east-1:444455556666:queue1*",
"roleArn": "arn:aws:iam::123456789012:role/S3Access",
}],
tags=[
{
"key": "foo",
"value": "bar",
"propagateAtLaunch": True,
},
{
"key": "lorem",
"value": "ipsum",
"propagateAtLaunch": False,
},
])
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
test, err := ec2.NewPlacementGroup(ctx, "test", &ec2.PlacementGroupArgs{
Name: pulumi.String("test"),
Strategy: pulumi.String(ec2.PlacementStrategyCluster),
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal(map[string]interface{}{
"foo": "bar",
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
Name: pulumi.String("foobar3-test"),
MaxSize: pulumi.Int(5),
MinSize: pulumi.Int(2),
HealthCheckGracePeriod: pulumi.Int(300),
HealthCheckType: pulumi.String("ELB"),
DesiredCapacity: pulumi.Int(4),
ForceDelete: pulumi.Bool(true),
PlacementGroup: test.ID(),
LaunchConfiguration: pulumi.Any(foobar.Name),
VpcZoneIdentifiers: pulumi.StringArray{
example1.Id,
example2.Id,
},
InstanceMaintenancePolicy: &autoscaling.GroupInstanceMaintenancePolicyArgs{
MinHealthyPercentage: pulumi.Int(90),
MaxHealthyPercentage: pulumi.Int(120),
},
InitialLifecycleHooks: autoscaling.GroupInitialLifecycleHookArray{
&autoscaling.GroupInitialLifecycleHookArgs{
Name: pulumi.String("foobar"),
DefaultResult: pulumi.String("CONTINUE"),
HeartbeatTimeout: pulumi.Int(2000),
LifecycleTransition: pulumi.String("autoscaling:EC2_INSTANCE_LAUNCHING"),
NotificationMetadata: pulumi.String(json0),
NotificationTargetArn: pulumi.String("arn:aws:sqs:us-east-1:444455556666:queue1*"),
RoleArn: pulumi.String("arn:aws:iam::123456789012:role/S3Access"),
},
},
Tags: autoscaling.GroupTagArray{
&autoscaling.GroupTagArgs{
Key: pulumi.String("foo"),
Value: pulumi.String("bar"),
PropagateAtLaunch: pulumi.Bool(true),
},
&autoscaling.GroupTagArgs{
Key: pulumi.String("lorem"),
Value: pulumi.String("ipsum"),
PropagateAtLaunch: pulumi.Bool(false),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.Ec2.PlacementGroup("test", new()
{
Name = "test",
Strategy = Aws.Ec2.PlacementStrategy.Cluster,
});
var bar = new Aws.AutoScaling.Group("bar", new()
{
Name = "foobar3-test",
MaxSize = 5,
MinSize = 2,
HealthCheckGracePeriod = 300,
HealthCheckType = "ELB",
DesiredCapacity = 4,
ForceDelete = true,
PlacementGroup = test.Id,
LaunchConfiguration = foobar.Name,
VpcZoneIdentifiers = new[]
{
example1.Id,
example2.Id,
},
InstanceMaintenancePolicy = new Aws.AutoScaling.Inputs.GroupInstanceMaintenancePolicyArgs
{
MinHealthyPercentage = 90,
MaxHealthyPercentage = 120,
},
InitialLifecycleHooks = new[]
{
new Aws.AutoScaling.Inputs.GroupInitialLifecycleHookArgs
{
Name = "foobar",
DefaultResult = "CONTINUE",
HeartbeatTimeout = 2000,
LifecycleTransition = "autoscaling:EC2_INSTANCE_LAUNCHING",
NotificationMetadata = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["foo"] = "bar",
}),
NotificationTargetArn = "arn:aws:sqs:us-east-1:444455556666:queue1*",
RoleArn = "arn:aws:iam::123456789012:role/S3Access",
},
},
Tags = new[]
{
new Aws.AutoScaling.Inputs.GroupTagArgs
{
Key = "foo",
Value = "bar",
PropagateAtLaunch = true,
},
new Aws.AutoScaling.Inputs.GroupTagArgs
{
Key = "lorem",
Value = "ipsum",
PropagateAtLaunch = false,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.PlacementGroup;
import com.pulumi.aws.ec2.PlacementGroupArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupInstanceMaintenancePolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupInitialLifecycleHookArgs;
import com.pulumi.aws.autoscaling.inputs.GroupTagArgs;
import static com.pulumi.codegen.internal.Serialization.*;
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) {
var test = new PlacementGroup("test", PlacementGroupArgs.builder()
.name("test")
.strategy("cluster")
.build());
var bar = new Group("bar", GroupArgs.builder()
.name("foobar3-test")
.maxSize(5)
.minSize(2)
.healthCheckGracePeriod(300)
.healthCheckType("ELB")
.desiredCapacity(4)
.forceDelete(true)
.placementGroup(test.id())
.launchConfiguration(foobar.name())
.vpcZoneIdentifiers(
example1.id(),
example2.id())
.instanceMaintenancePolicy(GroupInstanceMaintenancePolicyArgs.builder()
.minHealthyPercentage(90)
.maxHealthyPercentage(120)
.build())
.initialLifecycleHooks(GroupInitialLifecycleHookArgs.builder()
.name("foobar")
.defaultResult("CONTINUE")
.heartbeatTimeout(2000)
.lifecycleTransition("autoscaling:EC2_INSTANCE_LAUNCHING")
.notificationMetadata(serializeJson(
jsonObject(
jsonProperty("foo", "bar")
)))
.notificationTargetArn("arn:aws:sqs:us-east-1:444455556666:queue1*")
.roleArn("arn:aws:iam::123456789012:role/S3Access")
.build())
.tags(
GroupTagArgs.builder()
.key("foo")
.value("bar")
.propagateAtLaunch(true)
.build(),
GroupTagArgs.builder()
.key("lorem")
.value("ipsum")
.propagateAtLaunch(false)
.build())
.build());
}
}
resources:
test:
type: aws:ec2:PlacementGroup
properties:
name: test
strategy: cluster
bar:
type: aws:autoscaling:Group
properties:
name: foobar3-test
maxSize: 5
minSize: 2
healthCheckGracePeriod: 300
healthCheckType: ELB
desiredCapacity: 4
forceDelete: true
placementGroup: ${test.id}
launchConfiguration: ${foobar.name}
vpcZoneIdentifiers:
- ${example1.id}
- ${example2.id}
instanceMaintenancePolicy:
minHealthyPercentage: 90
maxHealthyPercentage: 120
initialLifecycleHooks:
- name: foobar
defaultResult: CONTINUE
heartbeatTimeout: 2000
lifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING
notificationMetadata:
fn::toJSON:
foo: bar
notificationTargetArn: arn:aws:sqs:us-east-1:444455556666:queue1*
roleArn: arn:aws:iam::123456789012:role/S3Access
tags:
- key: foo
value: bar
propagateAtLaunch: true
- key: lorem
value: ipsum
propagateAtLaunch: false
With Latest Version Of Launch Template
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const foobar = new aws.ec2.LaunchTemplate("foobar", {
namePrefix: "foobar",
imageId: "ami-1a2b3c",
instanceType: "t2.micro",
});
const bar = new aws.autoscaling.Group("bar", {
availabilityZones: ["us-east-1a"],
desiredCapacity: 1,
maxSize: 1,
minSize: 1,
launchTemplate: {
id: foobar.id,
version: "$Latest",
},
});
import pulumi
import pulumi_aws as aws
foobar = aws.ec2.LaunchTemplate("foobar",
name_prefix="foobar",
image_id="ami-1a2b3c",
instance_type="t2.micro")
bar = aws.autoscaling.Group("bar",
availability_zones=["us-east-1a"],
desired_capacity=1,
max_size=1,
min_size=1,
launch_template={
"id": foobar.id,
"version": "$Latest",
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
foobar, err := ec2.NewLaunchTemplate(ctx, "foobar", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("foobar"),
ImageId: pulumi.String("ami-1a2b3c"),
InstanceType: pulumi.String("t2.micro"),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("us-east-1a"),
},
DesiredCapacity: pulumi.Int(1),
MaxSize: pulumi.Int(1),
MinSize: pulumi.Int(1),
LaunchTemplate: &autoscaling.GroupLaunchTemplateArgs{
Id: foobar.ID(),
Version: pulumi.String("$Latest"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var foobar = new Aws.Ec2.LaunchTemplate("foobar", new()
{
NamePrefix = "foobar",
ImageId = "ami-1a2b3c",
InstanceType = "t2.micro",
});
var bar = new Aws.AutoScaling.Group("bar", new()
{
AvailabilityZones = new[]
{
"us-east-1a",
},
DesiredCapacity = 1,
MaxSize = 1,
MinSize = 1,
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupLaunchTemplateArgs
{
Id = foobar.Id,
Version = "$Latest",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupLaunchTemplateArgs;
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) {
var foobar = new LaunchTemplate("foobar", LaunchTemplateArgs.builder()
.namePrefix("foobar")
.imageId("ami-1a2b3c")
.instanceType("t2.micro")
.build());
var bar = new Group("bar", GroupArgs.builder()
.availabilityZones("us-east-1a")
.desiredCapacity(1)
.maxSize(1)
.minSize(1)
.launchTemplate(GroupLaunchTemplateArgs.builder()
.id(foobar.id())
.version("$Latest")
.build())
.build());
}
}
resources:
foobar:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: foobar
imageId: ami-1a2b3c
instanceType: t2.micro
bar:
type: aws:autoscaling:Group
properties:
availabilityZones:
- us-east-1a
desiredCapacity: 1
maxSize: 1
minSize: 1
launchTemplate:
id: ${foobar.id}
version: $Latest
Mixed Instances Policy
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ec2.LaunchTemplate("example", {
namePrefix: "example",
imageId: exampleAwsAmi.id,
instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("example", {
availabilityZones: ["us-east-1a"],
desiredCapacity: 1,
maxSize: 1,
minSize: 1,
mixedInstancesPolicy: {
launchTemplate: {
launchTemplateSpecification: {
launchTemplateId: example.id,
},
overrides: [
{
instanceType: "c4.large",
weightedCapacity: "3",
},
{
instanceType: "c3.large",
weightedCapacity: "2",
},
],
},
},
});
import pulumi
import pulumi_aws as aws
example = aws.ec2.LaunchTemplate("example",
name_prefix="example",
image_id=example_aws_ami["id"],
instance_type="c5.large")
example_group = aws.autoscaling.Group("example",
availability_zones=["us-east-1a"],
desired_capacity=1,
max_size=1,
min_size=1,
mixed_instances_policy={
"launchTemplate": {
"launchTemplateSpecification": {
"launchTemplateId": example.id,
},
"overrides": [
{
"instanceType": "c4.large",
"weightedCapacity": "3",
},
{
"instanceType": "c3.large",
"weightedCapacity": "2",
},
],
},
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("example"),
ImageId: pulumi.Any(exampleAwsAmi.Id),
InstanceType: pulumi.String("c5.large"),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("us-east-1a"),
},
DesiredCapacity: pulumi.Int(1),
MaxSize: pulumi.Int(1),
MinSize: pulumi.Int(1),
MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
LaunchTemplateId: example.ID(),
},
Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceType: pulumi.String("c4.large"),
WeightedCapacity: pulumi.String("3"),
},
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceType: pulumi.String("c3.large"),
WeightedCapacity: pulumi.String("2"),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ec2.LaunchTemplate("example", new()
{
NamePrefix = "example",
ImageId = exampleAwsAmi.Id,
InstanceType = "c5.large",
});
var exampleGroup = new Aws.AutoScaling.Group("example", new()
{
AvailabilityZones = new[]
{
"us-east-1a",
},
DesiredCapacity = 1,
MaxSize = 1,
MinSize = 1,
MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
{
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
{
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
{
LaunchTemplateId = example.Id,
},
Overrides = new[]
{
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceType = "c4.large",
WeightedCapacity = "3",
},
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceType = "c3.large",
WeightedCapacity = "2",
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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) {
var example = new LaunchTemplate("example", LaunchTemplateArgs.builder()
.namePrefix("example")
.imageId(exampleAwsAmi.id())
.instanceType("c5.large")
.build());
var exampleGroup = new Group("exampleGroup", GroupArgs.builder()
.availabilityZones("us-east-1a")
.desiredCapacity(1)
.maxSize(1)
.minSize(1)
.mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
.launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
.launchTemplateId(example.id())
.build())
.overrides(
GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceType("c4.large")
.weightedCapacity("3")
.build(),
GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceType("c3.large")
.weightedCapacity("2")
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: example
imageId: ${exampleAwsAmi.id}
instanceType: c5.large
exampleGroup:
type: aws:autoscaling:Group
name: example
properties:
availabilityZones:
- us-east-1a
desiredCapacity: 1
maxSize: 1
minSize: 1
mixedInstancesPolicy:
launchTemplate:
launchTemplateSpecification:
launchTemplateId: ${example.id}
overrides:
- instanceType: c4.large
weightedCapacity: '3'
- instanceType: c3.large
weightedCapacity: '2'
Mixed Instances Policy with Spot Instances and Capacity Rebalance
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ec2.LaunchTemplate("example", {
namePrefix: "example",
imageId: exampleAwsAmi.id,
instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("example", {
capacityRebalance: true,
desiredCapacity: 12,
maxSize: 15,
minSize: 12,
vpcZoneIdentifiers: [
example1.id,
example2.id,
],
mixedInstancesPolicy: {
instancesDistribution: {
onDemandBaseCapacity: 0,
onDemandPercentageAboveBaseCapacity: 25,
spotAllocationStrategy: "capacity-optimized",
},
launchTemplate: {
launchTemplateSpecification: {
launchTemplateId: example.id,
},
overrides: [
{
instanceType: "c4.large",
weightedCapacity: "3",
},
{
instanceType: "c3.large",
weightedCapacity: "2",
},
],
},
},
});
import pulumi
import pulumi_aws as aws
example = aws.ec2.LaunchTemplate("example",
name_prefix="example",
image_id=example_aws_ami["id"],
instance_type="c5.large")
example_group = aws.autoscaling.Group("example",
capacity_rebalance=True,
desired_capacity=12,
max_size=15,
min_size=12,
vpc_zone_identifiers=[
example1["id"],
example2["id"],
],
mixed_instances_policy={
"instancesDistribution": {
"onDemandBaseCapacity": 0,
"onDemandPercentageAboveBaseCapacity": 25,
"spotAllocationStrategy": "capacity-optimized",
},
"launchTemplate": {
"launchTemplateSpecification": {
"launchTemplateId": example.id,
},
"overrides": [
{
"instanceType": "c4.large",
"weightedCapacity": "3",
},
{
"instanceType": "c3.large",
"weightedCapacity": "2",
},
],
},
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("example"),
ImageId: pulumi.Any(exampleAwsAmi.Id),
InstanceType: pulumi.String("c5.large"),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
CapacityRebalance: pulumi.Bool(true),
DesiredCapacity: pulumi.Int(12),
MaxSize: pulumi.Int(15),
MinSize: pulumi.Int(12),
VpcZoneIdentifiers: pulumi.StringArray{
example1.Id,
example2.Id,
},
MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
InstancesDistribution: &autoscaling.GroupMixedInstancesPolicyInstancesDistributionArgs{
OnDemandBaseCapacity: pulumi.Int(0),
OnDemandPercentageAboveBaseCapacity: pulumi.Int(25),
SpotAllocationStrategy: pulumi.String("capacity-optimized"),
},
LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
LaunchTemplateId: example.ID(),
},
Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceType: pulumi.String("c4.large"),
WeightedCapacity: pulumi.String("3"),
},
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceType: pulumi.String("c3.large"),
WeightedCapacity: pulumi.String("2"),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ec2.LaunchTemplate("example", new()
{
NamePrefix = "example",
ImageId = exampleAwsAmi.Id,
InstanceType = "c5.large",
});
var exampleGroup = new Aws.AutoScaling.Group("example", new()
{
CapacityRebalance = true,
DesiredCapacity = 12,
MaxSize = 15,
MinSize = 12,
VpcZoneIdentifiers = new[]
{
example1.Id,
example2.Id,
},
MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
{
InstancesDistribution = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyInstancesDistributionArgs
{
OnDemandBaseCapacity = 0,
OnDemandPercentageAboveBaseCapacity = 25,
SpotAllocationStrategy = "capacity-optimized",
},
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
{
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
{
LaunchTemplateId = example.Id,
},
Overrides = new[]
{
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceType = "c4.large",
WeightedCapacity = "3",
},
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceType = "c3.large",
WeightedCapacity = "2",
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyInstancesDistributionArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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) {
var example = new LaunchTemplate("example", LaunchTemplateArgs.builder()
.namePrefix("example")
.imageId(exampleAwsAmi.id())
.instanceType("c5.large")
.build());
var exampleGroup = new Group("exampleGroup", GroupArgs.builder()
.capacityRebalance(true)
.desiredCapacity(12)
.maxSize(15)
.minSize(12)
.vpcZoneIdentifiers(
example1.id(),
example2.id())
.mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
.instancesDistribution(GroupMixedInstancesPolicyInstancesDistributionArgs.builder()
.onDemandBaseCapacity(0)
.onDemandPercentageAboveBaseCapacity(25)
.spotAllocationStrategy("capacity-optimized")
.build())
.launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
.launchTemplateId(example.id())
.build())
.overrides(
GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceType("c4.large")
.weightedCapacity("3")
.build(),
GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceType("c3.large")
.weightedCapacity("2")
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: example
imageId: ${exampleAwsAmi.id}
instanceType: c5.large
exampleGroup:
type: aws:autoscaling:Group
name: example
properties:
capacityRebalance: true
desiredCapacity: 12
maxSize: 15
minSize: 12
vpcZoneIdentifiers:
- ${example1.id}
- ${example2.id}
mixedInstancesPolicy:
instancesDistribution:
onDemandBaseCapacity: 0
onDemandPercentageAboveBaseCapacity: 25
spotAllocationStrategy: capacity-optimized
launchTemplate:
launchTemplateSpecification:
launchTemplateId: ${example.id}
overrides:
- instanceType: c4.large
weightedCapacity: '3'
- instanceType: c3.large
weightedCapacity: '2'
Mixed Instances Policy with Instance level LaunchTemplateSpecification Overrides
When using a diverse instance set, some instance types might require a launch template with configuration values unique to that instance type such as a different AMI (Graviton2), architecture specific user data script, different EBS configuration, or different networking configuration.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ec2.LaunchTemplate("example", {
namePrefix: "example",
imageId: exampleAwsAmi.id,
instanceType: "c5.large",
});
const example2 = new aws.ec2.LaunchTemplate("example2", {
namePrefix: "example2",
imageId: example2AwsAmi.id,
});
const exampleGroup = new aws.autoscaling.Group("example", {
availabilityZones: ["us-east-1a"],
desiredCapacity: 1,
maxSize: 1,
minSize: 1,
mixedInstancesPolicy: {
launchTemplate: {
launchTemplateSpecification: {
launchTemplateId: example.id,
},
overrides: [
{
instanceType: "c4.large",
weightedCapacity: "3",
},
{
instanceType: "c6g.large",
launchTemplateSpecification: {
launchTemplateId: example2.id,
},
weightedCapacity: "2",
},
],
},
},
});
import pulumi
import pulumi_aws as aws
example = aws.ec2.LaunchTemplate("example",
name_prefix="example",
image_id=example_aws_ami["id"],
instance_type="c5.large")
example2 = aws.ec2.LaunchTemplate("example2",
name_prefix="example2",
image_id=example2_aws_ami["id"])
example_group = aws.autoscaling.Group("example",
availability_zones=["us-east-1a"],
desired_capacity=1,
max_size=1,
min_size=1,
mixed_instances_policy={
"launchTemplate": {
"launchTemplateSpecification": {
"launchTemplateId": example.id,
},
"overrides": [
{
"instanceType": "c4.large",
"weightedCapacity": "3",
},
{
"instanceType": "c6g.large",
"launchTemplateSpecification": {
"launchTemplateId": example2.id,
},
"weightedCapacity": "2",
},
],
},
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("example"),
ImageId: pulumi.Any(exampleAwsAmi.Id),
InstanceType: pulumi.String("c5.large"),
})
if err != nil {
return err
}
example2, err := ec2.NewLaunchTemplate(ctx, "example2", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("example2"),
ImageId: pulumi.Any(example2AwsAmi.Id),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("us-east-1a"),
},
DesiredCapacity: pulumi.Int(1),
MaxSize: pulumi.Int(1),
MinSize: pulumi.Int(1),
MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
LaunchTemplateId: example.ID(),
},
Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceType: pulumi.String("c4.large"),
WeightedCapacity: pulumi.String("3"),
},
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceType: pulumi.String("c6g.large"),
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs{
LaunchTemplateId: example2.ID(),
},
WeightedCapacity: pulumi.String("2"),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ec2.LaunchTemplate("example", new()
{
NamePrefix = "example",
ImageId = exampleAwsAmi.Id,
InstanceType = "c5.large",
});
var example2 = new Aws.Ec2.LaunchTemplate("example2", new()
{
NamePrefix = "example2",
ImageId = example2AwsAmi.Id,
});
var exampleGroup = new Aws.AutoScaling.Group("example", new()
{
AvailabilityZones = new[]
{
"us-east-1a",
},
DesiredCapacity = 1,
MaxSize = 1,
MinSize = 1,
MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
{
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
{
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
{
LaunchTemplateId = example.Id,
},
Overrides = new[]
{
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceType = "c4.large",
WeightedCapacity = "3",
},
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceType = "c6g.large",
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs
{
LaunchTemplateId = example2.Id,
},
WeightedCapacity = "2",
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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) {
var example = new LaunchTemplate("example", LaunchTemplateArgs.builder()
.namePrefix("example")
.imageId(exampleAwsAmi.id())
.instanceType("c5.large")
.build());
var example2 = new LaunchTemplate("example2", LaunchTemplateArgs.builder()
.namePrefix("example2")
.imageId(example2AwsAmi.id())
.build());
var exampleGroup = new Group("exampleGroup", GroupArgs.builder()
.availabilityZones("us-east-1a")
.desiredCapacity(1)
.maxSize(1)
.minSize(1)
.mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
.launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
.launchTemplateId(example.id())
.build())
.overrides(
GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceType("c4.large")
.weightedCapacity("3")
.build(),
GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceType("c6g.large")
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs.builder()
.launchTemplateId(example2.id())
.build())
.weightedCapacity("2")
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: example
imageId: ${exampleAwsAmi.id}
instanceType: c5.large
example2:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: example2
imageId: ${example2AwsAmi.id}
exampleGroup:
type: aws:autoscaling:Group
name: example
properties:
availabilityZones:
- us-east-1a
desiredCapacity: 1
maxSize: 1
minSize: 1
mixedInstancesPolicy:
launchTemplate:
launchTemplateSpecification:
launchTemplateId: ${example.id}
overrides:
- instanceType: c4.large
weightedCapacity: '3'
- instanceType: c6g.large
launchTemplateSpecification:
launchTemplateId: ${example2.id}
weightedCapacity: '2'
Mixed Instances Policy with Attribute-based Instance Type Selection
As an alternative to manually choosing instance types when creating a mixed instances group, you can specify a set of instance attributes that describe your compute requirements.
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ec2.LaunchTemplate("example", {
namePrefix: "example",
imageId: exampleAwsAmi.id,
instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("example", {
availabilityZones: ["us-east-1a"],
desiredCapacity: 1,
maxSize: 1,
minSize: 1,
mixedInstancesPolicy: {
launchTemplate: {
launchTemplateSpecification: {
launchTemplateId: example.id,
},
overrides: [{
instanceRequirements: {
memoryMib: {
min: 1000,
},
vcpuCount: {
min: 4,
},
},
}],
},
},
});
import pulumi
import pulumi_aws as aws
example = aws.ec2.LaunchTemplate("example",
name_prefix="example",
image_id=example_aws_ami["id"],
instance_type="c5.large")
example_group = aws.autoscaling.Group("example",
availability_zones=["us-east-1a"],
desired_capacity=1,
max_size=1,
min_size=1,
mixed_instances_policy={
"launchTemplate": {
"launchTemplateSpecification": {
"launchTemplateId": example.id,
},
"overrides": [{
"instanceRequirements": {
"memoryMib": {
"min": 1000,
},
"vcpuCount": {
"min": 4,
},
},
}],
},
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("example"),
ImageId: pulumi.Any(exampleAwsAmi.Id),
InstanceType: pulumi.String("c5.large"),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("us-east-1a"),
},
DesiredCapacity: pulumi.Int(1),
MaxSize: pulumi.Int(1),
MinSize: pulumi.Int(1),
MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
LaunchTemplateId: example.ID(),
},
Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceRequirements: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs{
MemoryMib: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs{
Min: pulumi.Int(1000),
},
VcpuCount: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs{
Min: pulumi.Int(4),
},
},
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ec2.LaunchTemplate("example", new()
{
NamePrefix = "example",
ImageId = exampleAwsAmi.Id,
InstanceType = "c5.large",
});
var exampleGroup = new Aws.AutoScaling.Group("example", new()
{
AvailabilityZones = new[]
{
"us-east-1a",
},
DesiredCapacity = 1,
MaxSize = 1,
MinSize = 1,
MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
{
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
{
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
{
LaunchTemplateId = example.Id,
},
Overrides = new[]
{
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceRequirements = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs
{
MemoryMib = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs
{
Min = 1000,
},
VcpuCount = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs
{
Min = 4,
},
},
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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) {
var example = new LaunchTemplate("example", LaunchTemplateArgs.builder()
.namePrefix("example")
.imageId(exampleAwsAmi.id())
.instanceType("c5.large")
.build());
var exampleGroup = new Group("exampleGroup", GroupArgs.builder()
.availabilityZones("us-east-1a")
.desiredCapacity(1)
.maxSize(1)
.minSize(1)
.mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
.launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
.launchTemplateId(example.id())
.build())
.overrides(GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceRequirements(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs.builder()
.memoryMib(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.builder()
.min(1000)
.build())
.vcpuCount(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.builder()
.min(4)
.build())
.build())
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: example
imageId: ${exampleAwsAmi.id}
instanceType: c5.large
exampleGroup:
type: aws:autoscaling:Group
name: example
properties:
availabilityZones:
- us-east-1a
desiredCapacity: 1
maxSize: 1
minSize: 1
mixedInstancesPolicy:
launchTemplate:
launchTemplateSpecification:
launchTemplateId: ${example.id}
overrides:
- instanceRequirements:
memoryMib:
min: 1000
vcpuCount:
min: 4
Dynamic tagging
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const config = new pulumi.Config();
const extraTags = config.getObject("extraTags") || [
{
key: "Foo",
propagateAtLaunch: true,
value: "Bar",
},
{
key: "Baz",
propagateAtLaunch: true,
value: "Bam",
},
];
const test = new aws.autoscaling.Group("test", {
tags: [
{
key: "explicit1",
value: "value1",
propagateAtLaunch: true,
},
{
key: "explicit2",
value: "value2",
propagateAtLaunch: true,
},
],
name: "foobar3-test",
maxSize: 5,
minSize: 2,
launchConfiguration: foobar.name,
vpcZoneIdentifiers: [
example1.id,
example2.id,
],
});
import pulumi
import pulumi_aws as aws
config = pulumi.Config()
extra_tags = config.get_object("extraTags")
if extra_tags is None:
extra_tags = [
{
"key": "Foo",
"propagateAtLaunch": True,
"value": "Bar",
},
{
"key": "Baz",
"propagateAtLaunch": True,
"value": "Bam",
},
]
test = aws.autoscaling.Group("test",
tags=[
{
"key": "explicit1",
"value": "value1",
"propagateAtLaunch": True,
},
{
"key": "explicit2",
"value": "value2",
"propagateAtLaunch": True,
},
],
name="foobar3-test",
max_size=5,
min_size=2,
launch_configuration=foobar["name"],
vpc_zone_identifiers=[
example1["id"],
example2["id"],
])
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"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, "")
extraTags := []map[string]interface{}{
map[string]interface{}{
"key": "Foo",
"propagateAtLaunch": true,
"value": "Bar",
},
map[string]interface{}{
"key": "Baz",
"propagateAtLaunch": true,
"value": "Bam",
},
}
if param := cfg.GetObject("extraTags"); param != nil {
extraTags = param
}
_, err := autoscaling.NewGroup(ctx, "test", &autoscaling.GroupArgs{
Tags: autoscaling.GroupTagArray{
&autoscaling.GroupTagArgs{
Key: pulumi.String("explicit1"),
Value: pulumi.String("value1"),
PropagateAtLaunch: pulumi.Bool(true),
},
&autoscaling.GroupTagArgs{
Key: pulumi.String("explicit2"),
Value: pulumi.String("value2"),
PropagateAtLaunch: pulumi.Bool(true),
},
},
Name: pulumi.String("foobar3-test"),
MaxSize: pulumi.Int(5),
MinSize: pulumi.Int(2),
LaunchConfiguration: pulumi.Any(foobar.Name),
VpcZoneIdentifiers: pulumi.StringArray{
example1.Id,
example2.Id,
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var extraTags = config.GetObject<dynamic>("extraTags") ?? new[]
{
{
{ "key", "Foo" },
{ "propagateAtLaunch", true },
{ "value", "Bar" },
},
{
{ "key", "Baz" },
{ "propagateAtLaunch", true },
{ "value", "Bam" },
},
};
var test = new Aws.AutoScaling.Group("test", new()
{
Tags = new[]
{
new Aws.AutoScaling.Inputs.GroupTagArgs
{
Key = "explicit1",
Value = "value1",
PropagateAtLaunch = true,
},
new Aws.AutoScaling.Inputs.GroupTagArgs
{
Key = "explicit2",
Value = "value2",
PropagateAtLaunch = true,
},
},
Name = "foobar3-test",
MaxSize = 5,
MinSize = 2,
LaunchConfiguration = foobar.Name,
VpcZoneIdentifiers = new[]
{
example1.Id,
example2.Id,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupTagArgs;
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 extraTags = config.get("extraTags").orElse(
%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));
var test = new Group("test", GroupArgs.builder()
.tags(
GroupTagArgs.builder()
.key("explicit1")
.value("value1")
.propagateAtLaunch(true)
.build(),
GroupTagArgs.builder()
.key("explicit2")
.value("value2")
.propagateAtLaunch(true)
.build())
.name("foobar3-test")
.maxSize(5)
.minSize(2)
.launchConfiguration(foobar.name())
.vpcZoneIdentifiers(
example1.id(),
example2.id())
.build());
}
}
configuration:
extraTags:
type: dynamic
default:
- key: Foo
propagateAtLaunch: true
value: Bar
- key: Baz
propagateAtLaunch: true
value: Bam
resources:
test:
type: aws:autoscaling:Group
properties:
tags:
- key: explicit1
value: value1
propagateAtLaunch: true
- key: explicit2
value: value2
propagateAtLaunch: true
name: foobar3-test
maxSize: 5
minSize: 2
launchConfiguration: ${foobar.name}
vpcZoneIdentifiers:
- ${example1.id}
- ${example2.id}
Automatically refresh all instances after the group is updated
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = aws.ec2.getAmi({
mostRecent: true,
owners: ["amazon"],
filters: [{
name: "name",
values: ["amzn-ami-hvm-*-x86_64-gp2"],
}],
});
const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("example", {
imageId: example.then(example => example.id),
instanceType: "t3.nano",
});
const exampleGroup = new aws.autoscaling.Group("example", {
availabilityZones: ["us-east-1a"],
desiredCapacity: 1,
maxSize: 2,
minSize: 1,
launchTemplate: {
id: exampleLaunchTemplate.id,
version: exampleLaunchTemplate.latestVersion,
},
tags: [{
key: "Key",
value: "Value",
propagateAtLaunch: true,
}],
instanceRefresh: {
strategy: "Rolling",
preferences: {
minHealthyPercentage: 50,
},
triggers: ["tag"],
},
});
import pulumi
import pulumi_aws as aws
example = aws.ec2.get_ami(most_recent=True,
owners=["amazon"],
filters=[{
"name": "name",
"values": ["amzn-ami-hvm-*-x86_64-gp2"],
}])
example_launch_template = aws.ec2.LaunchTemplate("example",
image_id=example.id,
instance_type="t3.nano")
example_group = aws.autoscaling.Group("example",
availability_zones=["us-east-1a"],
desired_capacity=1,
max_size=2,
min_size=1,
launch_template={
"id": example_launch_template.id,
"version": example_launch_template.latest_version,
},
tags=[{
"key": "Key",
"value": "Value",
"propagateAtLaunch": True,
}],
instance_refresh={
"strategy": "Rolling",
"preferences": {
"minHealthyPercentage": 50,
},
"triggers": ["tag"],
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
MostRecent: pulumi.BoolRef(true),
Owners: []string{
"amazon",
},
Filters: []ec2.GetAmiFilter{
{
Name: "name",
Values: []string{
"amzn-ami-hvm-*-x86_64-gp2",
},
},
},
}, nil)
if err != nil {
return err
}
exampleLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
ImageId: pulumi.String(example.Id),
InstanceType: pulumi.String("t3.nano"),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("us-east-1a"),
},
DesiredCapacity: pulumi.Int(1),
MaxSize: pulumi.Int(2),
MinSize: pulumi.Int(1),
LaunchTemplate: &autoscaling.GroupLaunchTemplateArgs{
Id: exampleLaunchTemplate.ID(),
Version: exampleLaunchTemplate.LatestVersion,
},
Tags: autoscaling.GroupTagArray{
&autoscaling.GroupTagArgs{
Key: pulumi.String("Key"),
Value: pulumi.String("Value"),
PropagateAtLaunch: pulumi.Bool(true),
},
},
InstanceRefresh: &autoscaling.GroupInstanceRefreshArgs{
Strategy: pulumi.String("Rolling"),
Preferences: &autoscaling.GroupInstanceRefreshPreferencesArgs{
MinHealthyPercentage: pulumi.Int(50),
},
Triggers: pulumi.StringArray{
pulumi.String("tag"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = Aws.Ec2.GetAmi.Invoke(new()
{
MostRecent = true,
Owners = new[]
{
"amazon",
},
Filters = new[]
{
new Aws.Ec2.Inputs.GetAmiFilterInputArgs
{
Name = "name",
Values = new[]
{
"amzn-ami-hvm-*-x86_64-gp2",
},
},
},
});
var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("example", new()
{
ImageId = example.Apply(getAmiResult => getAmiResult.Id),
InstanceType = "t3.nano",
});
var exampleGroup = new Aws.AutoScaling.Group("example", new()
{
AvailabilityZones = new[]
{
"us-east-1a",
},
DesiredCapacity = 1,
MaxSize = 2,
MinSize = 1,
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupLaunchTemplateArgs
{
Id = exampleLaunchTemplate.Id,
Version = exampleLaunchTemplate.LatestVersion,
},
Tags = new[]
{
new Aws.AutoScaling.Inputs.GroupTagArgs
{
Key = "Key",
Value = "Value",
PropagateAtLaunch = true,
},
},
InstanceRefresh = new Aws.AutoScaling.Inputs.GroupInstanceRefreshArgs
{
Strategy = "Rolling",
Preferences = new Aws.AutoScaling.Inputs.GroupInstanceRefreshPreferencesArgs
{
MinHealthyPercentage = 50,
},
Triggers = new[]
{
"tag",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetAmiArgs;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupTagArgs;
import com.pulumi.aws.autoscaling.inputs.GroupInstanceRefreshArgs;
import com.pulumi.aws.autoscaling.inputs.GroupInstanceRefreshPreferencesArgs;
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 example = Ec2Functions.getAmi(GetAmiArgs.builder()
.mostRecent(true)
.owners("amazon")
.filters(GetAmiFilterArgs.builder()
.name("name")
.values("amzn-ami-hvm-*-x86_64-gp2")
.build())
.build());
var exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()
.imageId(example.applyValue(getAmiResult -> getAmiResult.id()))
.instanceType("t3.nano")
.build());
var exampleGroup = new Group("exampleGroup", GroupArgs.builder()
.availabilityZones("us-east-1a")
.desiredCapacity(1)
.maxSize(2)
.minSize(1)
.launchTemplate(GroupLaunchTemplateArgs.builder()
.id(exampleLaunchTemplate.id())
.version(exampleLaunchTemplate.latestVersion())
.build())
.tags(GroupTagArgs.builder()
.key("Key")
.value("Value")
.propagateAtLaunch(true)
.build())
.instanceRefresh(GroupInstanceRefreshArgs.builder()
.strategy("Rolling")
.preferences(GroupInstanceRefreshPreferencesArgs.builder()
.minHealthyPercentage(50)
.build())
.triggers("tag")
.build())
.build());
}
}
resources:
exampleGroup:
type: aws:autoscaling:Group
name: example
properties:
availabilityZones:
- us-east-1a
desiredCapacity: 1
maxSize: 2
minSize: 1
launchTemplate:
id: ${exampleLaunchTemplate.id}
version: ${exampleLaunchTemplate.latestVersion}
tags:
- key: Key
value: Value
propagateAtLaunch: true
instanceRefresh:
strategy: Rolling
preferences:
minHealthyPercentage: 50
triggers:
- tag
exampleLaunchTemplate:
type: aws:ec2:LaunchTemplate
name: example
properties:
imageId: ${example.id}
instanceType: t3.nano
variables:
example:
fn::invoke:
Function: aws:ec2:getAmi
Arguments:
mostRecent: true
owners:
- amazon
filters:
- name: name
values:
- amzn-ami-hvm-*-x86_64-gp2
Auto Scaling group with Warm Pool
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ec2.LaunchTemplate("example", {
namePrefix: "example",
imageId: exampleAwsAmi.id,
instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("example", {
availabilityZones: ["us-east-1a"],
desiredCapacity: 1,
maxSize: 5,
minSize: 1,
warmPool: {
poolState: "Hibernated",
minSize: 1,
maxGroupPreparedCapacity: 10,
instanceReusePolicy: {
reuseOnScaleIn: true,
},
},
});
import pulumi
import pulumi_aws as aws
example = aws.ec2.LaunchTemplate("example",
name_prefix="example",
image_id=example_aws_ami["id"],
instance_type="c5.large")
example_group = aws.autoscaling.Group("example",
availability_zones=["us-east-1a"],
desired_capacity=1,
max_size=5,
min_size=1,
warm_pool={
"poolState": "Hibernated",
"minSize": 1,
"maxGroupPreparedCapacity": 10,
"instanceReusePolicy": {
"reuseOnScaleIn": True,
},
})
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
NamePrefix: pulumi.String("example"),
ImageId: pulumi.Any(exampleAwsAmi.Id),
InstanceType: pulumi.String("c5.large"),
})
if err != nil {
return err
}
_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
AvailabilityZones: pulumi.StringArray{
pulumi.String("us-east-1a"),
},
DesiredCapacity: pulumi.Int(1),
MaxSize: pulumi.Int(5),
MinSize: pulumi.Int(1),
WarmPool: &autoscaling.GroupWarmPoolArgs{
PoolState: pulumi.String("Hibernated"),
MinSize: pulumi.Int(1),
MaxGroupPreparedCapacity: pulumi.Int(10),
InstanceReusePolicy: &autoscaling.GroupWarmPoolInstanceReusePolicyArgs{
ReuseOnScaleIn: pulumi.Bool(true),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ec2.LaunchTemplate("example", new()
{
NamePrefix = "example",
ImageId = exampleAwsAmi.Id,
InstanceType = "c5.large",
});
var exampleGroup = new Aws.AutoScaling.Group("example", new()
{
AvailabilityZones = new[]
{
"us-east-1a",
},
DesiredCapacity = 1,
MaxSize = 5,
MinSize = 1,
WarmPool = new Aws.AutoScaling.Inputs.GroupWarmPoolArgs
{
PoolState = "Hibernated",
MinSize = 1,
MaxGroupPreparedCapacity = 10,
InstanceReusePolicy = new Aws.AutoScaling.Inputs.GroupWarmPoolInstanceReusePolicyArgs
{
ReuseOnScaleIn = true,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupWarmPoolArgs;
import com.pulumi.aws.autoscaling.inputs.GroupWarmPoolInstanceReusePolicyArgs;
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) {
var example = new LaunchTemplate("example", LaunchTemplateArgs.builder()
.namePrefix("example")
.imageId(exampleAwsAmi.id())
.instanceType("c5.large")
.build());
var exampleGroup = new Group("exampleGroup", GroupArgs.builder()
.availabilityZones("us-east-1a")
.desiredCapacity(1)
.maxSize(5)
.minSize(1)
.warmPool(GroupWarmPoolArgs.builder()
.poolState("Hibernated")
.minSize(1)
.maxGroupPreparedCapacity(10)
.instanceReusePolicy(GroupWarmPoolInstanceReusePolicyArgs.builder()
.reuseOnScaleIn(true)
.build())
.build())
.build());
}
}
resources:
example:
type: aws:ec2:LaunchTemplate
properties:
namePrefix: example
imageId: ${exampleAwsAmi.id}
instanceType: c5.large
exampleGroup:
type: aws:autoscaling:Group
name: example
properties:
availabilityZones:
- us-east-1a
desiredCapacity: 1
maxSize: 5
minSize: 1
warmPool:
poolState: Hibernated
minSize: 1
maxGroupPreparedCapacity: 10
instanceReusePolicy:
reuseOnScaleIn: true
Auto Scaling group with Traffic Sources
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.autoscaling.Group("test", {
trafficSources: testAwsVpclatticeTargetGroup.map(__item => __item).map((v, k) => ({key: k, value: v})).map(entry => ({
identifier: entry.value.arn,
type: "vpc-lattice",
})),
vpcZoneIdentifiers: testAwsSubnet.id,
maxSize: 1,
minSize: 1,
forceDelete: true,
});
import pulumi
import pulumi_aws as aws
test = aws.autoscaling.Group("test",
traffic_sources=[{
"identifier": entry["value"]["arn"],
"type": "vpc-lattice",
} for entry in [{"key": k, "value": v} for k, v in [__item for __item in test_aws_vpclattice_target_group]]],
vpc_zone_identifiers=test_aws_subnet["id"],
max_size=1,
min_size=1,
force_delete=True)
Coming soon!
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.AutoScaling.Group("test", new()
{
TrafficSources = testAwsVpclatticeTargetGroup.Select(__item => __item).ToList().Select((v, k) => new { Key = k, Value = v }).Select(entry =>
{
return new Aws.AutoScaling.Inputs.GroupTrafficSourceArgs
{
Identifier = entry.Value.Arn,
Type = "vpc-lattice",
};
}).ToList(),
VpcZoneIdentifiers = testAwsSubnet.Id,
MaxSize = 1,
MinSize = 1,
ForceDelete = true,
});
});
Coming soon!
Coming soon!
Waiting for Capacity
A newly-created ASG is initially empty and begins to scale to min_size
(or
desired_capacity
, if specified) by launching instances using the provided
Launch Configuration. These instances take time to launch and boot.
On ASG Update, changes to these values also take time to result in the target number of instances providing service.
This provider provides two mechanisms to help consistently manage ASG scale up time across dependent resources.
Waiting for ASG Capacity
The first is default behavior. This provider waits after ASG creation for
min_size
(or desired_capacity
, if specified) healthy instances to show up
in the ASG before continuing.
If min_size
or desired_capacity
are changed in a subsequent update,
this provider will also wait for the correct number of healthy instances before
continuing.
This provider considers an instance “healthy” when the ASG reports HealthStatus: "Healthy"
and LifecycleState: "InService"
. See the AWS AutoScaling
Docs
for more information on an ASG’s lifecycle.
This provider will wait for healthy instances for up to
wait_for_capacity_timeout
. If ASG creation is taking more than a few minutes,
it’s worth investigating for scaling activity errors, which can be caused by
problems with the selected Launch Configuration.
Setting wait_for_capacity_timeout
to "0"
disables ASG Capacity waiting.
Waiting for ELB Capacity
The second mechanism is optional, and affects ASGs with attached ELBs specified
via the load_balancers
attribute or with ALBs specified with target_group_arns
.
The min_elb_capacity
parameter causes the provider to wait for at least the
requested number of instances to show up "InService"
in all attached ELBs
during ASG creation. It has no effect on ASG updates.
If wait_for_elb_capacity
is set, the provider will wait for exactly that number
of Instances to be "InService"
in all attached ELBs on both creation and
updates.
These parameters can be used to ensure that service is being provided before the provider moves on. If new instances don’t pass the ELB’s health checks for any reason, the apply will time out, and the ASG will be marked as tainted (i.e., marked to be destroyed in a follow up run).
As with ASG Capacity, the provider will wait for up to wait_for_capacity_timeout
for the proper number of instances to be healthy.
Troubleshooting Capacity Waiting Timeouts
If ASG creation takes more than a few minutes, this could indicate one of a number of configuration problems. See the AWS Docs on Load Balancer Troubleshooting for more information.
Create Group Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Group(name: string, args: GroupArgs, opts?: CustomResourceOptions);
@overload
def Group(resource_name: str,
args: GroupArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Group(resource_name: str,
opts: Optional[ResourceOptions] = None,
max_size: Optional[int] = None,
min_size: Optional[int] = None,
load_balancers: Optional[Sequence[str]] = None,
wait_for_elb_capacity: Optional[int] = None,
default_instance_warmup: Optional[int] = None,
context: Optional[str] = None,
desired_capacity_type: Optional[str] = None,
enabled_metrics: Optional[Sequence[str]] = None,
force_delete: Optional[bool] = None,
force_delete_warm_pool: Optional[bool] = None,
health_check_grace_period: Optional[int] = None,
health_check_type: Optional[str] = None,
ignore_failed_scaling_activities: Optional[bool] = None,
initial_lifecycle_hooks: Optional[Sequence[GroupInitialLifecycleHookArgs]] = None,
instance_maintenance_policy: Optional[GroupInstanceMaintenancePolicyArgs] = None,
instance_refresh: Optional[GroupInstanceRefreshArgs] = None,
launch_configuration: Optional[str] = None,
launch_template: Optional[GroupLaunchTemplateArgs] = None,
availability_zones: Optional[Sequence[str]] = None,
max_instance_lifetime: Optional[int] = None,
desired_capacity: Optional[int] = None,
default_cooldown: Optional[int] = None,
capacity_rebalance: Optional[bool] = None,
min_elb_capacity: Optional[int] = None,
mixed_instances_policy: Optional[GroupMixedInstancesPolicyArgs] = None,
name: Optional[str] = None,
name_prefix: Optional[str] = None,
placement_group: Optional[str] = None,
protect_from_scale_in: Optional[bool] = None,
service_linked_role_arn: Optional[str] = None,
suspended_processes: Optional[Sequence[str]] = None,
tags: Optional[Sequence[GroupTagArgs]] = None,
target_group_arns: Optional[Sequence[str]] = None,
termination_policies: Optional[Sequence[str]] = None,
traffic_sources: Optional[Sequence[GroupTrafficSourceArgs]] = None,
vpc_zone_identifiers: Optional[Sequence[str]] = None,
wait_for_capacity_timeout: Optional[str] = None,
metrics_granularity: Optional[Union[str, MetricsGranularity]] = None,
warm_pool: Optional[GroupWarmPoolArgs] = None)
func NewGroup(ctx *Context, name string, args GroupArgs, opts ...ResourceOption) (*Group, error)
public Group(string name, GroupArgs args, CustomResourceOptions? opts = null)
type: aws:autoscaling:Group
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args GroupArgs
- 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 GroupArgs
- 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 GroupArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args GroupArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args GroupArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var groupResource = new Aws.AutoScaling.Group("groupResource", new()
{
MaxSize = 0,
MinSize = 0,
LoadBalancers = new[]
{
"string",
},
WaitForElbCapacity = 0,
DefaultInstanceWarmup = 0,
Context = "string",
DesiredCapacityType = "string",
EnabledMetrics = new[]
{
"string",
},
ForceDelete = false,
ForceDeleteWarmPool = false,
HealthCheckGracePeriod = 0,
HealthCheckType = "string",
IgnoreFailedScalingActivities = false,
InitialLifecycleHooks = new[]
{
new Aws.AutoScaling.Inputs.GroupInitialLifecycleHookArgs
{
LifecycleTransition = "string",
Name = "string",
DefaultResult = "string",
HeartbeatTimeout = 0,
NotificationMetadata = "string",
NotificationTargetArn = "string",
RoleArn = "string",
},
},
InstanceMaintenancePolicy = new Aws.AutoScaling.Inputs.GroupInstanceMaintenancePolicyArgs
{
MaxHealthyPercentage = 0,
MinHealthyPercentage = 0,
},
InstanceRefresh = new Aws.AutoScaling.Inputs.GroupInstanceRefreshArgs
{
Strategy = "string",
Preferences = new Aws.AutoScaling.Inputs.GroupInstanceRefreshPreferencesArgs
{
AlarmSpecification = new Aws.AutoScaling.Inputs.GroupInstanceRefreshPreferencesAlarmSpecificationArgs
{
Alarms = new[]
{
"string",
},
},
AutoRollback = false,
CheckpointDelay = "string",
CheckpointPercentages = new[]
{
0,
},
InstanceWarmup = "string",
MaxHealthyPercentage = 0,
MinHealthyPercentage = 0,
ScaleInProtectedInstances = "string",
SkipMatching = false,
StandbyInstances = "string",
},
Triggers = new[]
{
"string",
},
},
LaunchConfiguration = "string",
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupLaunchTemplateArgs
{
Id = "string",
Name = "string",
Version = "string",
},
AvailabilityZones = new[]
{
"string",
},
MaxInstanceLifetime = 0,
DesiredCapacity = 0,
DefaultCooldown = 0,
CapacityRebalance = false,
MinElbCapacity = 0,
MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
{
LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
{
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
{
LaunchTemplateId = "string",
LaunchTemplateName = "string",
Version = "string",
},
Overrides = new[]
{
new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
{
InstanceRequirements = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs
{
AcceleratorCount = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs
{
Max = 0,
Min = 0,
},
AcceleratorManufacturers = new[]
{
"string",
},
AcceleratorNames = new[]
{
"string",
},
AcceleratorTotalMemoryMib = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs
{
Max = 0,
Min = 0,
},
AcceleratorTypes = new[]
{
"string",
},
AllowedInstanceTypes = new[]
{
"string",
},
BareMetal = "string",
BaselineEbsBandwidthMbps = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs
{
Max = 0,
Min = 0,
},
BurstablePerformance = "string",
CpuManufacturers = new[]
{
"string",
},
ExcludedInstanceTypes = new[]
{
"string",
},
InstanceGenerations = new[]
{
"string",
},
LocalStorage = "string",
LocalStorageTypes = new[]
{
"string",
},
MaxSpotPriceAsPercentageOfOptimalOnDemandPrice = 0,
MemoryGibPerVcpu = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs
{
Max = 0,
Min = 0,
},
MemoryMib = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs
{
Max = 0,
Min = 0,
},
NetworkBandwidthGbps = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs
{
Max = 0,
Min = 0,
},
NetworkInterfaceCount = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs
{
Max = 0,
Min = 0,
},
OnDemandMaxPricePercentageOverLowestPrice = 0,
RequireHibernateSupport = false,
SpotMaxPricePercentageOverLowestPrice = 0,
TotalLocalStorageGb = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs
{
Max = 0,
Min = 0,
},
VcpuCount = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs
{
Max = 0,
Min = 0,
},
},
InstanceType = "string",
LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs
{
LaunchTemplateId = "string",
LaunchTemplateName = "string",
Version = "string",
},
WeightedCapacity = "string",
},
},
},
InstancesDistribution = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyInstancesDistributionArgs
{
OnDemandAllocationStrategy = "string",
OnDemandBaseCapacity = 0,
OnDemandPercentageAboveBaseCapacity = 0,
SpotAllocationStrategy = "string",
SpotInstancePools = 0,
SpotMaxPrice = "string",
},
},
Name = "string",
NamePrefix = "string",
PlacementGroup = "string",
ProtectFromScaleIn = false,
ServiceLinkedRoleArn = "string",
SuspendedProcesses = new[]
{
"string",
},
Tags = new[]
{
new Aws.AutoScaling.Inputs.GroupTagArgs
{
Key = "string",
PropagateAtLaunch = false,
Value = "string",
},
},
TargetGroupArns = new[]
{
"string",
},
TerminationPolicies = new[]
{
"string",
},
TrafficSources = new[]
{
new Aws.AutoScaling.Inputs.GroupTrafficSourceArgs
{
Identifier = "string",
Type = "string",
},
},
VpcZoneIdentifiers = new[]
{
"string",
},
WaitForCapacityTimeout = "string",
MetricsGranularity = "string",
WarmPool = new Aws.AutoScaling.Inputs.GroupWarmPoolArgs
{
InstanceReusePolicy = new Aws.AutoScaling.Inputs.GroupWarmPoolInstanceReusePolicyArgs
{
ReuseOnScaleIn = false,
},
MaxGroupPreparedCapacity = 0,
MinSize = 0,
PoolState = "string",
},
});
example, err := autoscaling.NewGroup(ctx, "groupResource", &autoscaling.GroupArgs{
MaxSize: pulumi.Int(0),
MinSize: pulumi.Int(0),
LoadBalancers: pulumi.StringArray{
pulumi.String("string"),
},
WaitForElbCapacity: pulumi.Int(0),
DefaultInstanceWarmup: pulumi.Int(0),
Context: pulumi.String("string"),
DesiredCapacityType: pulumi.String("string"),
EnabledMetrics: pulumi.StringArray{
pulumi.String("string"),
},
ForceDelete: pulumi.Bool(false),
ForceDeleteWarmPool: pulumi.Bool(false),
HealthCheckGracePeriod: pulumi.Int(0),
HealthCheckType: pulumi.String("string"),
IgnoreFailedScalingActivities: pulumi.Bool(false),
InitialLifecycleHooks: autoscaling.GroupInitialLifecycleHookArray{
&autoscaling.GroupInitialLifecycleHookArgs{
LifecycleTransition: pulumi.String("string"),
Name: pulumi.String("string"),
DefaultResult: pulumi.String("string"),
HeartbeatTimeout: pulumi.Int(0),
NotificationMetadata: pulumi.String("string"),
NotificationTargetArn: pulumi.String("string"),
RoleArn: pulumi.String("string"),
},
},
InstanceMaintenancePolicy: &autoscaling.GroupInstanceMaintenancePolicyArgs{
MaxHealthyPercentage: pulumi.Int(0),
MinHealthyPercentage: pulumi.Int(0),
},
InstanceRefresh: &autoscaling.GroupInstanceRefreshArgs{
Strategy: pulumi.String("string"),
Preferences: &autoscaling.GroupInstanceRefreshPreferencesArgs{
AlarmSpecification: &autoscaling.GroupInstanceRefreshPreferencesAlarmSpecificationArgs{
Alarms: pulumi.StringArray{
pulumi.String("string"),
},
},
AutoRollback: pulumi.Bool(false),
CheckpointDelay: pulumi.String("string"),
CheckpointPercentages: pulumi.IntArray{
pulumi.Int(0),
},
InstanceWarmup: pulumi.String("string"),
MaxHealthyPercentage: pulumi.Int(0),
MinHealthyPercentage: pulumi.Int(0),
ScaleInProtectedInstances: pulumi.String("string"),
SkipMatching: pulumi.Bool(false),
StandbyInstances: pulumi.String("string"),
},
Triggers: pulumi.StringArray{
pulumi.String("string"),
},
},
LaunchConfiguration: pulumi.Any("string"),
LaunchTemplate: &autoscaling.GroupLaunchTemplateArgs{
Id: pulumi.String("string"),
Name: pulumi.String("string"),
Version: pulumi.String("string"),
},
AvailabilityZones: pulumi.StringArray{
pulumi.String("string"),
},
MaxInstanceLifetime: pulumi.Int(0),
DesiredCapacity: pulumi.Int(0),
DefaultCooldown: pulumi.Int(0),
CapacityRebalance: pulumi.Bool(false),
MinElbCapacity: pulumi.Int(0),
MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
LaunchTemplateId: pulumi.String("string"),
LaunchTemplateName: pulumi.String("string"),
Version: pulumi.String("string"),
},
Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
InstanceRequirements: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs{
AcceleratorCount: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs{
Max: pulumi.Int(0),
Min: pulumi.Int(0),
},
AcceleratorManufacturers: pulumi.StringArray{
pulumi.String("string"),
},
AcceleratorNames: pulumi.StringArray{
pulumi.String("string"),
},
AcceleratorTotalMemoryMib: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs{
Max: pulumi.Int(0),
Min: pulumi.Int(0),
},
AcceleratorTypes: pulumi.StringArray{
pulumi.String("string"),
},
AllowedInstanceTypes: pulumi.StringArray{
pulumi.String("string"),
},
BareMetal: pulumi.String("string"),
BaselineEbsBandwidthMbps: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs{
Max: pulumi.Int(0),
Min: pulumi.Int(0),
},
BurstablePerformance: pulumi.String("string"),
CpuManufacturers: pulumi.StringArray{
pulumi.String("string"),
},
ExcludedInstanceTypes: pulumi.StringArray{
pulumi.String("string"),
},
InstanceGenerations: pulumi.StringArray{
pulumi.String("string"),
},
LocalStorage: pulumi.String("string"),
LocalStorageTypes: pulumi.StringArray{
pulumi.String("string"),
},
MaxSpotPriceAsPercentageOfOptimalOnDemandPrice: pulumi.Int(0),
MemoryGibPerVcpu: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs{
Max: pulumi.Float64(0),
Min: pulumi.Float64(0),
},
MemoryMib: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs{
Max: pulumi.Int(0),
Min: pulumi.Int(0),
},
NetworkBandwidthGbps: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs{
Max: pulumi.Float64(0),
Min: pulumi.Float64(0),
},
NetworkInterfaceCount: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs{
Max: pulumi.Int(0),
Min: pulumi.Int(0),
},
OnDemandMaxPricePercentageOverLowestPrice: pulumi.Int(0),
RequireHibernateSupport: pulumi.Bool(false),
SpotMaxPricePercentageOverLowestPrice: pulumi.Int(0),
TotalLocalStorageGb: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs{
Max: pulumi.Float64(0),
Min: pulumi.Float64(0),
},
VcpuCount: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs{
Max: pulumi.Int(0),
Min: pulumi.Int(0),
},
},
InstanceType: pulumi.String("string"),
LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs{
LaunchTemplateId: pulumi.String("string"),
LaunchTemplateName: pulumi.String("string"),
Version: pulumi.String("string"),
},
WeightedCapacity: pulumi.String("string"),
},
},
},
InstancesDistribution: &autoscaling.GroupMixedInstancesPolicyInstancesDistributionArgs{
OnDemandAllocationStrategy: pulumi.String("string"),
OnDemandBaseCapacity: pulumi.Int(0),
OnDemandPercentageAboveBaseCapacity: pulumi.Int(0),
SpotAllocationStrategy: pulumi.String("string"),
SpotInstancePools: pulumi.Int(0),
SpotMaxPrice: pulumi.String("string"),
},
},
Name: pulumi.String("string"),
NamePrefix: pulumi.String("string"),
PlacementGroup: pulumi.Any("string"),
ProtectFromScaleIn: pulumi.Bool(false),
ServiceLinkedRoleArn: pulumi.String("string"),
SuspendedProcesses: pulumi.StringArray{
pulumi.String("string"),
},
Tags: autoscaling.GroupTagArray{
&autoscaling.GroupTagArgs{
Key: pulumi.String("string"),
PropagateAtLaunch: pulumi.Bool(false),
Value: pulumi.String("string"),
},
},
TargetGroupArns: pulumi.StringArray{
pulumi.String("string"),
},
TerminationPolicies: pulumi.StringArray{
pulumi.String("string"),
},
TrafficSources: autoscaling.GroupTrafficSourceArray{
&autoscaling.GroupTrafficSourceArgs{
Identifier: pulumi.String("string"),
Type: pulumi.String("string"),
},
},
VpcZoneIdentifiers: pulumi.StringArray{
pulumi.String("string"),
},
WaitForCapacityTimeout: pulumi.String("string"),
MetricsGranularity: pulumi.String("string"),
WarmPool: &autoscaling.GroupWarmPoolArgs{
InstanceReusePolicy: &autoscaling.GroupWarmPoolInstanceReusePolicyArgs{
ReuseOnScaleIn: pulumi.Bool(false),
},
MaxGroupPreparedCapacity: pulumi.Int(0),
MinSize: pulumi.Int(0),
PoolState: pulumi.String("string"),
},
})
var groupResource = new Group("groupResource", GroupArgs.builder()
.maxSize(0)
.minSize(0)
.loadBalancers("string")
.waitForElbCapacity(0)
.defaultInstanceWarmup(0)
.context("string")
.desiredCapacityType("string")
.enabledMetrics("string")
.forceDelete(false)
.forceDeleteWarmPool(false)
.healthCheckGracePeriod(0)
.healthCheckType("string")
.ignoreFailedScalingActivities(false)
.initialLifecycleHooks(GroupInitialLifecycleHookArgs.builder()
.lifecycleTransition("string")
.name("string")
.defaultResult("string")
.heartbeatTimeout(0)
.notificationMetadata("string")
.notificationTargetArn("string")
.roleArn("string")
.build())
.instanceMaintenancePolicy(GroupInstanceMaintenancePolicyArgs.builder()
.maxHealthyPercentage(0)
.minHealthyPercentage(0)
.build())
.instanceRefresh(GroupInstanceRefreshArgs.builder()
.strategy("string")
.preferences(GroupInstanceRefreshPreferencesArgs.builder()
.alarmSpecification(GroupInstanceRefreshPreferencesAlarmSpecificationArgs.builder()
.alarms("string")
.build())
.autoRollback(false)
.checkpointDelay("string")
.checkpointPercentages(0)
.instanceWarmup("string")
.maxHealthyPercentage(0)
.minHealthyPercentage(0)
.scaleInProtectedInstances("string")
.skipMatching(false)
.standbyInstances("string")
.build())
.triggers("string")
.build())
.launchConfiguration("string")
.launchTemplate(GroupLaunchTemplateArgs.builder()
.id("string")
.name("string")
.version("string")
.build())
.availabilityZones("string")
.maxInstanceLifetime(0)
.desiredCapacity(0)
.defaultCooldown(0)
.capacityRebalance(false)
.minElbCapacity(0)
.mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
.launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
.launchTemplateId("string")
.launchTemplateName("string")
.version("string")
.build())
.overrides(GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
.instanceRequirements(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs.builder()
.acceleratorCount(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs.builder()
.max(0)
.min(0)
.build())
.acceleratorManufacturers("string")
.acceleratorNames("string")
.acceleratorTotalMemoryMib(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs.builder()
.max(0)
.min(0)
.build())
.acceleratorTypes("string")
.allowedInstanceTypes("string")
.bareMetal("string")
.baselineEbsBandwidthMbps(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs.builder()
.max(0)
.min(0)
.build())
.burstablePerformance("string")
.cpuManufacturers("string")
.excludedInstanceTypes("string")
.instanceGenerations("string")
.localStorage("string")
.localStorageTypes("string")
.maxSpotPriceAsPercentageOfOptimalOnDemandPrice(0)
.memoryGibPerVcpu(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs.builder()
.max(0)
.min(0)
.build())
.memoryMib(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.builder()
.max(0)
.min(0)
.build())
.networkBandwidthGbps(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs.builder()
.max(0)
.min(0)
.build())
.networkInterfaceCount(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs.builder()
.max(0)
.min(0)
.build())
.onDemandMaxPricePercentageOverLowestPrice(0)
.requireHibernateSupport(false)
.spotMaxPricePercentageOverLowestPrice(0)
.totalLocalStorageGb(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs.builder()
.max(0)
.min(0)
.build())
.vcpuCount(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.builder()
.max(0)
.min(0)
.build())
.build())
.instanceType("string")
.launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs.builder()
.launchTemplateId("string")
.launchTemplateName("string")
.version("string")
.build())
.weightedCapacity("string")
.build())
.build())
.instancesDistribution(GroupMixedInstancesPolicyInstancesDistributionArgs.builder()
.onDemandAllocationStrategy("string")
.onDemandBaseCapacity(0)
.onDemandPercentageAboveBaseCapacity(0)
.spotAllocationStrategy("string")
.spotInstancePools(0)
.spotMaxPrice("string")
.build())
.build())
.name("string")
.namePrefix("string")
.placementGroup("string")
.protectFromScaleIn(false)
.serviceLinkedRoleArn("string")
.suspendedProcesses("string")
.tags(GroupTagArgs.builder()
.key("string")
.propagateAtLaunch(false)
.value("string")
.build())
.targetGroupArns("string")
.terminationPolicies("string")
.trafficSources(GroupTrafficSourceArgs.builder()
.identifier("string")
.type("string")
.build())
.vpcZoneIdentifiers("string")
.waitForCapacityTimeout("string")
.metricsGranularity("string")
.warmPool(GroupWarmPoolArgs.builder()
.instanceReusePolicy(GroupWarmPoolInstanceReusePolicyArgs.builder()
.reuseOnScaleIn(false)
.build())
.maxGroupPreparedCapacity(0)
.minSize(0)
.poolState("string")
.build())
.build());
group_resource = aws.autoscaling.Group("groupResource",
max_size=0,
min_size=0,
load_balancers=["string"],
wait_for_elb_capacity=0,
default_instance_warmup=0,
context="string",
desired_capacity_type="string",
enabled_metrics=["string"],
force_delete=False,
force_delete_warm_pool=False,
health_check_grace_period=0,
health_check_type="string",
ignore_failed_scaling_activities=False,
initial_lifecycle_hooks=[{
"lifecycleTransition": "string",
"name": "string",
"defaultResult": "string",
"heartbeatTimeout": 0,
"notificationMetadata": "string",
"notificationTargetArn": "string",
"roleArn": "string",
}],
instance_maintenance_policy={
"maxHealthyPercentage": 0,
"minHealthyPercentage": 0,
},
instance_refresh={
"strategy": "string",
"preferences": {
"alarmSpecification": {
"alarms": ["string"],
},
"autoRollback": False,
"checkpointDelay": "string",
"checkpointPercentages": [0],
"instanceWarmup": "string",
"maxHealthyPercentage": 0,
"minHealthyPercentage": 0,
"scaleInProtectedInstances": "string",
"skipMatching": False,
"standbyInstances": "string",
},
"triggers": ["string"],
},
launch_configuration="string",
launch_template={
"id": "string",
"name": "string",
"version": "string",
},
availability_zones=["string"],
max_instance_lifetime=0,
desired_capacity=0,
default_cooldown=0,
capacity_rebalance=False,
min_elb_capacity=0,
mixed_instances_policy={
"launchTemplate": {
"launchTemplateSpecification": {
"launchTemplateId": "string",
"launchTemplateName": "string",
"version": "string",
},
"overrides": [{
"instanceRequirements": {
"acceleratorCount": {
"max": 0,
"min": 0,
},
"acceleratorManufacturers": ["string"],
"acceleratorNames": ["string"],
"acceleratorTotalMemoryMib": {
"max": 0,
"min": 0,
},
"acceleratorTypes": ["string"],
"allowedInstanceTypes": ["string"],
"bareMetal": "string",
"baselineEbsBandwidthMbps": {
"max": 0,
"min": 0,
},
"burstablePerformance": "string",
"cpuManufacturers": ["string"],
"excludedInstanceTypes": ["string"],
"instanceGenerations": ["string"],
"localStorage": "string",
"localStorageTypes": ["string"],
"maxSpotPriceAsPercentageOfOptimalOnDemandPrice": 0,
"memoryGibPerVcpu": {
"max": 0,
"min": 0,
},
"memoryMib": {
"max": 0,
"min": 0,
},
"networkBandwidthGbps": {
"max": 0,
"min": 0,
},
"networkInterfaceCount": {
"max": 0,
"min": 0,
},
"onDemandMaxPricePercentageOverLowestPrice": 0,
"requireHibernateSupport": False,
"spotMaxPricePercentageOverLowestPrice": 0,
"totalLocalStorageGb": {
"max": 0,
"min": 0,
},
"vcpuCount": {
"max": 0,
"min": 0,
},
},
"instanceType": "string",
"launchTemplateSpecification": {
"launchTemplateId": "string",
"launchTemplateName": "string",
"version": "string",
},
"weightedCapacity": "string",
}],
},
"instancesDistribution": {
"onDemandAllocationStrategy": "string",
"onDemandBaseCapacity": 0,
"onDemandPercentageAboveBaseCapacity": 0,
"spotAllocationStrategy": "string",
"spotInstancePools": 0,
"spotMaxPrice": "string",
},
},
name="string",
name_prefix="string",
placement_group="string",
protect_from_scale_in=False,
service_linked_role_arn="string",
suspended_processes=["string"],
tags=[{
"key": "string",
"propagateAtLaunch": False,
"value": "string",
}],
target_group_arns=["string"],
termination_policies=["string"],
traffic_sources=[{
"identifier": "string",
"type": "string",
}],
vpc_zone_identifiers=["string"],
wait_for_capacity_timeout="string",
metrics_granularity="string",
warm_pool={
"instanceReusePolicy": {
"reuseOnScaleIn": False,
},
"maxGroupPreparedCapacity": 0,
"minSize": 0,
"poolState": "string",
})
const groupResource = new aws.autoscaling.Group("groupResource", {
maxSize: 0,
minSize: 0,
loadBalancers: ["string"],
waitForElbCapacity: 0,
defaultInstanceWarmup: 0,
context: "string",
desiredCapacityType: "string",
enabledMetrics: ["string"],
forceDelete: false,
forceDeleteWarmPool: false,
healthCheckGracePeriod: 0,
healthCheckType: "string",
ignoreFailedScalingActivities: false,
initialLifecycleHooks: [{
lifecycleTransition: "string",
name: "string",
defaultResult: "string",
heartbeatTimeout: 0,
notificationMetadata: "string",
notificationTargetArn: "string",
roleArn: "string",
}],
instanceMaintenancePolicy: {
maxHealthyPercentage: 0,
minHealthyPercentage: 0,
},
instanceRefresh: {
strategy: "string",
preferences: {
alarmSpecification: {
alarms: ["string"],
},
autoRollback: false,
checkpointDelay: "string",
checkpointPercentages: [0],
instanceWarmup: "string",
maxHealthyPercentage: 0,
minHealthyPercentage: 0,
scaleInProtectedInstances: "string",
skipMatching: false,
standbyInstances: "string",
},
triggers: ["string"],
},
launchConfiguration: "string",
launchTemplate: {
id: "string",
name: "string",
version: "string",
},
availabilityZones: ["string"],
maxInstanceLifetime: 0,
desiredCapacity: 0,
defaultCooldown: 0,
capacityRebalance: false,
minElbCapacity: 0,
mixedInstancesPolicy: {
launchTemplate: {
launchTemplateSpecification: {
launchTemplateId: "string",
launchTemplateName: "string",
version: "string",
},
overrides: [{
instanceRequirements: {
acceleratorCount: {
max: 0,
min: 0,
},
acceleratorManufacturers: ["string"],
acceleratorNames: ["string"],
acceleratorTotalMemoryMib: {
max: 0,
min: 0,
},
acceleratorTypes: ["string"],
allowedInstanceTypes: ["string"],
bareMetal: "string",
baselineEbsBandwidthMbps: {
max: 0,
min: 0,
},
burstablePerformance: "string",
cpuManufacturers: ["string"],
excludedInstanceTypes: ["string"],
instanceGenerations: ["string"],
localStorage: "string",
localStorageTypes: ["string"],
maxSpotPriceAsPercentageOfOptimalOnDemandPrice: 0,
memoryGibPerVcpu: {
max: 0,
min: 0,
},
memoryMib: {
max: 0,
min: 0,
},
networkBandwidthGbps: {
max: 0,
min: 0,
},
networkInterfaceCount: {
max: 0,
min: 0,
},
onDemandMaxPricePercentageOverLowestPrice: 0,
requireHibernateSupport: false,
spotMaxPricePercentageOverLowestPrice: 0,
totalLocalStorageGb: {
max: 0,
min: 0,
},
vcpuCount: {
max: 0,
min: 0,
},
},
instanceType: "string",
launchTemplateSpecification: {
launchTemplateId: "string",
launchTemplateName: "string",
version: "string",
},
weightedCapacity: "string",
}],
},
instancesDistribution: {
onDemandAllocationStrategy: "string",
onDemandBaseCapacity: 0,
onDemandPercentageAboveBaseCapacity: 0,
spotAllocationStrategy: "string",
spotInstancePools: 0,
spotMaxPrice: "string",
},
},
name: "string",
namePrefix: "string",
placementGroup: "string",
protectFromScaleIn: false,
serviceLinkedRoleArn: "string",
suspendedProcesses: ["string"],
tags: [{
key: "string",
propagateAtLaunch: false,
value: "string",
}],
targetGroupArns: ["string"],
terminationPolicies: ["string"],
trafficSources: [{
identifier: "string",
type: "string",
}],
vpcZoneIdentifiers: ["string"],
waitForCapacityTimeout: "string",
metricsGranularity: "string",
warmPool: {
instanceReusePolicy: {
reuseOnScaleIn: false,
},
maxGroupPreparedCapacity: 0,
minSize: 0,
poolState: "string",
},
});
type: aws:autoscaling:Group
properties:
availabilityZones:
- string
capacityRebalance: false
context: string
defaultCooldown: 0
defaultInstanceWarmup: 0
desiredCapacity: 0
desiredCapacityType: string
enabledMetrics:
- string
forceDelete: false
forceDeleteWarmPool: false
healthCheckGracePeriod: 0
healthCheckType: string
ignoreFailedScalingActivities: false
initialLifecycleHooks:
- defaultResult: string
heartbeatTimeout: 0
lifecycleTransition: string
name: string
notificationMetadata: string
notificationTargetArn: string
roleArn: string
instanceMaintenancePolicy:
maxHealthyPercentage: 0
minHealthyPercentage: 0
instanceRefresh:
preferences:
alarmSpecification:
alarms:
- string
autoRollback: false
checkpointDelay: string
checkpointPercentages:
- 0
instanceWarmup: string
maxHealthyPercentage: 0
minHealthyPercentage: 0
scaleInProtectedInstances: string
skipMatching: false
standbyInstances: string
strategy: string
triggers:
- string
launchConfiguration: string
launchTemplate:
id: string
name: string
version: string
loadBalancers:
- string
maxInstanceLifetime: 0
maxSize: 0
metricsGranularity: string
minElbCapacity: 0
minSize: 0
mixedInstancesPolicy:
instancesDistribution:
onDemandAllocationStrategy: string
onDemandBaseCapacity: 0
onDemandPercentageAboveBaseCapacity: 0
spotAllocationStrategy: string
spotInstancePools: 0
spotMaxPrice: string
launchTemplate:
launchTemplateSpecification:
launchTemplateId: string
launchTemplateName: string
version: string
overrides:
- instanceRequirements:
acceleratorCount:
max: 0
min: 0
acceleratorManufacturers:
- string
acceleratorNames:
- string
acceleratorTotalMemoryMib:
max: 0
min: 0
acceleratorTypes:
- string
allowedInstanceTypes:
- string
bareMetal: string
baselineEbsBandwidthMbps:
max: 0
min: 0
burstablePerformance: string
cpuManufacturers:
- string
excludedInstanceTypes:
- string
instanceGenerations:
- string
localStorage: string
localStorageTypes:
- string
maxSpotPriceAsPercentageOfOptimalOnDemandPrice: 0
memoryGibPerVcpu:
max: 0
min: 0
memoryMib:
max: 0
min: 0
networkBandwidthGbps:
max: 0
min: 0
networkInterfaceCount:
max: 0
min: 0
onDemandMaxPricePercentageOverLowestPrice: 0
requireHibernateSupport: false
spotMaxPricePercentageOverLowestPrice: 0
totalLocalStorageGb:
max: 0
min: 0
vcpuCount:
max: 0
min: 0
instanceType: string
launchTemplateSpecification:
launchTemplateId: string
launchTemplateName: string
version: string
weightedCapacity: string
name: string
namePrefix: string
placementGroup: string
protectFromScaleIn: false
serviceLinkedRoleArn: string
suspendedProcesses:
- string
tags:
- key: string
propagateAtLaunch: false
value: string
targetGroupArns:
- string
terminationPolicies:
- string
trafficSources:
- identifier: string
type: string
vpcZoneIdentifiers:
- string
waitForCapacityTimeout: string
waitForElbCapacity: 0
warmPool:
instanceReusePolicy:
reuseOnScaleIn: false
maxGroupPreparedCapacity: 0
minSize: 0
poolState: string
Group 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 Group resource accepts the following input properties:
- Max
Size int - Maximum size of the Auto Scaling Group.
- Min
Size int - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- Availability
Zones List<string> - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - Capacity
Rebalance bool - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- Context string
- Reserved.
- Default
Cooldown int - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- Default
Instance intWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- Desired
Capacity int - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- Desired
Capacity stringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - Enabled
Metrics List<string> - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- Force
Delete bool - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- Force
Delete boolWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- Health
Check intGrace Period - Time (in seconds) after instance comes into service before checking health.
- Health
Check stringType - "EC2" or "ELB". Controls how health checking is done.
- Ignore
Failed boolScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - Initial
Lifecycle List<GroupHooks Initial Lifecycle Hook> - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - Instance
Maintenance GroupPolicy Instance Maintenance Policy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- Instance
Refresh GroupInstance Refresh - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- Launch
Configuration string | string - Name of the launch configuration to use.
- Launch
Template GroupLaunch Template - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- Load
Balancers List<string> - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - Max
Instance intLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- Metrics
Granularity string | Pulumi.Aws. Auto Scaling. Metrics Granularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - Min
Elb intCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- Mixed
Instances GroupPolicy Mixed Instances Policy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- Name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Placement
Group string | string - Name of the placement group into which you'll launch your instances, if any.
- Protect
From boolScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- Service
Linked stringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- Suspended
Processes List<string> - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - List<Group
Tag> - Configuration block(s) containing resource tags. See Tag below for more details.
- Target
Group List<string>Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - Termination
Policies List<string> - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - Traffic
Sources List<GroupTraffic Source> - Attaches one or more traffic sources to the specified Auto Scaling group.
- Vpc
Zone List<string>Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - Wait
For stringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- Wait
For intElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - Warm
Pool GroupWarm Pool - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- Max
Size int - Maximum size of the Auto Scaling Group.
- Min
Size int - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- Availability
Zones []string - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - Capacity
Rebalance bool - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- Context string
- Reserved.
- Default
Cooldown int - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- Default
Instance intWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- Desired
Capacity int - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- Desired
Capacity stringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - Enabled
Metrics []string - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- Force
Delete bool - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- Force
Delete boolWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- Health
Check intGrace Period - Time (in seconds) after instance comes into service before checking health.
- Health
Check stringType - "EC2" or "ELB". Controls how health checking is done.
- Ignore
Failed boolScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - Initial
Lifecycle []GroupHooks Initial Lifecycle Hook Args - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - Instance
Maintenance GroupPolicy Instance Maintenance Policy Args - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- Instance
Refresh GroupInstance Refresh Args - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- Launch
Configuration string | string - Name of the launch configuration to use.
- Launch
Template GroupLaunch Template Args - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- Load
Balancers []string - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - Max
Instance intLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- Metrics
Granularity string | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - Min
Elb intCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- Mixed
Instances GroupPolicy Mixed Instances Policy Args - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- Name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Placement
Group string | string - Name of the placement group into which you'll launch your instances, if any.
- Protect
From boolScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- Service
Linked stringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- Suspended
Processes []string - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - []Group
Tag Args - Configuration block(s) containing resource tags. See Tag below for more details.
- Target
Group []stringArns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - Termination
Policies []string - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - Traffic
Sources []GroupTraffic Source Args - Attaches one or more traffic sources to the specified Auto Scaling group.
- Vpc
Zone []stringIdentifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - Wait
For stringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- Wait
For intElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - Warm
Pool GroupWarm Pool Args - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- max
Size Integer - Maximum size of the Auto Scaling Group.
- min
Size Integer - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- availability
Zones List<String> - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity
Rebalance Boolean - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context String
- Reserved.
- default
Cooldown Integer - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default
Instance IntegerWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired
Capacity Integer - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired
Capacity StringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled
Metrics List<String> - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force
Delete Boolean - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force
Delete BooleanWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health
Check IntegerGrace Period - Time (in seconds) after instance comes into service before checking health.
- health
Check StringType - "EC2" or "ELB". Controls how health checking is done.
- ignore
Failed BooleanScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial
Lifecycle List<GroupHooks Initial Lifecycle Hook> - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance
Maintenance GroupPolicy Instance Maintenance Policy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance
Refresh GroupInstance Refresh - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch
Configuration String | String - Name of the launch configuration to use.
- launch
Template GroupLaunch Template - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load
Balancers List<String> - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max
Instance IntegerLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- metrics
Granularity String | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min
Elb IntegerCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- mixed
Instances GroupPolicy Mixed Instances Policy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name String
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement
Group String | String - Name of the placement group into which you'll launch your instances, if any.
- protect
From BooleanScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service
Linked StringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended
Processes List<String> - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - List<Group
Tag> - Configuration block(s) containing resource tags. See Tag below for more details.
- target
Group List<String>Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination
Policies List<String> - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic
Sources List<GroupTraffic Source> - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc
Zone List<String>Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait
For StringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait
For IntegerElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm
Pool GroupWarm Pool - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- max
Size number - Maximum size of the Auto Scaling Group.
- min
Size number - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- availability
Zones string[] - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity
Rebalance boolean - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context string
- Reserved.
- default
Cooldown number - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default
Instance numberWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired
Capacity number - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired
Capacity stringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled
Metrics Metric[] - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force
Delete boolean - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force
Delete booleanWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health
Check numberGrace Period - Time (in seconds) after instance comes into service before checking health.
- health
Check stringType - "EC2" or "ELB". Controls how health checking is done.
- ignore
Failed booleanScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial
Lifecycle GroupHooks Initial Lifecycle Hook[] - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance
Maintenance GroupPolicy Instance Maintenance Policy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance
Refresh GroupInstance Refresh - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch
Configuration string | LaunchConfiguration - Name of the launch configuration to use.
- launch
Template GroupLaunch Template - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load
Balancers string[] - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max
Instance numberLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- metrics
Granularity string | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min
Elb numberCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- mixed
Instances GroupPolicy Mixed Instances Policy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement
Group string | PlacementGroup - Name of the placement group into which you'll launch your instances, if any.
- protect
From booleanScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service
Linked stringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended
Processes string[] - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - Group
Tag[] - Configuration block(s) containing resource tags. See Tag below for more details.
- target
Group string[]Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination
Policies string[] - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic
Sources GroupTraffic Source[] - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc
Zone string[]Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait
For stringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait
For numberElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm
Pool GroupWarm Pool - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- max_
size int - Maximum size of the Auto Scaling Group.
- min_
size int - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- availability_
zones Sequence[str] - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity_
rebalance bool - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context str
- Reserved.
- default_
cooldown int - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default_
instance_ intwarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired_
capacity int - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired_
capacity_ strtype - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled_
metrics Sequence[str] - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force_
delete bool - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force_
delete_ boolwarm_ pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health_
check_ intgrace_ period - Time (in seconds) after instance comes into service before checking health.
- health_
check_ strtype - "EC2" or "ELB". Controls how health checking is done.
- ignore_
failed_ boolscaling_ activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial_
lifecycle_ Sequence[Grouphooks Initial Lifecycle Hook Args] - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance_
maintenance_ Grouppolicy Instance Maintenance Policy Args - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance_
refresh GroupInstance Refresh Args - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch_
configuration str | str - Name of the launch configuration to use.
- launch_
template GroupLaunch Template Args - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load_
balancers Sequence[str] - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max_
instance_ intlifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- metrics_
granularity str | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min_
elb_ intcapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- mixed_
instances_ Grouppolicy Mixed Instances Policy Args - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name str
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name_
prefix str - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement_
group str | str - Name of the placement group into which you'll launch your instances, if any.
- protect_
from_ boolscale_ in - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service_
linked_ strrole_ arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended_
processes Sequence[str] - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - Sequence[Group
Tag Args] - Configuration block(s) containing resource tags. See Tag below for more details.
- target_
group_ Sequence[str]arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination_
policies Sequence[str] - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic_
sources Sequence[GroupTraffic Source Args] - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc_
zone_ Sequence[str]identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait_
for_ strcapacity_ timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait_
for_ intelb_ capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm_
pool GroupWarm Pool Args - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- max
Size Number - Maximum size of the Auto Scaling Group.
- min
Size Number - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- availability
Zones List<String> - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity
Rebalance Boolean - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context String
- Reserved.
- default
Cooldown Number - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default
Instance NumberWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired
Capacity Number - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired
Capacity StringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled
Metrics List<> - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force
Delete Boolean - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force
Delete BooleanWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health
Check NumberGrace Period - Time (in seconds) after instance comes into service before checking health.
- health
Check StringType - "EC2" or "ELB". Controls how health checking is done.
- ignore
Failed BooleanScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial
Lifecycle List<Property Map>Hooks - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance
Maintenance Property MapPolicy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance
Refresh Property Map - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch
Configuration String | - Name of the launch configuration to use.
- launch
Template Property Map - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load
Balancers List<String> - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max
Instance NumberLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- metrics
Granularity String | "1Minute" - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min
Elb NumberCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- mixed
Instances Property MapPolicy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name String
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement
Group String | - Name of the placement group into which you'll launch your instances, if any.
- protect
From BooleanScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service
Linked StringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended
Processes List<String> - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - List<Property Map>
- Configuration block(s) containing resource tags. See Tag below for more details.
- target
Group List<String>Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination
Policies List<String> - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic
Sources List<Property Map> - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc
Zone List<String>Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait
For StringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait
For NumberElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm
Pool Property Map - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
Outputs
All input properties are implicitly available as output properties. Additionally, the Group resource produces the following output properties:
- Arn string
- ARN for this Auto Scaling Group
- Id string
- The provider-assigned unique ID for this managed resource.
- Predicted
Capacity int - Predicted capacity of the group.
- Warm
Pool intSize - Current size of the warm pool.
- Arn string
- ARN for this Auto Scaling Group
- Id string
- The provider-assigned unique ID for this managed resource.
- Predicted
Capacity int - Predicted capacity of the group.
- Warm
Pool intSize - Current size of the warm pool.
- arn String
- ARN for this Auto Scaling Group
- id String
- The provider-assigned unique ID for this managed resource.
- predicted
Capacity Integer - Predicted capacity of the group.
- warm
Pool IntegerSize - Current size of the warm pool.
- arn string
- ARN for this Auto Scaling Group
- id string
- The provider-assigned unique ID for this managed resource.
- predicted
Capacity number - Predicted capacity of the group.
- warm
Pool numberSize - Current size of the warm pool.
- arn str
- ARN for this Auto Scaling Group
- id str
- The provider-assigned unique ID for this managed resource.
- predicted_
capacity int - Predicted capacity of the group.
- warm_
pool_ intsize - Current size of the warm pool.
- arn String
- ARN for this Auto Scaling Group
- id String
- The provider-assigned unique ID for this managed resource.
- predicted
Capacity Number - Predicted capacity of the group.
- warm
Pool NumberSize - Current size of the warm pool.
Look up Existing Group Resource
Get an existing Group 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?: GroupState, opts?: CustomResourceOptions): Group
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
arn: Optional[str] = None,
availability_zones: Optional[Sequence[str]] = None,
capacity_rebalance: Optional[bool] = None,
context: Optional[str] = None,
default_cooldown: Optional[int] = None,
default_instance_warmup: Optional[int] = None,
desired_capacity: Optional[int] = None,
desired_capacity_type: Optional[str] = None,
enabled_metrics: Optional[Sequence[str]] = None,
force_delete: Optional[bool] = None,
force_delete_warm_pool: Optional[bool] = None,
health_check_grace_period: Optional[int] = None,
health_check_type: Optional[str] = None,
ignore_failed_scaling_activities: Optional[bool] = None,
initial_lifecycle_hooks: Optional[Sequence[GroupInitialLifecycleHookArgs]] = None,
instance_maintenance_policy: Optional[GroupInstanceMaintenancePolicyArgs] = None,
instance_refresh: Optional[GroupInstanceRefreshArgs] = None,
launch_configuration: Optional[str] = None,
launch_template: Optional[GroupLaunchTemplateArgs] = None,
load_balancers: Optional[Sequence[str]] = None,
max_instance_lifetime: Optional[int] = None,
max_size: Optional[int] = None,
metrics_granularity: Optional[Union[str, MetricsGranularity]] = None,
min_elb_capacity: Optional[int] = None,
min_size: Optional[int] = None,
mixed_instances_policy: Optional[GroupMixedInstancesPolicyArgs] = None,
name: Optional[str] = None,
name_prefix: Optional[str] = None,
placement_group: Optional[str] = None,
predicted_capacity: Optional[int] = None,
protect_from_scale_in: Optional[bool] = None,
service_linked_role_arn: Optional[str] = None,
suspended_processes: Optional[Sequence[str]] = None,
tags: Optional[Sequence[GroupTagArgs]] = None,
target_group_arns: Optional[Sequence[str]] = None,
termination_policies: Optional[Sequence[str]] = None,
traffic_sources: Optional[Sequence[GroupTrafficSourceArgs]] = None,
vpc_zone_identifiers: Optional[Sequence[str]] = None,
wait_for_capacity_timeout: Optional[str] = None,
wait_for_elb_capacity: Optional[int] = None,
warm_pool: Optional[GroupWarmPoolArgs] = None,
warm_pool_size: Optional[int] = None) -> Group
func GetGroup(ctx *Context, name string, id IDInput, state *GroupState, opts ...ResourceOption) (*Group, error)
public static Group Get(string name, Input<string> id, GroupState? state, CustomResourceOptions? opts = null)
public static Group get(String name, Output<String> id, GroupState 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.
- Arn string
- ARN for this Auto Scaling Group
- Availability
Zones List<string> - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - Capacity
Rebalance bool - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- Context string
- Reserved.
- Default
Cooldown int - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- Default
Instance intWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- Desired
Capacity int - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- Desired
Capacity stringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - Enabled
Metrics List<string> - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- Force
Delete bool - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- Force
Delete boolWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- Health
Check intGrace Period - Time (in seconds) after instance comes into service before checking health.
- Health
Check stringType - "EC2" or "ELB". Controls how health checking is done.
- Ignore
Failed boolScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - Initial
Lifecycle List<GroupHooks Initial Lifecycle Hook> - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - Instance
Maintenance GroupPolicy Instance Maintenance Policy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- Instance
Refresh GroupInstance Refresh - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- Launch
Configuration string | string - Name of the launch configuration to use.
- Launch
Template GroupLaunch Template - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- Load
Balancers List<string> - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - Max
Instance intLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- Max
Size int - Maximum size of the Auto Scaling Group.
- Metrics
Granularity string | Pulumi.Aws. Auto Scaling. Metrics Granularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - Min
Elb intCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- Min
Size int - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- Mixed
Instances GroupPolicy Mixed Instances Policy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- Name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Placement
Group string | string - Name of the placement group into which you'll launch your instances, if any.
- Predicted
Capacity int - Predicted capacity of the group.
- Protect
From boolScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- Service
Linked stringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- Suspended
Processes List<string> - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - List<Group
Tag> - Configuration block(s) containing resource tags. See Tag below for more details.
- Target
Group List<string>Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - Termination
Policies List<string> - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - Traffic
Sources List<GroupTraffic Source> - Attaches one or more traffic sources to the specified Auto Scaling group.
- Vpc
Zone List<string>Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - Wait
For stringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- Wait
For intElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - Warm
Pool GroupWarm Pool - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- Warm
Pool intSize - Current size of the warm pool.
- Arn string
- ARN for this Auto Scaling Group
- Availability
Zones []string - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - Capacity
Rebalance bool - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- Context string
- Reserved.
- Default
Cooldown int - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- Default
Instance intWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- Desired
Capacity int - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- Desired
Capacity stringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - Enabled
Metrics []string - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- Force
Delete bool - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- Force
Delete boolWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- Health
Check intGrace Period - Time (in seconds) after instance comes into service before checking health.
- Health
Check stringType - "EC2" or "ELB". Controls how health checking is done.
- Ignore
Failed boolScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - Initial
Lifecycle []GroupHooks Initial Lifecycle Hook Args - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - Instance
Maintenance GroupPolicy Instance Maintenance Policy Args - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- Instance
Refresh GroupInstance Refresh Args - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- Launch
Configuration string | string - Name of the launch configuration to use.
- Launch
Template GroupLaunch Template Args - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- Load
Balancers []string - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - Max
Instance intLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- Max
Size int - Maximum size of the Auto Scaling Group.
- Metrics
Granularity string | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - Min
Elb intCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- Min
Size int - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- Mixed
Instances GroupPolicy Mixed Instances Policy Args - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- Name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - Name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - Placement
Group string | string - Name of the placement group into which you'll launch your instances, if any.
- Predicted
Capacity int - Predicted capacity of the group.
- Protect
From boolScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- Service
Linked stringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- Suspended
Processes []string - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - []Group
Tag Args - Configuration block(s) containing resource tags. See Tag below for more details.
- Target
Group []stringArns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - Termination
Policies []string - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - Traffic
Sources []GroupTraffic Source Args - Attaches one or more traffic sources to the specified Auto Scaling group.
- Vpc
Zone []stringIdentifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - Wait
For stringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- Wait
For intElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - Warm
Pool GroupWarm Pool Args - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- Warm
Pool intSize - Current size of the warm pool.
- arn String
- ARN for this Auto Scaling Group
- availability
Zones List<String> - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity
Rebalance Boolean - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context String
- Reserved.
- default
Cooldown Integer - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default
Instance IntegerWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired
Capacity Integer - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired
Capacity StringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled
Metrics List<String> - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force
Delete Boolean - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force
Delete BooleanWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health
Check IntegerGrace Period - Time (in seconds) after instance comes into service before checking health.
- health
Check StringType - "EC2" or "ELB". Controls how health checking is done.
- ignore
Failed BooleanScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial
Lifecycle List<GroupHooks Initial Lifecycle Hook> - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance
Maintenance GroupPolicy Instance Maintenance Policy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance
Refresh GroupInstance Refresh - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch
Configuration String | String - Name of the launch configuration to use.
- launch
Template GroupLaunch Template - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load
Balancers List<String> - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max
Instance IntegerLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- max
Size Integer - Maximum size of the Auto Scaling Group.
- metrics
Granularity String | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min
Elb IntegerCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- min
Size Integer - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- mixed
Instances GroupPolicy Mixed Instances Policy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name String
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement
Group String | String - Name of the placement group into which you'll launch your instances, if any.
- predicted
Capacity Integer - Predicted capacity of the group.
- protect
From BooleanScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service
Linked StringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended
Processes List<String> - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - List<Group
Tag> - Configuration block(s) containing resource tags. See Tag below for more details.
- target
Group List<String>Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination
Policies List<String> - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic
Sources List<GroupTraffic Source> - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc
Zone List<String>Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait
For StringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait
For IntegerElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm
Pool GroupWarm Pool - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- warm
Pool IntegerSize - Current size of the warm pool.
- arn string
- ARN for this Auto Scaling Group
- availability
Zones string[] - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity
Rebalance boolean - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context string
- Reserved.
- default
Cooldown number - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default
Instance numberWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired
Capacity number - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired
Capacity stringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled
Metrics Metric[] - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force
Delete boolean - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force
Delete booleanWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health
Check numberGrace Period - Time (in seconds) after instance comes into service before checking health.
- health
Check stringType - "EC2" or "ELB". Controls how health checking is done.
- ignore
Failed booleanScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial
Lifecycle GroupHooks Initial Lifecycle Hook[] - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance
Maintenance GroupPolicy Instance Maintenance Policy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance
Refresh GroupInstance Refresh - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch
Configuration string | LaunchConfiguration - Name of the launch configuration to use.
- launch
Template GroupLaunch Template - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load
Balancers string[] - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max
Instance numberLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- max
Size number - Maximum size of the Auto Scaling Group.
- metrics
Granularity string | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min
Elb numberCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- min
Size number - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- mixed
Instances GroupPolicy Mixed Instances Policy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name
Prefix string - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement
Group string | PlacementGroup - Name of the placement group into which you'll launch your instances, if any.
- predicted
Capacity number - Predicted capacity of the group.
- protect
From booleanScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service
Linked stringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended
Processes string[] - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - Group
Tag[] - Configuration block(s) containing resource tags. See Tag below for more details.
- target
Group string[]Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination
Policies string[] - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic
Sources GroupTraffic Source[] - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc
Zone string[]Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait
For stringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait
For numberElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm
Pool GroupWarm Pool - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- warm
Pool numberSize - Current size of the warm pool.
- arn str
- ARN for this Auto Scaling Group
- availability_
zones Sequence[str] - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity_
rebalance bool - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context str
- Reserved.
- default_
cooldown int - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default_
instance_ intwarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired_
capacity int - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired_
capacity_ strtype - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled_
metrics Sequence[str] - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force_
delete bool - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force_
delete_ boolwarm_ pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health_
check_ intgrace_ period - Time (in seconds) after instance comes into service before checking health.
- health_
check_ strtype - "EC2" or "ELB". Controls how health checking is done.
- ignore_
failed_ boolscaling_ activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial_
lifecycle_ Sequence[Grouphooks Initial Lifecycle Hook Args] - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance_
maintenance_ Grouppolicy Instance Maintenance Policy Args - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance_
refresh GroupInstance Refresh Args - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch_
configuration str | str - Name of the launch configuration to use.
- launch_
template GroupLaunch Template Args - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load_
balancers Sequence[str] - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max_
instance_ intlifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- max_
size int - Maximum size of the Auto Scaling Group.
- metrics_
granularity str | MetricsGranularity - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min_
elb_ intcapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- min_
size int - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- mixed_
instances_ Grouppolicy Mixed Instances Policy Args - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name str
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name_
prefix str - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement_
group str | str - Name of the placement group into which you'll launch your instances, if any.
- predicted_
capacity int - Predicted capacity of the group.
- protect_
from_ boolscale_ in - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service_
linked_ strrole_ arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended_
processes Sequence[str] - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - Sequence[Group
Tag Args] - Configuration block(s) containing resource tags. See Tag below for more details.
- target_
group_ Sequence[str]arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination_
policies Sequence[str] - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic_
sources Sequence[GroupTraffic Source Args] - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc_
zone_ Sequence[str]identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait_
for_ strcapacity_ timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait_
for_ intelb_ capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm_
pool GroupWarm Pool Args - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- warm_
pool_ intsize - Current size of the warm pool.
- arn String
- ARN for this Auto Scaling Group
- availability
Zones List<String> - A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the
vpc_zone_identifier
attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. Conflicts withvpc_zone_identifier
. - capacity
Rebalance Boolean - Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.
- context String
- Reserved.
- default
Cooldown Number - Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.
- default
Instance NumberWarmup - Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)
- desired
Capacity Number - Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)
- desired
Capacity StringType - The unit of measurement for the value specified for
desired_capacity
. Supported for attribute-based instance type selection only. Valid values:"units"
,"vcpu"
,"memory-mib"
. - enabled
Metrics List<> - List of metrics to collect. The allowed values are defined by the underlying AWS API.
- force
Delete Boolean - Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.
- force
Delete BooleanWarm Pool - Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
- health
Check NumberGrace Period - Time (in seconds) after instance comes into service before checking health.
- health
Check StringType - "EC2" or "ELB". Controls how health checking is done.
- ignore
Failed BooleanScaling Activities - Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is
false
-- failed scaling activities cause errors to be returned. - initial
Lifecycle List<Property Map>Hooks - One or more
Lifecycle Hooks
to attach to the Auto Scaling Group before instances are launched. The
syntax is exactly the same as the separate
aws.autoscaling.LifecycleHook
resource, without theautoscaling_group_name
attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please useaws.autoscaling.LifecycleHook
resource. - instance
Maintenance Property MapPolicy - If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
- instance
Refresh Property Map - If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.
- launch
Configuration String | - Name of the launch configuration to use.
- launch
Template Property Map - Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.
- load
Balancers List<String> - List of elastic load balancer names to add to the autoscaling
group names. Only valid for classic load balancers. For ALBs, use
target_group_arns
instead. To remove all load balancer attachments an empty list should be specified. - max
Instance NumberLifetime - Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.
- max
Size Number - Maximum size of the Auto Scaling Group.
- metrics
Granularity String | "1Minute" - Granularity to associate with the metrics to collect. The only valid value is
1Minute
. Default is1Minute
. - min
Elb NumberCapacity - Setting this causes Pulumi to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)
- min
Size Number - Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)
- mixed
Instances Property MapPolicy - Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.
- name String
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - name
Prefix String - Creates a unique name beginning with the specified
prefix. Conflicts with
name
. - placement
Group String | - Name of the placement group into which you'll launch your instances, if any.
- predicted
Capacity Number - Predicted capacity of the group.
- protect
From BooleanScale In - Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.
- service
Linked StringRole Arn - ARN of the service-linked role that the ASG will use to call other AWS services
- suspended
Processes List<String> - List of processes to suspend for the Auto Scaling Group. The allowed values are
Launch
,Terminate
,HealthCheck
,ReplaceUnhealthy
,AZRebalance
,AlarmNotification
,ScheduledActions
,AddToLoadBalancer
,InstanceRefresh
. Note that if you suspend either theLaunch
orTerminate
process types, it can prevent your Auto Scaling Group from functioning properly. - List<Property Map>
- Configuration block(s) containing resource tags. See Tag below for more details.
- target
Group List<String>Arns - Set of
aws.alb.TargetGroup
ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified. - termination
Policies List<String> - List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are
OldestInstance
,NewestInstance
,OldestLaunchConfiguration
,ClosestToNextInstanceHour
,OldestLaunchTemplate
,AllocationStrategy
,Default
. Additionally, the ARN of a Lambda function can be specified for custom termination policies. - traffic
Sources List<Property Map> - Attaches one or more traffic sources to the specified Auto Scaling group.
- vpc
Zone List<String>Identifiers - List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with
availability_zones
. - wait
For StringCapacity Timeout - Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.
- wait
For NumberElb Capacity - Setting this will cause Pulumi to wait
for exactly this number of healthy instances from this Auto Scaling Group in
all attached load balancers on both create and update operations. (Takes
precedence over
min_elb_capacity
behavior.) (See also Waiting for Capacity below.) - warm
Pool Property Map - If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
- warm
Pool NumberSize - Current size of the warm pool.
Supporting Types
GroupInitialLifecycleHook, GroupInitialLifecycleHookArgs
- Lifecycle
Transition string - Name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - Default
Result string - Heartbeat
Timeout int - Notification
Metadata string - Notification
Target stringArn - Role
Arn string
- Lifecycle
Transition string - Name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - Default
Result string - Heartbeat
Timeout int - Notification
Metadata string - Notification
Target stringArn - Role
Arn string
- lifecycle
Transition String - name String
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - default
Result String - heartbeat
Timeout Integer - notification
Metadata String - notification
Target StringArn - role
Arn String
- lifecycle
Transition string - name string
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - default
Result string - heartbeat
Timeout number - notification
Metadata string - notification
Target stringArn - role
Arn string
- lifecycle_
transition str - name str
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - default_
result str - heartbeat_
timeout int - notification_
metadata str - notification_
target_ strarn - role_
arn str
- lifecycle
Transition String - name String
- Name of the Auto Scaling Group. By default generated by Pulumi. Conflicts with
name_prefix
. - default
Result String - heartbeat
Timeout Number - notification
Metadata String - notification
Target StringArn - role
Arn String
GroupInstanceMaintenancePolicy, GroupInstanceMaintenancePolicyArgs
- Max
Healthy intPercentage - Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
- Min
Healthy intPercentage - Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
- Max
Healthy intPercentage - Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
- Min
Healthy intPercentage - Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
- max
Healthy IntegerPercentage - Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
- min
Healthy IntegerPercentage - Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
- max
Healthy numberPercentage - Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
- min
Healthy numberPercentage - Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
- max_
healthy_ intpercentage - Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
- min_
healthy_ intpercentage - Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
- max
Healthy NumberPercentage - Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
- min
Healthy NumberPercentage - Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
GroupInstanceRefresh, GroupInstanceRefreshArgs
- Strategy string
- Strategy to use for instance refresh. The only allowed value is
Rolling
. See StartInstanceRefresh Action for more information. - Preferences
Group
Instance Refresh Preferences - Override default parameters for Instance Refresh.
- Triggers List<string>
Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of
launch_configuration
,launch_template
, ormixed_instances_policy
.NOTE: A refresh is started when any of the following Auto Scaling Group properties change:
launch_configuration
,launch_template
,mixed_instances_policy
. Additional properties can be specified in thetriggers
property ofinstance_refresh
.NOTE: A refresh will not start when
version = "$Latest"
is configured in thelaunch_template
block. To trigger the instance refresh when a launch template is changed, configureversion
to use thelatest_version
attribute of theaws.ec2.LaunchTemplate
resource.NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.
NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.
- Strategy string
- Strategy to use for instance refresh. The only allowed value is
Rolling
. See StartInstanceRefresh Action for more information. - Preferences
Group
Instance Refresh Preferences - Override default parameters for Instance Refresh.
- Triggers []string
Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of
launch_configuration
,launch_template
, ormixed_instances_policy
.NOTE: A refresh is started when any of the following Auto Scaling Group properties change:
launch_configuration
,launch_template
,mixed_instances_policy
. Additional properties can be specified in thetriggers
property ofinstance_refresh
.NOTE: A refresh will not start when
version = "$Latest"
is configured in thelaunch_template
block. To trigger the instance refresh when a launch template is changed, configureversion
to use thelatest_version
attribute of theaws.ec2.LaunchTemplate
resource.NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.
NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.
- strategy String
- Strategy to use for instance refresh. The only allowed value is
Rolling
. See StartInstanceRefresh Action for more information. - preferences
Group
Instance Refresh Preferences - Override default parameters for Instance Refresh.
- triggers List<String>
Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of
launch_configuration
,launch_template
, ormixed_instances_policy
.NOTE: A refresh is started when any of the following Auto Scaling Group properties change:
launch_configuration
,launch_template
,mixed_instances_policy
. Additional properties can be specified in thetriggers
property ofinstance_refresh
.NOTE: A refresh will not start when
version = "$Latest"
is configured in thelaunch_template
block. To trigger the instance refresh when a launch template is changed, configureversion
to use thelatest_version
attribute of theaws.ec2.LaunchTemplate
resource.NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.
NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.
- strategy string
- Strategy to use for instance refresh. The only allowed value is
Rolling
. See StartInstanceRefresh Action for more information. - preferences
Group
Instance Refresh Preferences - Override default parameters for Instance Refresh.
- triggers string[]
Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of
launch_configuration
,launch_template
, ormixed_instances_policy
.NOTE: A refresh is started when any of the following Auto Scaling Group properties change:
launch_configuration
,launch_template
,mixed_instances_policy
. Additional properties can be specified in thetriggers
property ofinstance_refresh
.NOTE: A refresh will not start when
version = "$Latest"
is configured in thelaunch_template
block. To trigger the instance refresh when a launch template is changed, configureversion
to use thelatest_version
attribute of theaws.ec2.LaunchTemplate
resource.NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.
NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.
- strategy str
- Strategy to use for instance refresh. The only allowed value is
Rolling
. See StartInstanceRefresh Action for more information. - preferences
Group
Instance Refresh Preferences - Override default parameters for Instance Refresh.
- triggers Sequence[str]
Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of
launch_configuration
,launch_template
, ormixed_instances_policy
.NOTE: A refresh is started when any of the following Auto Scaling Group properties change:
launch_configuration
,launch_template
,mixed_instances_policy
. Additional properties can be specified in thetriggers
property ofinstance_refresh
.NOTE: A refresh will not start when
version = "$Latest"
is configured in thelaunch_template
block. To trigger the instance refresh when a launch template is changed, configureversion
to use thelatest_version
attribute of theaws.ec2.LaunchTemplate
resource.NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.
NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.
- strategy String
- Strategy to use for instance refresh. The only allowed value is
Rolling
. See StartInstanceRefresh Action for more information. - preferences Property Map
- Override default parameters for Instance Refresh.
- triggers List<String>
Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of
launch_configuration
,launch_template
, ormixed_instances_policy
.NOTE: A refresh is started when any of the following Auto Scaling Group properties change:
launch_configuration
,launch_template
,mixed_instances_policy
. Additional properties can be specified in thetriggers
property ofinstance_refresh
.NOTE: A refresh will not start when
version = "$Latest"
is configured in thelaunch_template
block. To trigger the instance refresh when a launch template is changed, configureversion
to use thelatest_version
attribute of theaws.ec2.LaunchTemplate
resource.NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.
NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.
GroupInstanceRefreshPreferences, GroupInstanceRefreshPreferencesArgs
- Alarm
Specification GroupInstance Refresh Preferences Alarm Specification - Alarm Specification for Instance Refresh.
- Auto
Rollback bool - Automatically rollback if instance refresh fails. Defaults to
false
. This option may only be set totrue
when specifying alaunch_template
ormixed_instances_policy
. - Checkpoint
Delay string - Number of seconds to wait after a checkpoint. Defaults to
3600
. - Checkpoint
Percentages List<int> - List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be
100
. - Instance
Warmup string - Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
- Max
Healthy intPercentage - Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between
100
and200
, defaults to100
. - Min
Healthy intPercentage - Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to
90
. - Scale
In stringProtected Instances - Behavior when encountering instances protected from scale in are found. Available behaviors are
Refresh
,Ignore
, andWait
. Default isIgnore
. - Skip
Matching bool - Replace instances that already have your desired configuration. Defaults to
false
. - Standby
Instances string - Behavior when encountering instances in the
Standby
state in are found. Available behaviors areTerminate
,Ignore
, andWait
. Default isIgnore
.
- Alarm
Specification GroupInstance Refresh Preferences Alarm Specification - Alarm Specification for Instance Refresh.
- Auto
Rollback bool - Automatically rollback if instance refresh fails. Defaults to
false
. This option may only be set totrue
when specifying alaunch_template
ormixed_instances_policy
. - Checkpoint
Delay string - Number of seconds to wait after a checkpoint. Defaults to
3600
. - Checkpoint
Percentages []int - List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be
100
. - Instance
Warmup string - Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
- Max
Healthy intPercentage - Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between
100
and200
, defaults to100
. - Min
Healthy intPercentage - Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to
90
. - Scale
In stringProtected Instances - Behavior when encountering instances protected from scale in are found. Available behaviors are
Refresh
,Ignore
, andWait
. Default isIgnore
. - Skip
Matching bool - Replace instances that already have your desired configuration. Defaults to
false
. - Standby
Instances string - Behavior when encountering instances in the
Standby
state in are found. Available behaviors areTerminate
,Ignore
, andWait
. Default isIgnore
.
- alarm
Specification GroupInstance Refresh Preferences Alarm Specification - Alarm Specification for Instance Refresh.
- auto
Rollback Boolean - Automatically rollback if instance refresh fails. Defaults to
false
. This option may only be set totrue
when specifying alaunch_template
ormixed_instances_policy
. - checkpoint
Delay String - Number of seconds to wait after a checkpoint. Defaults to
3600
. - checkpoint
Percentages List<Integer> - List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be
100
. - instance
Warmup String - Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
- max
Healthy IntegerPercentage - Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between
100
and200
, defaults to100
. - min
Healthy IntegerPercentage - Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to
90
. - scale
In StringProtected Instances - Behavior when encountering instances protected from scale in are found. Available behaviors are
Refresh
,Ignore
, andWait
. Default isIgnore
. - skip
Matching Boolean - Replace instances that already have your desired configuration. Defaults to
false
. - standby
Instances String - Behavior when encountering instances in the
Standby
state in are found. Available behaviors areTerminate
,Ignore
, andWait
. Default isIgnore
.
- alarm
Specification GroupInstance Refresh Preferences Alarm Specification - Alarm Specification for Instance Refresh.
- auto
Rollback boolean - Automatically rollback if instance refresh fails. Defaults to
false
. This option may only be set totrue
when specifying alaunch_template
ormixed_instances_policy
. - checkpoint
Delay string - Number of seconds to wait after a checkpoint. Defaults to
3600
. - checkpoint
Percentages number[] - List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be
100
. - instance
Warmup string - Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
- max
Healthy numberPercentage - Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between
100
and200
, defaults to100
. - min
Healthy numberPercentage - Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to
90
. - scale
In stringProtected Instances - Behavior when encountering instances protected from scale in are found. Available behaviors are
Refresh
,Ignore
, andWait
. Default isIgnore
. - skip
Matching boolean - Replace instances that already have your desired configuration. Defaults to
false
. - standby
Instances string - Behavior when encountering instances in the
Standby
state in are found. Available behaviors areTerminate
,Ignore
, andWait
. Default isIgnore
.
- alarm_
specification GroupInstance Refresh Preferences Alarm Specification - Alarm Specification for Instance Refresh.
- auto_
rollback bool - Automatically rollback if instance refresh fails. Defaults to
false
. This option may only be set totrue
when specifying alaunch_template
ormixed_instances_policy
. - checkpoint_
delay str - Number of seconds to wait after a checkpoint. Defaults to
3600
. - checkpoint_
percentages Sequence[int] - List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be
100
. - instance_
warmup str - Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
- max_
healthy_ intpercentage - Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between
100
and200
, defaults to100
. - min_
healthy_ intpercentage - Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to
90
. - scale_
in_ strprotected_ instances - Behavior when encountering instances protected from scale in are found. Available behaviors are
Refresh
,Ignore
, andWait
. Default isIgnore
. - skip_
matching bool - Replace instances that already have your desired configuration. Defaults to
false
. - standby_
instances str - Behavior when encountering instances in the
Standby
state in are found. Available behaviors areTerminate
,Ignore
, andWait
. Default isIgnore
.
- alarm
Specification Property Map - Alarm Specification for Instance Refresh.
- auto
Rollback Boolean - Automatically rollback if instance refresh fails. Defaults to
false
. This option may only be set totrue
when specifying alaunch_template
ormixed_instances_policy
. - checkpoint
Delay String - Number of seconds to wait after a checkpoint. Defaults to
3600
. - checkpoint
Percentages List<Number> - List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be
100
. - instance
Warmup String - Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.
- max
Healthy NumberPercentage - Amount of capacity in the Auto Scaling group that can be in service and healthy, or pending, to support your workload when an instance refresh is in place, as a percentage of the desired capacity of the Auto Scaling group. Values must be between
100
and200
, defaults to100
. - min
Healthy NumberPercentage - Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to
90
. - scale
In StringProtected Instances - Behavior when encountering instances protected from scale in are found. Available behaviors are
Refresh
,Ignore
, andWait
. Default isIgnore
. - skip
Matching Boolean - Replace instances that already have your desired configuration. Defaults to
false
. - standby
Instances String - Behavior when encountering instances in the
Standby
state in are found. Available behaviors areTerminate
,Ignore
, andWait
. Default isIgnore
.
GroupInstanceRefreshPreferencesAlarmSpecification, GroupInstanceRefreshPreferencesAlarmSpecificationArgs
- Alarms List<string>
- List of Cloudwatch alarms. If any of these alarms goes into ALARM state, Instance Refresh is failed.
- Alarms []string
- List of Cloudwatch alarms. If any of these alarms goes into ALARM state, Instance Refresh is failed.
- alarms List<String>
- List of Cloudwatch alarms. If any of these alarms goes into ALARM state, Instance Refresh is failed.
- alarms string[]
- List of Cloudwatch alarms. If any of these alarms goes into ALARM state, Instance Refresh is failed.
- alarms Sequence[str]
- List of Cloudwatch alarms. If any of these alarms goes into ALARM state, Instance Refresh is failed.
- alarms List<String>
- List of Cloudwatch alarms. If any of these alarms goes into ALARM state, Instance Refresh is failed.
GroupLaunchTemplate, GroupLaunchTemplateArgs
GroupMixedInstancesPolicy, GroupMixedInstancesPolicyArgs
- Launch
Template GroupMixed Instances Policy Launch Template - Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.
- Instances
Distribution GroupMixed Instances Policy Instances Distribution - Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.
- Launch
Template GroupMixed Instances Policy Launch Template - Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.
- Instances
Distribution GroupMixed Instances Policy Instances Distribution - Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.
- launch
Template GroupMixed Instances Policy Launch Template - Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.
- instances
Distribution GroupMixed Instances Policy Instances Distribution - Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.
- launch
Template GroupMixed Instances Policy Launch Template - Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.
- instances
Distribution GroupMixed Instances Policy Instances Distribution - Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.
- launch_
template GroupMixed Instances Policy Launch Template - Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.
- instances_
distribution GroupMixed Instances Policy Instances Distribution - Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.
- launch
Template Property Map - Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.
- instances
Distribution Property Map - Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.
GroupMixedInstancesPolicyInstancesDistribution, GroupMixedInstancesPolicyInstancesDistributionArgs
- On
Demand stringAllocation Strategy - On
Demand intBase Capacity - On
Demand intPercentage Above Base Capacity - Spot
Allocation stringStrategy - Spot
Instance intPools - Spot
Max stringPrice
- On
Demand stringAllocation Strategy - On
Demand intBase Capacity - On
Demand intPercentage Above Base Capacity - Spot
Allocation stringStrategy - Spot
Instance intPools - Spot
Max stringPrice
- on
Demand StringAllocation Strategy - on
Demand IntegerBase Capacity - on
Demand IntegerPercentage Above Base Capacity - spot
Allocation StringStrategy - spot
Instance IntegerPools - spot
Max StringPrice
- on
Demand stringAllocation Strategy - on
Demand numberBase Capacity - on
Demand numberPercentage Above Base Capacity - spot
Allocation stringStrategy - spot
Instance numberPools - spot
Max stringPrice
- on
Demand StringAllocation Strategy - on
Demand NumberBase Capacity - on
Demand NumberPercentage Above Base Capacity - spot
Allocation StringStrategy - spot
Instance NumberPools - spot
Max StringPrice
GroupMixedInstancesPolicyLaunchTemplate, GroupMixedInstancesPolicyLaunchTemplateArgs
GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification, GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
- Launch
Template stringId - Launch
Template stringName - Version string
- Launch
Template stringId - Launch
Template stringName - Version string
- launch
Template StringId - launch
Template StringName - version String
- launch
Template stringId - launch
Template stringName - version string
- launch_
template_ strid - launch_
template_ strname - version str
- launch
Template StringId - launch
Template StringName - version String
GroupMixedInstancesPolicyLaunchTemplateOverride, GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs
- Accelerator
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Accelerator Count - Accelerator
Manufacturers List<string> - Accelerator
Names List<string> - Accelerator
Total GroupMemory Mib Mixed Instances Policy Launch Template Override Instance Requirements Accelerator Total Memory Mib - Accelerator
Types List<string> - Allowed
Instance List<string>Types - Bare
Metal string - Baseline
Ebs GroupBandwidth Mbps Mixed Instances Policy Launch Template Override Instance Requirements Baseline Ebs Bandwidth Mbps - Burstable
Performance string - Cpu
Manufacturers List<string> - Excluded
Instance List<string>Types - Instance
Generations List<string> - Local
Storage string - Local
Storage List<string>Types - Max
Spot intPrice As Percentage Of Optimal On Demand Price - Memory
Gib GroupPer Vcpu Mixed Instances Policy Launch Template Override Instance Requirements Memory Gib Per Vcpu - Memory
Mib GroupMixed Instances Policy Launch Template Override Instance Requirements Memory Mib - Network
Bandwidth GroupGbps Mixed Instances Policy Launch Template Override Instance Requirements Network Bandwidth Gbps - Network
Interface GroupCount Mixed Instances Policy Launch Template Override Instance Requirements Network Interface Count - On
Demand intMax Price Percentage Over Lowest Price - Require
Hibernate boolSupport - Spot
Max intPrice Percentage Over Lowest Price - Total
Local GroupStorage Gb Mixed Instances Policy Launch Template Override Instance Requirements Total Local Storage Gb - Vcpu
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Vcpu Count
- Accelerator
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Accelerator Count - Accelerator
Manufacturers []string - Accelerator
Names []string - Accelerator
Total GroupMemory Mib Mixed Instances Policy Launch Template Override Instance Requirements Accelerator Total Memory Mib - Accelerator
Types []string - Allowed
Instance []stringTypes - Bare
Metal string - Baseline
Ebs GroupBandwidth Mbps Mixed Instances Policy Launch Template Override Instance Requirements Baseline Ebs Bandwidth Mbps - Burstable
Performance string - Cpu
Manufacturers []string - Excluded
Instance []stringTypes - Instance
Generations []string - Local
Storage string - Local
Storage []stringTypes - Max
Spot intPrice As Percentage Of Optimal On Demand Price - Memory
Gib GroupPer Vcpu Mixed Instances Policy Launch Template Override Instance Requirements Memory Gib Per Vcpu - Memory
Mib GroupMixed Instances Policy Launch Template Override Instance Requirements Memory Mib - Network
Bandwidth GroupGbps Mixed Instances Policy Launch Template Override Instance Requirements Network Bandwidth Gbps - Network
Interface GroupCount Mixed Instances Policy Launch Template Override Instance Requirements Network Interface Count - On
Demand intMax Price Percentage Over Lowest Price - Require
Hibernate boolSupport - Spot
Max intPrice Percentage Over Lowest Price - Total
Local GroupStorage Gb Mixed Instances Policy Launch Template Override Instance Requirements Total Local Storage Gb - Vcpu
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Vcpu Count
- accelerator
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Accelerator Count - accelerator
Manufacturers List<String> - accelerator
Names List<String> - accelerator
Total GroupMemory Mib Mixed Instances Policy Launch Template Override Instance Requirements Accelerator Total Memory Mib - accelerator
Types List<String> - allowed
Instance List<String>Types - bare
Metal String - baseline
Ebs GroupBandwidth Mbps Mixed Instances Policy Launch Template Override Instance Requirements Baseline Ebs Bandwidth Mbps - burstable
Performance String - cpu
Manufacturers List<String> - excluded
Instance List<String>Types - instance
Generations List<String> - local
Storage String - local
Storage List<String>Types - max
Spot IntegerPrice As Percentage Of Optimal On Demand Price - memory
Gib GroupPer Vcpu Mixed Instances Policy Launch Template Override Instance Requirements Memory Gib Per Vcpu - memory
Mib GroupMixed Instances Policy Launch Template Override Instance Requirements Memory Mib - network
Bandwidth GroupGbps Mixed Instances Policy Launch Template Override Instance Requirements Network Bandwidth Gbps - network
Interface GroupCount Mixed Instances Policy Launch Template Override Instance Requirements Network Interface Count - on
Demand IntegerMax Price Percentage Over Lowest Price - require
Hibernate BooleanSupport - spot
Max IntegerPrice Percentage Over Lowest Price - total
Local GroupStorage Gb Mixed Instances Policy Launch Template Override Instance Requirements Total Local Storage Gb - vcpu
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Vcpu Count
- accelerator
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Accelerator Count - accelerator
Manufacturers string[] - accelerator
Names string[] - accelerator
Total GroupMemory Mib Mixed Instances Policy Launch Template Override Instance Requirements Accelerator Total Memory Mib - accelerator
Types string[] - allowed
Instance string[]Types - bare
Metal string - baseline
Ebs GroupBandwidth Mbps Mixed Instances Policy Launch Template Override Instance Requirements Baseline Ebs Bandwidth Mbps - burstable
Performance string - cpu
Manufacturers string[] - excluded
Instance string[]Types - instance
Generations string[] - local
Storage string - local
Storage string[]Types - max
Spot numberPrice As Percentage Of Optimal On Demand Price - memory
Gib GroupPer Vcpu Mixed Instances Policy Launch Template Override Instance Requirements Memory Gib Per Vcpu - memory
Mib GroupMixed Instances Policy Launch Template Override Instance Requirements Memory Mib - network
Bandwidth GroupGbps Mixed Instances Policy Launch Template Override Instance Requirements Network Bandwidth Gbps - network
Interface GroupCount Mixed Instances Policy Launch Template Override Instance Requirements Network Interface Count - on
Demand numberMax Price Percentage Over Lowest Price - require
Hibernate booleanSupport - spot
Max numberPrice Percentage Over Lowest Price - total
Local GroupStorage Gb Mixed Instances Policy Launch Template Override Instance Requirements Total Local Storage Gb - vcpu
Count GroupMixed Instances Policy Launch Template Override Instance Requirements Vcpu Count
- accelerator_
count GroupMixed Instances Policy Launch Template Override Instance Requirements Accelerator Count - accelerator_
manufacturers Sequence[str] - accelerator_
names Sequence[str] - accelerator_
total_ Groupmemory_ mib Mixed Instances Policy Launch Template Override Instance Requirements Accelerator Total Memory Mib - accelerator_
types Sequence[str] - allowed_
instance_ Sequence[str]types - bare_
metal str - baseline_
ebs_ Groupbandwidth_ mbps Mixed Instances Policy Launch Template Override Instance Requirements Baseline Ebs Bandwidth Mbps - burstable_
performance str - cpu_
manufacturers Sequence[str] - excluded_
instance_ Sequence[str]types - instance_
generations Sequence[str] - local_
storage str - local_
storage_ Sequence[str]types - max_
spot_ intprice_ as_ percentage_ of_ optimal_ on_ demand_ price - memory_
gib_ Groupper_ vcpu Mixed Instances Policy Launch Template Override Instance Requirements Memory Gib Per Vcpu - memory_
mib GroupMixed Instances Policy Launch Template Override Instance Requirements Memory Mib - network_
bandwidth_ Groupgbps Mixed Instances Policy Launch Template Override Instance Requirements Network Bandwidth Gbps - network_
interface_ Groupcount Mixed Instances Policy Launch Template Override Instance Requirements Network Interface Count - on_
demand_ intmax_ price_ percentage_ over_ lowest_ price - require_
hibernate_ boolsupport - spot_
max_ intprice_ percentage_ over_ lowest_ price - total_
local_ Groupstorage_ gb Mixed Instances Policy Launch Template Override Instance Requirements Total Local Storage Gb - vcpu_
count GroupMixed Instances Policy Launch Template Override Instance Requirements Vcpu Count
- accelerator
Count Property Map - accelerator
Manufacturers List<String> - accelerator
Names List<String> - accelerator
Total Property MapMemory Mib - accelerator
Types List<String> - allowed
Instance List<String>Types - bare
Metal String - baseline
Ebs Property MapBandwidth Mbps - burstable
Performance String - cpu
Manufacturers List<String> - excluded
Instance List<String>Types - instance
Generations List<String> - local
Storage String - local
Storage List<String>Types - max
Spot NumberPrice As Percentage Of Optimal On Demand Price - memory
Gib Property MapPer Vcpu - memory
Mib Property Map - network
Bandwidth Property MapGbps - network
Interface Property MapCount - on
Demand NumberMax Price Percentage Over Lowest Price - require
Hibernate BooleanSupport - spot
Max NumberPrice Percentage Over Lowest Price - total
Local Property MapStorage Gb - vcpu
Count Property Map
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs
GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification, GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs
- Launch
Template stringId - Launch
Template stringName - Version string
- Launch
Template stringId - Launch
Template stringName - Version string
- launch
Template StringId - launch
Template StringName - version String
- launch
Template stringId - launch
Template stringName - version string
- launch_
template_ strid - launch_
template_ strname - version str
- launch
Template StringId - launch
Template StringName - version String
GroupTag, GroupTagArgs
- Key string
- Key
- Propagate
At boolLaunch Enables propagation of the tag to Amazon EC2 instances launched via this ASG
To declare multiple tags, additional
tag
blocks can be specified.NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the
AmazonECSManaged
tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if themin_size
was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.- Value string
- Value
- Key string
- Key
- Propagate
At boolLaunch Enables propagation of the tag to Amazon EC2 instances launched via this ASG
To declare multiple tags, additional
tag
blocks can be specified.NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the
AmazonECSManaged
tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if themin_size
was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.- Value string
- Value
- key String
- Key
- propagate
At BooleanLaunch Enables propagation of the tag to Amazon EC2 instances launched via this ASG
To declare multiple tags, additional
tag
blocks can be specified.NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the
AmazonECSManaged
tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if themin_size
was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.- value String
- Value
- key string
- Key
- propagate
At booleanLaunch Enables propagation of the tag to Amazon EC2 instances launched via this ASG
To declare multiple tags, additional
tag
blocks can be specified.NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the
AmazonECSManaged
tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if themin_size
was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.- value string
- Value
- key str
- Key
- propagate_
at_ boollaunch Enables propagation of the tag to Amazon EC2 instances launched via this ASG
To declare multiple tags, additional
tag
blocks can be specified.NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the
AmazonECSManaged
tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if themin_size
was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.- value str
- Value
- key String
- Key
- propagate
At BooleanLaunch Enables propagation of the tag to Amazon EC2 instances launched via this ASG
To declare multiple tags, additional
tag
blocks can be specified.NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the
AmazonECSManaged
tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if themin_size
was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.- value String
- Value
GroupTrafficSource, GroupTrafficSourceArgs
- Identifier string
- Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
- Type string
- Provides additional context for the value of Identifier.
The following lists the valid values:
elb
ifidentifier
is the name of a Classic Load Balancer.elbv2
ifidentifier
is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.vpc-lattice
ifidentifier
is the ARN of a VPC Lattice target group.
- Identifier string
- Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
- Type string
- Provides additional context for the value of Identifier.
The following lists the valid values:
elb
ifidentifier
is the name of a Classic Load Balancer.elbv2
ifidentifier
is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.vpc-lattice
ifidentifier
is the ARN of a VPC Lattice target group.
- identifier String
- Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
- type String
- Provides additional context for the value of Identifier.
The following lists the valid values:
elb
ifidentifier
is the name of a Classic Load Balancer.elbv2
ifidentifier
is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.vpc-lattice
ifidentifier
is the ARN of a VPC Lattice target group.
- identifier string
- Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
- type string
- Provides additional context for the value of Identifier.
The following lists the valid values:
elb
ifidentifier
is the name of a Classic Load Balancer.elbv2
ifidentifier
is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.vpc-lattice
ifidentifier
is the ARN of a VPC Lattice target group.
- identifier str
- Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
- type str
- Provides additional context for the value of Identifier.
The following lists the valid values:
elb
ifidentifier
is the name of a Classic Load Balancer.elbv2
ifidentifier
is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.vpc-lattice
ifidentifier
is the ARN of a VPC Lattice target group.
- identifier String
- Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
- type String
- Provides additional context for the value of Identifier.
The following lists the valid values:
elb
ifidentifier
is the name of a Classic Load Balancer.elbv2
ifidentifier
is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.vpc-lattice
ifidentifier
is the ARN of a VPC Lattice target group.
GroupWarmPool, GroupWarmPoolArgs
- Instance
Reuse GroupPolicy Warm Pool Instance Reuse Policy - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.
- Max
Group intPrepared Capacity - Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.
- Min
Size int - Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
- Pool
State string - Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.
- Instance
Reuse GroupPolicy Warm Pool Instance Reuse Policy - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.
- Max
Group intPrepared Capacity - Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.
- Min
Size int - Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
- Pool
State string - Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.
- instance
Reuse GroupPolicy Warm Pool Instance Reuse Policy - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.
- max
Group IntegerPrepared Capacity - Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.
- min
Size Integer - Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
- pool
State String - Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.
- instance
Reuse GroupPolicy Warm Pool Instance Reuse Policy - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.
- max
Group numberPrepared Capacity - Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.
- min
Size number - Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
- pool
State string - Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.
- instance_
reuse_ Grouppolicy Warm Pool Instance Reuse Policy - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.
- max_
group_ intprepared_ capacity - Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.
- min_
size int - Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
- pool_
state str - Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.
- instance
Reuse Property MapPolicy - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.
- max
Group NumberPrepared Capacity - Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.
- min
Size Number - Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.
- pool
State String - Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.
GroupWarmPoolInstanceReusePolicy, GroupWarmPoolInstanceReusePolicyArgs
- Reuse
On boolScale In - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
- Reuse
On boolScale In - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
- reuse
On BooleanScale In - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
- reuse
On booleanScale In - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
- reuse_
on_ boolscale_ in - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
- reuse
On BooleanScale In - Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.
MetricsGranularity, MetricsGranularityArgs
- One
Minute - 1Minute
- Metrics
Granularity One Minute - 1Minute
- One
Minute - 1Minute
- One
Minute - 1Minute
- ONE_MINUTE
- 1Minute
- "1Minute"
- 1Minute
Import
Using pulumi import
, import Auto Scaling Groups using the name
. For example:
$ pulumi import aws:autoscaling/group:Group web web-asg
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
aws
Terraform Provider.
Try AWS Native preview for resources not in the classic version.