Target
Provides an Application AutoScaling ScalableTarget resource. To manage policies which get attached to the target, see the aws.appautoscaling.Policy resource.
NOTE: The Application Auto Scaling service automatically attempts to manage IAM Service-Linked Roles when registering certain service namespaces for the first time. To manually manage this role, see the
aws.iam.ServiceLinkedRoleresource.
Example Usage
DynamoDB Table Autoscaling
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var dynamodbTableReadTarget = new Aws.AppAutoScaling.Target("dynamodbTableReadTarget", new Aws.AppAutoScaling.TargetArgs
{
MaxCapacity = 100,
MinCapacity = 5,
ResourceId = $"table/{aws_dynamodb_table.Example.Name}",
ScalableDimension = "dynamodb:table:ReadCapacityUnits",
ServiceNamespace = "dynamodb",
});
}
}
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/appautoscaling"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := appautoscaling.NewTarget(ctx, "dynamodbTableReadTarget", &appautoscaling.TargetArgs{
MaxCapacity: pulumi.Int(100),
MinCapacity: pulumi.Int(5),
ResourceId: pulumi.String(fmt.Sprintf("%v%v", "table/", aws_dynamodb_table.Example.Name)),
ScalableDimension: pulumi.String("dynamodb:table:ReadCapacityUnits"),
ServiceNamespace: pulumi.String("dynamodb"),
})
if err != nil {
return err
}
return nil
})
}import pulumi
import pulumi_aws as aws
dynamodb_table_read_target = aws.appautoscaling.Target("dynamodbTableReadTarget",
max_capacity=100,
min_capacity=5,
resource_id=f"table/{aws_dynamodb_table['example']['name']}",
scalable_dimension="dynamodb:table:ReadCapacityUnits",
service_namespace="dynamodb")import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const dynamodbTableReadTarget = new aws.appautoscaling.Target("dynamodb_table_read_target", {
maxCapacity: 100,
minCapacity: 5,
resourceId: pulumi.interpolate`table/${aws_dynamodb_table_example.name}`,
scalableDimension: "dynamodb:table:ReadCapacityUnits",
serviceNamespace: "dynamodb",
});DynamoDB Index Autoscaling
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var dynamodbIndexReadTarget = new Aws.AppAutoScaling.Target("dynamodbIndexReadTarget", new Aws.AppAutoScaling.TargetArgs
{
MaxCapacity = 100,
MinCapacity = 5,
ResourceId = $"table/{aws_dynamodb_table.Example.Name}/index/{@var.Index_name}",
ScalableDimension = "dynamodb:index:ReadCapacityUnits",
ServiceNamespace = "dynamodb",
});
}
}
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/appautoscaling"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := appautoscaling.NewTarget(ctx, "dynamodbIndexReadTarget", &appautoscaling.TargetArgs{
MaxCapacity: pulumi.Int(100),
MinCapacity: pulumi.Int(5),
ResourceId: pulumi.String(fmt.Sprintf("%v%v%v%v", "table/", aws_dynamodb_table.Example.Name, "/index/", _var.Index_name)),
ScalableDimension: pulumi.String("dynamodb:index:ReadCapacityUnits"),
ServiceNamespace: pulumi.String("dynamodb"),
})
if err != nil {
return err
}
return nil
})
}import pulumi
import pulumi_aws as aws
dynamodb_index_read_target = aws.appautoscaling.Target("dynamodbIndexReadTarget",
max_capacity=100,
min_capacity=5,
resource_id=f"table/{aws_dynamodb_table['example']['name']}/index/{var['index_name']}",
scalable_dimension="dynamodb:index:ReadCapacityUnits",
service_namespace="dynamodb")import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const dynamodbIndexReadTarget = new aws.appautoscaling.Target("dynamodb_index_read_target", {
maxCapacity: 100,
minCapacity: 5,
resourceId: pulumi.interpolate`table/${aws_dynamodb_table_example.name}/index/${var_index_name}`,
scalableDimension: "dynamodb:index:ReadCapacityUnits",
serviceNamespace: "dynamodb",
});ECS Service Autoscaling
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var ecsTarget = new Aws.AppAutoScaling.Target("ecsTarget", new Aws.AppAutoScaling.TargetArgs
{
MaxCapacity = 4,
MinCapacity = 1,
ResourceId = $"service/{aws_ecs_cluster.Example.Name}/{aws_ecs_service.Example.Name}",
ScalableDimension = "ecs:service:DesiredCount",
ServiceNamespace = "ecs",
});
}
}
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/appautoscaling"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := appautoscaling.NewTarget(ctx, "ecsTarget", &appautoscaling.TargetArgs{
MaxCapacity: pulumi.Int(4),
MinCapacity: pulumi.Int(1),
ResourceId: pulumi.String(fmt.Sprintf("%v%v%v%v", "service/", aws_ecs_cluster.Example.Name, "/", aws_ecs_service.Example.Name)),
ScalableDimension: pulumi.String("ecs:service:DesiredCount"),
ServiceNamespace: pulumi.String("ecs"),
})
if err != nil {
return err
}
return nil
})
}import pulumi
import pulumi_aws as aws
ecs_target = aws.appautoscaling.Target("ecsTarget",
max_capacity=4,
min_capacity=1,
resource_id=f"service/{aws_ecs_cluster['example']['name']}/{aws_ecs_service['example']['name']}",
scalable_dimension="ecs:service:DesiredCount",
service_namespace="ecs")import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const ecsTarget = new aws.appautoscaling.Target("ecs_target", {
maxCapacity: 4,
minCapacity: 1,
resourceId: pulumi.interpolate`service/${aws_ecs_cluster_example.name}/${aws_ecs_service_example.name}`,
scalableDimension: "ecs:service:DesiredCount",
serviceNamespace: "ecs",
});Aurora Read Replica Autoscaling
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var replicas = new Aws.AppAutoScaling.Target("replicas", new Aws.AppAutoScaling.TargetArgs
{
MaxCapacity = 15,
MinCapacity = 1,
ResourceId = $"cluster:{aws_rds_cluster.Example.Id}",
ScalableDimension = "rds:cluster:ReadReplicaCount",
ServiceNamespace = "rds",
});
}
}
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/appautoscaling"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := appautoscaling.NewTarget(ctx, "replicas", &appautoscaling.TargetArgs{
MaxCapacity: pulumi.Int(15),
MinCapacity: pulumi.Int(1),
ResourceId: pulumi.String(fmt.Sprintf("%v%v", "cluster:", aws_rds_cluster.Example.Id)),
ScalableDimension: pulumi.String("rds:cluster:ReadReplicaCount"),
ServiceNamespace: pulumi.String("rds"),
})
if err != nil {
return err
}
return nil
})
}import pulumi
import pulumi_aws as aws
replicas = aws.appautoscaling.Target("replicas",
max_capacity=15,
min_capacity=1,
resource_id=f"cluster:{aws_rds_cluster['example']['id']}",
scalable_dimension="rds:cluster:ReadReplicaCount",
service_namespace="rds")import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const replicas = new aws.appautoscaling.Target("replicas", {
maxCapacity: 15,
minCapacity: 1,
resourceId: pulumi.interpolate`cluster:${aws_rds_cluster_example.id}`,
scalableDimension: "rds:cluster:ReadReplicaCount",
serviceNamespace: "rds",
});Create a Target Resource
new Target(name: string, args: TargetArgs, opts?: CustomResourceOptions);def Target(resource_name, opts=None, max_capacity=None, min_capacity=None, resource_id=None, role_arn=None, scalable_dimension=None, service_namespace=None, __props__=None);func NewTarget(ctx *Context, name string, args TargetArgs, opts ...ResourceOption) (*Target, error)public Target(string name, TargetArgs args, CustomResourceOptions? opts = null)- name string
- The unique name of the resource.
- args TargetArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- opts ResourceOptions
- A bag of options that control this resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args TargetArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args TargetArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
Target Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.
Inputs
The Target resource accepts the following input properties:
- Max
Capacity int The max capacity of the scalable target.
- Min
Capacity int The min capacity of the scalable target.
- Resource
Id string The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- Scalable
Dimension string The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- Service
Namespace string The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference- Role
Arn string The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- Max
Capacity int The max capacity of the scalable target.
- Min
Capacity int The min capacity of the scalable target.
- Resource
Id string The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- Scalable
Dimension string The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- Service
Namespace string The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference- Role
Arn string The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- max
Capacity number The max capacity of the scalable target.
- min
Capacity number The min capacity of the scalable target.
- resource
Id string The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- scalable
Dimension string The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- service
Namespace string The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference- role
Arn string The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- max_
capacity float The max capacity of the scalable target.
- min_
capacity float The min capacity of the scalable target.
- resource_
id str The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- scalable_
dimension str The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- service_
namespace str The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference- role_
arn str The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
Outputs
All input properties are implicitly available as output properties. Additionally, the Target resource produces the following output properties:
Look up an Existing Target Resource
Get an existing Target 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?: TargetState, opts?: CustomResourceOptions): Targetstatic get(resource_name, id, opts=None, max_capacity=None, min_capacity=None, resource_id=None, role_arn=None, scalable_dimension=None, service_namespace=None, __props__=None);func GetTarget(ctx *Context, name string, id IDInput, state *TargetState, opts ...ResourceOption) (*Target, error)public static Target Get(string name, Input<string> id, TargetState? 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:
- Max
Capacity int The max capacity of the scalable target.
- Min
Capacity int The min capacity of the scalable target.
- Resource
Id string The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- Role
Arn string The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- Scalable
Dimension string The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- Service
Namespace string The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference
- Max
Capacity int The max capacity of the scalable target.
- Min
Capacity int The min capacity of the scalable target.
- Resource
Id string The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- Role
Arn string The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- Scalable
Dimension string The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- Service
Namespace string The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference
- max
Capacity number The max capacity of the scalable target.
- min
Capacity number The min capacity of the scalable target.
- resource
Id string The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- role
Arn string The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- scalable
Dimension string The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- service
Namespace string The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference
- max_
capacity float The max capacity of the scalable target.
- min_
capacity float The min capacity of the scalable target.
- resource_
id str The resource type and unique identifier string for the resource associated with the scaling policy. Documentation can be found in the
ResourceIdparameter at: AWS Application Auto Scaling API Reference- role_
arn str The ARN of the IAM role that allows Application AutoScaling to modify your scalable target on your behalf. This defaults to an IAM Service-Linked Role for most services and custom IAM Roles are ignored by the API for those namespaces. See the AWS Application Auto Scaling documentation for more information about how this service interacts with IAM.
- scalable_
dimension str The scalable dimension of the scalable target. Documentation can be found in the
ScalableDimensionparameter at: AWS Application Auto Scaling API Reference- service_
namespace str The AWS service namespace of the scalable target. Documentation can be found in the
ServiceNamespaceparameter at: AWS Application Auto Scaling API Reference
Package Details
- Repository
- https://github.com/pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
awsTerraform Provider.