Skip to content

Instantly share code, notes, and snippets.

@phobologic
Created December 25, 2017 18:31
Show Gist options
  • Save phobologic/79289ba2708425a73cfe3ec23d428705 to your computer and use it in GitHub Desktop.
Save phobologic/79289ba2708425a73cfe3ec23d428705 to your computer and use it in GitHub Desktop.
{
"Type" : "AWS::ApplicationAutoScaling::ScalingPolicy",
"Properties" : {
"PolicyName" : "MyScalingPolicy",
"PolicyType" : "TargetTrackingScaling",
"ResourceId" : "arn:aws:dynamodb:us-east-1:123456789012:table/books_table",
"ScalableDimension" : "dynamodb:table:WriteCapacityUnits",
"ServiceNamespace" : "dynamodb",
"TargetTrackingScalingPolicyConfiguration" : {
"PredefinedMetricSpecification": {
"PredefinedMetricType": "DynamoDBWriteCapacityUtilization"
},
"ScaleOutCooldown": 60,
"ScaleInCooldown": 60,
"TargetValue": 50.0
}
}
}
{
"Resources": {
"MyScalingPolicy": {
"Properties": {
"PolicyName": "MyScalingPolicy",
"PolicyType": "TargetTrackingScaling",
"ResourceId": "arn:aws:dynamodb:us-east-1:123456789012:table/books_table",
"ScalableDimension": "dynamodb:table:WriteCapacityUnits",
"ServiceNamespace": "dynamodb",
"TargetTrackingScalingPolicyConfiguration": {
"PredefinedMetricSpecification": {
"PredefinedMetricType": "DynamoDBWriteCapacityUtilization"
},
"ScaleInCooldown": 60,
"ScaleOutCooldown": 60,
"TargetValue": 50.0
}
},
"Type": "AWS::ApplicationAutoScaling::ScalingPolicy"
}
}
}
from troposphere import Template
from troposphere.applicationautoscaling import (
ScalingPolicy,
TargetTrackingScalingPolicyConfiguration,
PredefinedMetricSpecification,
)
table_id = "arn:aws:dynamodb:us-east-1:123456789012:table/books_table"
t = Template()
scaling_policy_config = TargetTrackingScalingPolicyConfiguration(
PredefinedMetricSpecification=PredefinedMetricSpecification(
PredefinedMetricType="DynamoDBWriteCapacityUtilization",
),
ScaleOutCooldown=60,
ScaleInCooldown=60,
TargetValue=50.0,
)
t.add_resource(
ScalingPolicy(
"MyScalingPolicy",
PolicyName="MyScalingPolicy",
PolicyType="TargetTrackingScaling",
ResourceId=table_id,
ScalableDimension="dynamodb:table:WriteCapacityUnits",
ServiceNamespace="dynamodb",
TargetTrackingScalingPolicyConfiguration=scaling_policy_config,
)
)
print t.to_json()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment