你需要像这样register_scalable_target:
import boto3
auto_scaling_client = boto3.client('application-autoscaling')
# Read capacity
auto_scaling_client.register_scalable_target(ServiceNamespace='dynamodb',
ResourceId='table/foo_table',
ScalableDimension='dynamodb:table:ReadCapacityUnits',
MinCapacity=1,
MaxCapacity=10)
# Write capacity
auto_scaling_client.register_scalable_target(ServiceNamespace='dynamodb',
ResourceId='table/foo_table',
ScalableDimension='dynamodb:table:WriteCapacityUnits',
MinCapacity=1,
MaxCapacity=10)
如果你想调整目标百分比,你必须像这样使用put_scaling_policy(这里只显示写容量单位,因为我懒了):
target_percentage = 70.0
cooldown_in_seconds = 30
auto_scaling_client.put_scaling_policy(ServiceNamespace='dynamodb',
ResourceId='table/foo_table',
PolicyType='TargetTrackingScaling',
PolicyName='ScaleDynamoDBWriteCapacityUtilization',
ScalableDimension='dynamodb:table:WriteCapacityUnits',
TargetTrackingScalingPolicyConfiguration={
'TargetValue': target_percentage,
'PredefinedMetricSpecification': {
'PredefinedMetricType': 'DynamoDBWriteCapacityUtilization'
},
'ScaleOutCooldown': cooldown_in_seconds,
'ScaleInCooldown': cooldown_in_seconds
})