SpotFleetRequest

Provides an EC2 Spot Fleet Request resource. This allows a fleet of Spot instances to be requested on the Spot market.

Example Usage

Using launch specifications

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        // Request a Spot fleet
        var cheapCompute = new Aws.Ec2.SpotFleetRequest("cheapCompute", new Aws.Ec2.SpotFleetRequestArgs
        {
            IamFleetRole = "arn:aws:iam::12345678:role/spot-fleet",
            SpotPrice = "0.03",
            AllocationStrategy = "diversified",
            TargetCapacity = 6,
            ValidUntil = "2019-11-04T20:44:20Z",
            LaunchSpecifications = 
            {
                new Aws.Ec2.Inputs.SpotFleetRequestLaunchSpecificationArgs
                {
                    InstanceType = "m4.10xlarge",
                    Ami = "ami-1234",
                    SpotPrice = "2.793",
                    PlacementTenancy = "dedicated",
                    IamInstanceProfileArn = aws_iam_instance_profile.Example.Arn,
                },
                new Aws.Ec2.Inputs.SpotFleetRequestLaunchSpecificationArgs
                {
                    InstanceType = "m4.4xlarge",
                    Ami = "ami-5678",
                    KeyName = "my-key",
                    SpotPrice = "1.117",
                    IamInstanceProfileArn = aws_iam_instance_profile.Example.Arn,
                    AvailabilityZone = "us-west-1a",
                    SubnetId = "subnet-1234",
                    WeightedCapacity = "35",
                    RootBlockDevices = 
                    {
                        new Aws.Ec2.Inputs.SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs
                        {
                            VolumeSize = 300,
                            VolumeType = "gp2",
                        },
                    },
                    Tags = 
                    {
                        { "Name", "spot-fleet-example" },
                    },
                },
            },
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.NewSpotFleetRequest(ctx, "cheapCompute", &ec2.SpotFleetRequestArgs{
			IamFleetRole:       pulumi.String("arn:aws:iam::12345678:role/spot-fleet"),
			SpotPrice:          pulumi.String("0.03"),
			AllocationStrategy: pulumi.String("diversified"),
			TargetCapacity:     pulumi.Int(6),
			ValidUntil:         pulumi.String("2019-11-04T20:44:20Z"),
			LaunchSpecifications: ec2.SpotFleetRequestLaunchSpecificationArray{
				&ec2.SpotFleetRequestLaunchSpecificationArgs{
					InstanceType:          pulumi.String("m4.10xlarge"),
					Ami:                   pulumi.String("ami-1234"),
					SpotPrice:             pulumi.String("2.793"),
					PlacementTenancy:      pulumi.String("dedicated"),
					IamInstanceProfileArn: pulumi.Any(aws_iam_instance_profile.Example.Arn),
				},
				&ec2.SpotFleetRequestLaunchSpecificationArgs{
					InstanceType:          pulumi.String("m4.4xlarge"),
					Ami:                   pulumi.String("ami-5678"),
					KeyName:               pulumi.String("my-key"),
					SpotPrice:             pulumi.String("1.117"),
					IamInstanceProfileArn: pulumi.Any(aws_iam_instance_profile.Example.Arn),
					AvailabilityZone:      pulumi.String("us-west-1a"),
					SubnetId:              pulumi.String("subnet-1234"),
					WeightedCapacity:      pulumi.String("35"),
					RootBlockDevices: ec2.SpotFleetRequestLaunchSpecificationRootBlockDeviceArray{
						&ec2.SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs{
							VolumeSize: pulumi.Int(300),
							VolumeType: pulumi.String("gp2"),
						},
					},
					Tags: pulumi.StringMap{
						"Name": pulumi.String("spot-fleet-example"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
import pulumi
import pulumi_aws as aws

# Request a Spot fleet
cheap_compute = aws.ec2.SpotFleetRequest("cheapCompute",
    iam_fleet_role="arn:aws:iam::12345678:role/spot-fleet",
    spot_price="0.03",
    allocation_strategy="diversified",
    target_capacity=6,
    valid_until="2019-11-04T20:44:20Z",
    launch_specifications=[
        aws.ec2.SpotFleetRequestLaunchSpecificationArgs(
            instance_type="m4.10xlarge",
            ami="ami-1234",
            spot_price="2.793",
            placement_tenancy="dedicated",
            iam_instance_profile_arn=aws_iam_instance_profile["example"]["arn"],
        ),
        aws.ec2.SpotFleetRequestLaunchSpecificationArgs(
            instance_type="m4.4xlarge",
            ami="ami-5678",
            key_name="my-key",
            spot_price="1.117",
            iam_instance_profile_arn=aws_iam_instance_profile["example"]["arn"],
            availability_zone="us-west-1a",
            subnet_id="subnet-1234",
            weighted_capacity="35",
            root_block_devices=[{
                "volume_size": "300",
                "volume_type": "gp2",
            }],
            tags={
                "Name": "spot-fleet-example",
            },
        ),
    ])
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// Request a Spot fleet
const cheapCompute = new aws.ec2.SpotFleetRequest("cheapCompute", {
    iamFleetRole: "arn:aws:iam::12345678:role/spot-fleet",
    spotPrice: "0.03",
    allocationStrategy: "diversified",
    targetCapacity: 6,
    validUntil: "2019-11-04T20:44:20Z",
    launchSpecifications: [
        {
            instanceType: "m4.10xlarge",
            ami: "ami-1234",
            spotPrice: "2.793",
            placementTenancy: "dedicated",
            iamInstanceProfileArn: aws_iam_instance_profile.example.arn,
        },
        {
            instanceType: "m4.4xlarge",
            ami: "ami-5678",
            keyName: "my-key",
            spotPrice: "1.117",
            iamInstanceProfileArn: aws_iam_instance_profile.example.arn,
            availabilityZone: "us-west-1a",
            subnetId: "subnet-1234",
            weightedCapacity: 35,
            rootBlockDevices: [{
                volumeSize: "300",
                volumeType: "gp2",
            }],
            tags: {
                Name: "spot-fleet-example",
            },
        },
    ],
});

Using launch templates

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        var fooLaunchTemplate = new Aws.Ec2.LaunchTemplate("fooLaunchTemplate", new Aws.Ec2.LaunchTemplateArgs
        {
            ImageId = "ami-516b9131",
            InstanceType = "m1.small",
            KeyName = "some-key",
        });
        var fooSpotFleetRequest = new Aws.Ec2.SpotFleetRequest("fooSpotFleetRequest", new Aws.Ec2.SpotFleetRequestArgs
        {
            IamFleetRole = "arn:aws:iam::12345678:role/spot-fleet",
            SpotPrice = "0.005",
            TargetCapacity = 2,
            ValidUntil = "2019-11-04T20:44:20Z",
            LaunchTemplateConfigs = 
            {
                new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigArgs
                {
                    LaunchTemplateSpecification = new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs
                    {
                        Id = fooLaunchTemplate.Id,
                        Version = fooLaunchTemplate.LatestVersion,
                    },
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn = 
            {
                aws_iam_policy_attachment.Test_attach,
            },
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		fooLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "fooLaunchTemplate", &ec2.LaunchTemplateArgs{
			ImageId:      pulumi.String("ami-516b9131"),
			InstanceType: pulumi.String("m1.small"),
			KeyName:      pulumi.String("some-key"),
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewSpotFleetRequest(ctx, "fooSpotFleetRequest", &ec2.SpotFleetRequestArgs{
			IamFleetRole:   pulumi.String("arn:aws:iam::12345678:role/spot-fleet"),
			SpotPrice:      pulumi.String("0.005"),
			TargetCapacity: pulumi.Int(2),
			ValidUntil:     pulumi.String("2019-11-04T20:44:20Z"),
			LaunchTemplateConfigs: ec2.SpotFleetRequestLaunchTemplateConfigArray{
				&ec2.SpotFleetRequestLaunchTemplateConfigArgs{
					LaunchTemplateSpecification: &ec2.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs{
						Id:      fooLaunchTemplate.ID(),
						Version: fooLaunchTemplate.LatestVersion,
					},
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			aws_iam_policy_attachment.Test - attach,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
import pulumi
import pulumi_aws as aws

foo_launch_template = aws.ec2.LaunchTemplate("fooLaunchTemplate",
    image_id="ami-516b9131",
    instance_type="m1.small",
    key_name="some-key")
foo_spot_fleet_request = aws.ec2.SpotFleetRequest("fooSpotFleetRequest",
    iam_fleet_role="arn:aws:iam::12345678:role/spot-fleet",
    spot_price="0.005",
    target_capacity=2,
    valid_until="2019-11-04T20:44:20Z",
    launch_template_configs=[aws.ec2.SpotFleetRequestLaunchTemplateConfigArgs(
        launch_template_specification=aws.ec2.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs(
            id=foo_launch_template.id,
            version=foo_launch_template.latest_version,
        ),
    )],
    opts=pulumi.ResourceOptions(depends_on=[aws_iam_policy_attachment["test-attach"]]))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const fooLaunchTemplate = new aws.ec2.LaunchTemplate("fooLaunchTemplate", {
    imageId: "ami-516b9131",
    instanceType: "m1.small",
    keyName: "some-key",
});
const fooSpotFleetRequest = new aws.ec2.SpotFleetRequest("fooSpotFleetRequest", {
    iamFleetRole: "arn:aws:iam::12345678:role/spot-fleet",
    spotPrice: "0.005",
    targetCapacity: 2,
    validUntil: "2019-11-04T20:44:20Z",
    launchTemplateConfigs: [{
        launchTemplateSpecification: {
            id: fooLaunchTemplate.id,
            version: fooLaunchTemplate.latestVersion,
        },
    }],
}, {
    dependsOn: [aws_iam_policy_attachment["test-attach"]],
});

Using multiple launch specifications

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        var foo = new Aws.Ec2.SpotFleetRequest("foo", new Aws.Ec2.SpotFleetRequestArgs
        {
            IamFleetRole = "arn:aws:iam::12345678:role/spot-fleet",
            LaunchSpecifications = 
            {
                new Aws.Ec2.Inputs.SpotFleetRequestLaunchSpecificationArgs
                {
                    Ami = "ami-d06a90b0",
                    AvailabilityZone = "us-west-2a",
                    InstanceType = "m1.small",
                    KeyName = "my-key",
                },
                new Aws.Ec2.Inputs.SpotFleetRequestLaunchSpecificationArgs
                {
                    Ami = "ami-d06a90b0",
                    AvailabilityZone = "us-west-2a",
                    InstanceType = "m5.large",
                    KeyName = "my-key",
                },
            },
            SpotPrice = "0.005",
            TargetCapacity = 2,
            ValidUntil = "2019-11-04T20:44:20Z",
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.NewSpotFleetRequest(ctx, "foo", &ec2.SpotFleetRequestArgs{
			IamFleetRole: pulumi.String("arn:aws:iam::12345678:role/spot-fleet"),
			LaunchSpecifications: ec2.SpotFleetRequestLaunchSpecificationArray{
				&ec2.SpotFleetRequestLaunchSpecificationArgs{
					Ami:              pulumi.String("ami-d06a90b0"),
					AvailabilityZone: pulumi.String("us-west-2a"),
					InstanceType:     pulumi.String("m1.small"),
					KeyName:          pulumi.String("my-key"),
				},
				&ec2.SpotFleetRequestLaunchSpecificationArgs{
					Ami:              pulumi.String("ami-d06a90b0"),
					AvailabilityZone: pulumi.String("us-west-2a"),
					InstanceType:     pulumi.String("m5.large"),
					KeyName:          pulumi.String("my-key"),
				},
			},
			SpotPrice:      pulumi.String("0.005"),
			TargetCapacity: pulumi.Int(2),
			ValidUntil:     pulumi.String("2019-11-04T20:44:20Z"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
import pulumi
import pulumi_aws as aws

foo = aws.ec2.SpotFleetRequest("foo",
    iam_fleet_role="arn:aws:iam::12345678:role/spot-fleet",
    launch_specifications=[
        aws.ec2.SpotFleetRequestLaunchSpecificationArgs(
            ami="ami-d06a90b0",
            availability_zone="us-west-2a",
            instance_type="m1.small",
            key_name="my-key",
        ),
        aws.ec2.SpotFleetRequestLaunchSpecificationArgs(
            ami="ami-d06a90b0",
            availability_zone="us-west-2a",
            instance_type="m5.large",
            key_name="my-key",
        ),
    ],
    spot_price="0.005",
    target_capacity=2,
    valid_until="2019-11-04T20:44:20Z")
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const foo = new aws.ec2.SpotFleetRequest("foo", {
    iamFleetRole: "arn:aws:iam::12345678:role/spot-fleet",
    launchSpecifications: [
        {
            ami: "ami-d06a90b0",
            availabilityZone: "us-west-2a",
            instanceType: "m1.small",
            keyName: "my-key",
        },
        {
            ami: "ami-d06a90b0",
            availabilityZone: "us-west-2a",
            instanceType: "m5.large",
            keyName: "my-key",
        },
    ],
    spotPrice: "0.005",
    targetCapacity: 2,
    validUntil: "2019-11-04T20:44:20Z",
});

Using multiple launch configurations

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        var example = Output.Create(Aws.Ec2.GetSubnetIds.InvokeAsync(new Aws.Ec2.GetSubnetIdsArgs
        {
            VpcId = @var.Vpc_id,
        }));
        var fooLaunchTemplate = new Aws.Ec2.LaunchTemplate("fooLaunchTemplate", new Aws.Ec2.LaunchTemplateArgs
        {
            ImageId = "ami-516b9131",
            InstanceType = "m1.small",
            KeyName = "some-key",
        });
        var fooSpotFleetRequest = new Aws.Ec2.SpotFleetRequest("fooSpotFleetRequest", new Aws.Ec2.SpotFleetRequestArgs
        {
            IamFleetRole = "arn:aws:iam::12345678:role/spot-fleet",
            SpotPrice = "0.005",
            TargetCapacity = 2,
            ValidUntil = "2019-11-04T20:44:20Z",
            LaunchTemplateConfigs = 
            {
                new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigArgs
                {
                    LaunchTemplateSpecification = new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs
                    {
                        Id = fooLaunchTemplate.Id,
                        Version = fooLaunchTemplate.LatestVersion,
                    },
                    Overrides = 
                    {
                        new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigOverrideArgs
                        {
                            SubnetId = data.Aws_subnets.Example.Ids[0],
                        },
                        new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigOverrideArgs
                        {
                            SubnetId = data.Aws_subnets.Example.Ids[1],
                        },
                        new Aws.Ec2.Inputs.SpotFleetRequestLaunchTemplateConfigOverrideArgs
                        {
                            SubnetId = data.Aws_subnets.Example.Ids[2],
                        },
                    },
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn = 
            {
                aws_iam_policy_attachment.Test_attach,
            },
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.GetSubnetIds(ctx, &ec2.GetSubnetIdsArgs{
			VpcId: _var.Vpc_id,
		}, nil)
		if err != nil {
			return err
		}
		fooLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "fooLaunchTemplate", &ec2.LaunchTemplateArgs{
			ImageId:      pulumi.String("ami-516b9131"),
			InstanceType: pulumi.String("m1.small"),
			KeyName:      pulumi.String("some-key"),
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewSpotFleetRequest(ctx, "fooSpotFleetRequest", &ec2.SpotFleetRequestArgs{
			IamFleetRole:   pulumi.String("arn:aws:iam::12345678:role/spot-fleet"),
			SpotPrice:      pulumi.String("0.005"),
			TargetCapacity: pulumi.Int(2),
			ValidUntil:     pulumi.String("2019-11-04T20:44:20Z"),
			LaunchTemplateConfigs: ec2.SpotFleetRequestLaunchTemplateConfigArray{
				&ec2.SpotFleetRequestLaunchTemplateConfigArgs{
					LaunchTemplateSpecification: &ec2.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs{
						Id:      fooLaunchTemplate.ID(),
						Version: fooLaunchTemplate.LatestVersion,
					},
					Overrides: ec2.SpotFleetRequestLaunchTemplateConfigOverrideArray{
						&ec2.SpotFleetRequestLaunchTemplateConfigOverrideArgs{
							SubnetId: pulumi.Any(data.Aws_subnets.Example.Ids[0]),
						},
						&ec2.SpotFleetRequestLaunchTemplateConfigOverrideArgs{
							SubnetId: pulumi.Any(data.Aws_subnets.Example.Ids[1]),
						},
						&ec2.SpotFleetRequestLaunchTemplateConfigOverrideArgs{
							SubnetId: pulumi.Any(data.Aws_subnets.Example.Ids[2]),
						},
					},
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			aws_iam_policy_attachment.Test - attach,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
import pulumi
import pulumi_aws as aws

example = aws.ec2.get_subnet_ids(vpc_id=var["vpc_id"])
foo_launch_template = aws.ec2.LaunchTemplate("fooLaunchTemplate",
    image_id="ami-516b9131",
    instance_type="m1.small",
    key_name="some-key")
foo_spot_fleet_request = aws.ec2.SpotFleetRequest("fooSpotFleetRequest",
    iam_fleet_role="arn:aws:iam::12345678:role/spot-fleet",
    spot_price="0.005",
    target_capacity=2,
    valid_until="2019-11-04T20:44:20Z",
    launch_template_configs=[aws.ec2.SpotFleetRequestLaunchTemplateConfigArgs(
        launch_template_specification=aws.ec2.SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs(
            id=foo_launch_template.id,
            version=foo_launch_template.latest_version,
        ),
        overrides=[
            aws.ec2.SpotFleetRequestLaunchTemplateConfigOverrideArgs(
                subnet_id=data["aws_subnets"]["example"]["ids"],
            ),
            aws.ec2.SpotFleetRequestLaunchTemplateConfigOverrideArgs(
                subnet_id=data["aws_subnets"]["example"]["ids"],
            ),
            aws.ec2.SpotFleetRequestLaunchTemplateConfigOverrideArgs(
                subnet_id=data["aws_subnets"]["example"]["ids"],
            ),
        ],
    )],
    opts=pulumi.ResourceOptions(depends_on=[aws_iam_policy_attachment["test-attach"]]))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = aws.ec2.getSubnetIds({
    vpcId: _var.vpc_id,
});
const fooLaunchTemplate = new aws.ec2.LaunchTemplate("fooLaunchTemplate", {
    imageId: "ami-516b9131",
    instanceType: "m1.small",
    keyName: "some-key",
});
const fooSpotFleetRequest = new aws.ec2.SpotFleetRequest("fooSpotFleetRequest", {
    iamFleetRole: "arn:aws:iam::12345678:role/spot-fleet",
    spotPrice: "0.005",
    targetCapacity: 2,
    validUntil: "2019-11-04T20:44:20Z",
    launchTemplateConfigs: [{
        launchTemplateSpecification: {
            id: fooLaunchTemplate.id,
            version: fooLaunchTemplate.latestVersion,
        },
        overrides: [
            {
                subnetId: data.aws_subnets.example.ids[0],
            },
            {
                subnetId: data.aws_subnets.example.ids[1],
            },
            {
                subnetId: data.aws_subnets.example.ids[2],
            },
        ],
    }],
}, {
    dependsOn: [aws_iam_policy_attachment["test-attach"]],
});

Create a SpotFleetRequest Resource

new SpotFleetRequest(name: string, args: SpotFleetRequestArgs, opts?: CustomResourceOptions);
@overload
def SpotFleetRequest(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     allocation_strategy: Optional[str] = None,
                     excess_capacity_termination_policy: Optional[str] = None,
                     fleet_type: Optional[str] = None,
                     iam_fleet_role: Optional[str] = None,
                     instance_interruption_behaviour: Optional[str] = None,
                     instance_pools_to_use_count: Optional[int] = None,
                     launch_specifications: Optional[Sequence[SpotFleetRequestLaunchSpecificationArgs]] = None,
                     launch_template_configs: Optional[Sequence[SpotFleetRequestLaunchTemplateConfigArgs]] = None,
                     load_balancers: Optional[Sequence[str]] = None,
                     replace_unhealthy_instances: Optional[bool] = None,
                     spot_maintenance_strategies: Optional[SpotFleetRequestSpotMaintenanceStrategiesArgs] = None,
                     spot_price: Optional[str] = None,
                     tags: Optional[Mapping[str, str]] = None,
                     tags_all: Optional[Mapping[str, str]] = None,
                     target_capacity: Optional[int] = None,
                     target_group_arns: Optional[Sequence[str]] = None,
                     terminate_instances_with_expiration: Optional[bool] = None,
                     valid_from: Optional[str] = None,
                     valid_until: Optional[str] = None,
                     wait_for_fulfillment: Optional[bool] = None)
@overload
def SpotFleetRequest(resource_name: str,
                     args: SpotFleetRequestArgs,
                     opts: Optional[ResourceOptions] = None)
func NewSpotFleetRequest(ctx *Context, name string, args SpotFleetRequestArgs, opts ...ResourceOption) (*SpotFleetRequest, error)
public SpotFleetRequest(string name, SpotFleetRequestArgs args, CustomResourceOptions? opts = null)
name string
The unique name of the resource.
args SpotFleetRequestArgs
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 SpotFleetRequestArgs
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 SpotFleetRequestArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args SpotFleetRequestArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

SpotFleetRequest Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.

Inputs

The SpotFleetRequest resource accepts the following input properties:

IamFleetRole string
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
TargetCapacity int
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
AllocationStrategy string
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
ExcessCapacityTerminationPolicy string
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
FleetType string
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
InstancePoolsToUseCount int
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
LaunchSpecifications List<SpotFleetRequestLaunchSpecificationArgs>
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
LaunchTemplateConfigs List<SpotFleetRequestLaunchTemplateConfigArgs>
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
LoadBalancers List<string>
A list of elastic load balancer names to add to the Spot fleet.
ReplaceUnhealthyInstances bool
Indicates whether Spot fleet should replace unhealthy instances. Default false.
SpotMaintenanceStrategies SpotFleetRequestSpotMaintenanceStrategiesArgs
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
SpotPrice string
The maximum spot bid for this override request.
Tags Dictionary<string, string>
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll Dictionary<string, string>
A map of tags assigned to the resource, including those inherited from the provider .
TargetGroupArns List<string>
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
TerminateInstancesWithExpiration bool
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
IamFleetRole string
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
TargetCapacity int
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
AllocationStrategy string
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
ExcessCapacityTerminationPolicy string
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
FleetType string
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
InstancePoolsToUseCount int
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
LaunchSpecifications []SpotFleetRequestLaunchSpecification
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
LaunchTemplateConfigs []SpotFleetRequestLaunchTemplateConfig
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
LoadBalancers []string
A list of elastic load balancer names to add to the Spot fleet.
ReplaceUnhealthyInstances bool
Indicates whether Spot fleet should replace unhealthy instances. Default false.
SpotMaintenanceStrategies SpotFleetRequestSpotMaintenanceStrategies
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
SpotPrice string
The maximum spot bid for this override request.
Tags map[string]string
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll map[string]string
A map of tags assigned to the resource, including those inherited from the provider .
TargetGroupArns []string
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
TerminateInstancesWithExpiration bool
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
iamFleetRole string
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
targetCapacity number
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
allocationStrategy string
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
excessCapacityTerminationPolicy string
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
fleetType string
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
instanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
instancePoolsToUseCount number
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
launchSpecifications SpotFleetRequestLaunchSpecificationArgs[]
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
launchTemplateConfigs SpotFleetRequestLaunchTemplateConfigArgs[]
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
loadBalancers string[]
A list of elastic load balancer names to add to the Spot fleet.
replaceUnhealthyInstances boolean
Indicates whether Spot fleet should replace unhealthy instances. Default false.
spotMaintenanceStrategies SpotFleetRequestSpotMaintenanceStrategiesArgs
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
spotPrice string
The maximum spot bid for this override request.
tags {[key: string]: string}
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll {[key: string]: string}
A map of tags assigned to the resource, including those inherited from the provider .
targetGroupArns string[]
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
terminateInstancesWithExpiration boolean
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
validFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
validUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
waitForFulfillment boolean
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
iam_fleet_role str
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
target_capacity int
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
allocation_strategy str
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
excess_capacity_termination_policy str
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
fleet_type str
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
instance_interruption_behaviour str
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
instance_pools_to_use_count int
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
launch_specifications Sequence[SpotFleetRequestLaunchSpecificationArgs]
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
launch_template_configs Sequence[SpotFleetRequestLaunchTemplateConfigArgs]
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
load_balancers Sequence[str]
A list of elastic load balancer names to add to the Spot fleet.
replace_unhealthy_instances bool
Indicates whether Spot fleet should replace unhealthy instances. Default false.
spot_maintenance_strategies SpotFleetRequestSpotMaintenanceStrategiesArgs
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
spot_price str
The maximum spot bid for this override request.
tags Mapping[str, str]
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tags_all Mapping[str, str]
A map of tags assigned to the resource, including those inherited from the provider .
target_group_arns Sequence[str]
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
terminate_instances_with_expiration bool
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
valid_from str
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
valid_until str
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
wait_for_fulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.

Outputs

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

ClientToken string
Id string
The provider-assigned unique ID for this managed resource.
SpotRequestState string
The state of the Spot fleet request.
ClientToken string
Id string
The provider-assigned unique ID for this managed resource.
SpotRequestState string
The state of the Spot fleet request.
clientToken string
id string
The provider-assigned unique ID for this managed resource.
spotRequestState string
The state of the Spot fleet request.
client_token str
id str
The provider-assigned unique ID for this managed resource.
spot_request_state str
The state of the Spot fleet request.

Look up an Existing SpotFleetRequest Resource

Get an existing SpotFleetRequest 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?: SpotFleetRequestState, opts?: CustomResourceOptions): SpotFleetRequest
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        allocation_strategy: Optional[str] = None,
        client_token: Optional[str] = None,
        excess_capacity_termination_policy: Optional[str] = None,
        fleet_type: Optional[str] = None,
        iam_fleet_role: Optional[str] = None,
        instance_interruption_behaviour: Optional[str] = None,
        instance_pools_to_use_count: Optional[int] = None,
        launch_specifications: Optional[Sequence[SpotFleetRequestLaunchSpecificationArgs]] = None,
        launch_template_configs: Optional[Sequence[SpotFleetRequestLaunchTemplateConfigArgs]] = None,
        load_balancers: Optional[Sequence[str]] = None,
        replace_unhealthy_instances: Optional[bool] = None,
        spot_maintenance_strategies: Optional[SpotFleetRequestSpotMaintenanceStrategiesArgs] = None,
        spot_price: Optional[str] = None,
        spot_request_state: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        target_capacity: Optional[int] = None,
        target_group_arns: Optional[Sequence[str]] = None,
        terminate_instances_with_expiration: Optional[bool] = None,
        valid_from: Optional[str] = None,
        valid_until: Optional[str] = None,
        wait_for_fulfillment: Optional[bool] = None) -> SpotFleetRequest
func GetSpotFleetRequest(ctx *Context, name string, id IDInput, state *SpotFleetRequestState, opts ...ResourceOption) (*SpotFleetRequest, error)
public static SpotFleetRequest Get(string name, Input<string> id, SpotFleetRequestState? state, CustomResourceOptions? opts = null)
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.

The following state arguments are supported:

AllocationStrategy string
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
ClientToken string
ExcessCapacityTerminationPolicy string
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
FleetType string
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
IamFleetRole string
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
InstancePoolsToUseCount int
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
LaunchSpecifications List<SpotFleetRequestLaunchSpecificationArgs>
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
LaunchTemplateConfigs List<SpotFleetRequestLaunchTemplateConfigArgs>
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
LoadBalancers List<string>
A list of elastic load balancer names to add to the Spot fleet.
ReplaceUnhealthyInstances bool
Indicates whether Spot fleet should replace unhealthy instances. Default false.
SpotMaintenanceStrategies SpotFleetRequestSpotMaintenanceStrategiesArgs
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
SpotPrice string
The maximum spot bid for this override request.
SpotRequestState string
The state of the Spot fleet request.
Tags Dictionary<string, string>
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll Dictionary<string, string>
A map of tags assigned to the resource, including those inherited from the provider .
TargetCapacity int
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
TargetGroupArns List<string>
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
TerminateInstancesWithExpiration bool
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
AllocationStrategy string
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
ClientToken string
ExcessCapacityTerminationPolicy string
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
FleetType string
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
IamFleetRole string
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
InstancePoolsToUseCount int
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
LaunchSpecifications []SpotFleetRequestLaunchSpecification
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
LaunchTemplateConfigs []SpotFleetRequestLaunchTemplateConfig
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
LoadBalancers []string
A list of elastic load balancer names to add to the Spot fleet.
ReplaceUnhealthyInstances bool
Indicates whether Spot fleet should replace unhealthy instances. Default false.
SpotMaintenanceStrategies SpotFleetRequestSpotMaintenanceStrategies
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
SpotPrice string
The maximum spot bid for this override request.
SpotRequestState string
The state of the Spot fleet request.
Tags map[string]string
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll map[string]string
A map of tags assigned to the resource, including those inherited from the provider .
TargetCapacity int
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
TargetGroupArns []string
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
TerminateInstancesWithExpiration bool
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
allocationStrategy string
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
clientToken string
excessCapacityTerminationPolicy string
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
fleetType string
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
iamFleetRole string
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
instanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
instancePoolsToUseCount number
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
launchSpecifications SpotFleetRequestLaunchSpecificationArgs[]
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
launchTemplateConfigs SpotFleetRequestLaunchTemplateConfigArgs[]
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
loadBalancers string[]
A list of elastic load balancer names to add to the Spot fleet.
replaceUnhealthyInstances boolean
Indicates whether Spot fleet should replace unhealthy instances. Default false.
spotMaintenanceStrategies SpotFleetRequestSpotMaintenanceStrategiesArgs
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
spotPrice string
The maximum spot bid for this override request.
spotRequestState string
The state of the Spot fleet request.
tags {[key: string]: string}
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll {[key: string]: string}
A map of tags assigned to the resource, including those inherited from the provider .
targetCapacity number
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
targetGroupArns string[]
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
terminateInstancesWithExpiration boolean
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
validFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
validUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
waitForFulfillment boolean
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
allocation_strategy str
Indicates how to allocate the target capacity across the Spot pools specified by the Spot fleet request. The default is lowestPrice.
client_token str
excess_capacity_termination_policy str
Indicates whether running Spot instances should be terminated if the target capacity of the Spot fleet request is decreased below the current size of the Spot fleet.
fleet_type str
The type of fleet request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. Default is maintain.
iam_fleet_role str
Grants the Spot fleet permission to terminate Spot instances on your behalf when you cancel its Spot fleet request using CancelSpotFleetRequests or when the Spot fleet request expires, if you set terminateInstancesWithExpiration.
instance_interruption_behaviour str
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate.
instance_pools_to_use_count int
The number of Spot pools across which to allocate your target Spot capacity. Valid only when allocation_strategy is set to lowestPrice. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.
launch_specifications Sequence[SpotFleetRequestLaunchSpecificationArgs]
Used to define the launch configuration of the spot-fleet request. Can be specified multiple times to define different bids across different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.
launch_template_configs Sequence[SpotFleetRequestLaunchTemplateConfigArgs]
Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.
load_balancers Sequence[str]
A list of elastic load balancer names to add to the Spot fleet.
replace_unhealthy_instances bool
Indicates whether Spot fleet should replace unhealthy instances. Default false.
spot_maintenance_strategies SpotFleetRequestSpotMaintenanceStrategiesArgs
Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.
spot_price str
The maximum spot bid for this override request.
spot_request_state str
The state of the Spot fleet request.
tags Mapping[str, str]
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tags_all Mapping[str, str]
A map of tags assigned to the resource, including those inherited from the provider .
target_capacity int
The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O.
target_group_arns Sequence[str]
A list of aws.alb.TargetGroup ARNs, for use with Application Load Balancing.
terminate_instances_with_expiration bool
Indicates whether running Spot instances should be terminated when the Spot fleet request expires.
valid_from str
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
valid_until str
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.
wait_for_fulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.

Supporting Types

SpotFleetRequestLaunchSpecification

Ami string
InstanceType string
The type of instance to request.
AssociatePublicIpAddress bool
AvailabilityZone string
The availability zone in which to place the request.
EbsBlockDevices List<SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs>
EbsOptimized bool
EphemeralBlockDevices List<SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs>
IamInstanceProfile string
IamInstanceProfileArn string
KeyName string
Monitoring bool
PlacementGroup string
PlacementTenancy string
RootBlockDevices List<SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs>
SpotPrice string
The maximum spot bid for this override request.
SubnetId string
The subnet in which to launch the requested instance.
Tags Dictionary<string, string>
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
UserData string
VpcSecurityGroupIds List<string>
WeightedCapacity string
The capacity added to the fleet by a fulfilled request.
Ami string
InstanceType string
The type of instance to request.
AssociatePublicIpAddress bool
AvailabilityZone string
The availability zone in which to place the request.
EbsBlockDevices []SpotFleetRequestLaunchSpecificationEbsBlockDevice
EbsOptimized bool
EphemeralBlockDevices []SpotFleetRequestLaunchSpecificationEphemeralBlockDevice
IamInstanceProfile string
IamInstanceProfileArn string
KeyName string
Monitoring bool
PlacementGroup string
PlacementTenancy string
RootBlockDevices []SpotFleetRequestLaunchSpecificationRootBlockDevice
SpotPrice string
The maximum spot bid for this override request.
SubnetId string
The subnet in which to launch the requested instance.
Tags map[string]string
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
UserData string
VpcSecurityGroupIds []string
WeightedCapacity string
The capacity added to the fleet by a fulfilled request.
ami string
instanceType string
The type of instance to request.
associatePublicIpAddress boolean
availabilityZone string
The availability zone in which to place the request.
ebsBlockDevices SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs[]
ebsOptimized boolean
ephemeralBlockDevices SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs[]
iamInstanceProfile string
iamInstanceProfileArn string
keyName string
monitoring boolean
placementGroup string
placementTenancy string
rootBlockDevices SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs[]
spotPrice string
The maximum spot bid for this override request.
subnetId string
The subnet in which to launch the requested instance.
tags {[key: string]: string}
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
userData string
vpcSecurityGroupIds string[]
weightedCapacity string
The capacity added to the fleet by a fulfilled request.
ami str
instance_type str
The type of instance to request.
associate_public_ip_address bool
availability_zone str
The availability zone in which to place the request.
ebs_block_devices Sequence[SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs]
ebs_optimized bool
ephemeral_block_devices Sequence[SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs]
iam_instance_profile str
iam_instance_profile_arn str
key_name str
monitoring bool
placement_group str
placement_tenancy str
root_block_devices Sequence[SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs]
spot_price str
The maximum spot bid for this override request.
subnet_id str
The subnet in which to launch the requested instance.
tags Mapping[str, str]
A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
user_data str
vpc_security_group_ids Sequence[str]
weighted_capacity str
The capacity added to the fleet by a fulfilled request.

SpotFleetRequestLaunchSpecificationEbsBlockDevice

deviceName string
deleteOnTermination boolean
encrypted boolean
iops number
kmsKeyId string
snapshotId string
throughput number
volumeSize number
volumeType string

SpotFleetRequestLaunchSpecificationEphemeralBlockDevice

DeviceName string
VirtualName string
DeviceName string
VirtualName string
deviceName string
virtualName string

SpotFleetRequestLaunchSpecificationRootBlockDevice

deleteOnTermination boolean
encrypted boolean
iops number
kmsKeyId string
throughput number
volumeSize number
volumeType string

SpotFleetRequestLaunchTemplateConfig

LaunchTemplateSpecification SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs
Launch template specification. See Launch Template Specification below for more details.
Overrides List<SpotFleetRequestLaunchTemplateConfigOverrideArgs>
One or more override configurations. See Overrides below for more details.
LaunchTemplateSpecification SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecification
Launch template specification. See Launch Template Specification below for more details.
Overrides []SpotFleetRequestLaunchTemplateConfigOverride
One or more override configurations. See Overrides below for more details.
launchTemplateSpecification SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs
Launch template specification. See Launch Template Specification below for more details.
overrides SpotFleetRequestLaunchTemplateConfigOverrideArgs[]
One or more override configurations. See Overrides below for more details.
launch_template_specification SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecificationArgs
Launch template specification. See Launch Template Specification below for more details.
overrides Sequence[SpotFleetRequestLaunchTemplateConfigOverrideArgs]
One or more override configurations. See Overrides below for more details.

SpotFleetRequestLaunchTemplateConfigLaunchTemplateSpecification

Id string
The ID of the launch template. Conflicts with name.
Name string
The name of the launch template. Conflicts with id.
Version string
Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource’s attribute, e.g. "${aws_launch_template.foo.latest_version}". It will use the default version if omitted.
Id string
The ID of the launch template. Conflicts with name.
Name string
The name of the launch template. Conflicts with id.
Version string
Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource’s attribute, e.g. "${aws_launch_template.foo.latest_version}". It will use the default version if omitted.
id string
The ID of the launch template. Conflicts with name.
name string
The name of the launch template. Conflicts with id.
version string
Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource’s attribute, e.g. "${aws_launch_template.foo.latest_version}". It will use the default version if omitted.
id str
The ID of the launch template. Conflicts with name.
name str
The name of the launch template. Conflicts with id.
version str
Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource’s attribute, e.g. "${aws_launch_template.foo.latest_version}". It will use the default version if omitted.

SpotFleetRequestLaunchTemplateConfigOverride

AvailabilityZone string
The availability zone in which to place the request.
InstanceType string
The type of instance to request.
Priority double
The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.
SpotPrice string
The maximum spot bid for this override request.
SubnetId string
The subnet in which to launch the requested instance.
WeightedCapacity double
The capacity added to the fleet by a fulfilled request.
AvailabilityZone string
The availability zone in which to place the request.
InstanceType string
The type of instance to request.
Priority float64
The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.
SpotPrice string
The maximum spot bid for this override request.
SubnetId string
The subnet in which to launch the requested instance.
WeightedCapacity float64
The capacity added to the fleet by a fulfilled request.
availabilityZone string
The availability zone in which to place the request.
instanceType string
The type of instance to request.
priority number
The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.
spotPrice string
The maximum spot bid for this override request.
subnetId string
The subnet in which to launch the requested instance.
weightedCapacity number
The capacity added to the fleet by a fulfilled request.
availability_zone str
The availability zone in which to place the request.
instance_type str
The type of instance to request.
priority float
The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.
spot_price str
The maximum spot bid for this override request.
subnet_id str
The subnet in which to launch the requested instance.
weighted_capacity float
The capacity added to the fleet by a fulfilled request.

SpotFleetRequestSpotMaintenanceStrategies

CapacityRebalance SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs
Nested argument containing the capacity rebalance for your fleet request. Defined below.
CapacityRebalance SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalance
Nested argument containing the capacity rebalance for your fleet request. Defined below.
capacityRebalance SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs
Nested argument containing the capacity rebalance for your fleet request. Defined below.
capacity_rebalance SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalanceArgs
Nested argument containing the capacity rebalance for your fleet request. Defined below.

SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalance

ReplacementStrategy string
The replacement strategy to use. Only available for spot fleets with fleet_type set to maintain. Valid values: launch.
ReplacementStrategy string
The replacement strategy to use. Only available for spot fleets with fleet_type set to maintain. Valid values: launch.
replacementStrategy string
The replacement strategy to use. Only available for spot fleets with fleet_type set to maintain. Valid values: launch.
replacement_strategy str
The replacement strategy to use. Only available for spot fleets with fleet_type set to maintain. Valid values: launch.

Import

Spot Fleet Requests can be imported using id, e.g.

 $ pulumi import aws:ec2/spotFleetRequest:SpotFleetRequest fleet sfr-005e9ec8-5546-4c31-b317-31a62325411e

Package Details

Repository
https://github.com/pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.