我正在使用Boto3在DynamoDB中创建表。我已经使用以下代码启用了自动缩放:
def conf_auto_scaling(self, table_name):
print("INFO :: Creating auto scaling for Table [%s]" % table_name)
# Read capacity
self.as_c.register_scalable_target(ServiceNamespace='dynamodb',
ResourceId='table/%s' % table_name,
ScalableDimension='dynamodb:table:ReadCapacityUnits',
MinCapacity=5,
MaxCapacity=4000)
# Write capacity
self.as_c.register_scalable_target(ServiceNamespace='dynamodb',
ResourceId='table/%s' % table_name,
ScalableDimension='dynamodb:table:WriteCapacityUnits',
MinCapacity=5,
MaxCapacity=1000)
percent_of_use_to_aim_for = 70.0
scale_out_cooldown_in_seconds = 60
scale_in_cooldown_in_seconds = 60
self.as_c.put_scaling_policy(ServiceNamespace='dynamodb',
ResourceId='table/%s' % table_name,
PolicyType='TargetTrackingScaling',
PolicyName='ScaleDynamoDBReadCapacityUtilization',
ScalableDimension='dynamodb:table:ReadCapacityUnits',
TargetTrackingScalingPolicyConfiguration={
'TargetValue': percent_of_use_to_aim_for,
'PredefinedMetricSpecification': {
'PredefinedMetricType': 'DynamoDBReadCapacityUtilization'
},
'ScaleOutCooldown': scale_out_cooldown_in_seconds,
'ScaleInCooldown': scale_in_cooldown_in_seconds
})
self.as_c.put_scaling_policy(ServiceNamespace='dynamodb',
ResourceId='table/%s' % table_name,
PolicyType='TargetTrackingScaling',
PolicyName='ScaleDynamoDBWriteCapacityUtilization',
ScalableDimension='dynamodb:table:WriteCapacityUnits',
TargetTrackingScalingPolicyConfiguration={
'TargetValue': percent_of_use_to_aim_for,
'PredefinedMetricSpecification': {
'PredefinedMetricType': 'DynamoDBWriteCapacityUtilization'
},
'ScaleOutCooldown': scale_out_cooldown_in_seconds,
'ScaleInCooldown': scale_in_cooldown_in_seconds
})
如何启用“将相同设置应用于全局辅助索引”选项?
发布于 2018-05-23 06:11:52
除了在“表”级别设置缩放策略所需的代码之外,您还拥有“索引”级别的代码。
因此,要将缩放策略设置为“索引”级别,您应该调用put_scaling_policy,,但对ResourceId和ScalableDimension使用不同的值。
例如:
auto_scaling_client.put_scaling_policy(
ServiceNamespace='dynamodb',
ResourceId=f'table/{PUT-HERE-YOUR-TABLE NAME}/index/{YOUR-INDEX-NAME}',
PolicyType='TargetTrackingScaling',
PolicyName='ScaleDynamoDBWriteCapacityUtilization',
ScalableDimension='dynamodb:index:WriteCapacityUnits',
TargetTrackingScalingPolicyConfiguration={
'TargetValue': percent_of_use_to_aim_for,
'PredefinedMetricSpecification': {
'PredefinedMetricType': 'DynamoDBWriteCapacityUtilization'
},
'ScaleOutCooldown': scale_out_cooldown_in_seconds,
'ScaleInCooldown': scale_in_cooldown_in_seconds
}
请注意:
https://stackoverflow.com/questions/50006368
复制相似问题