Amazon web services 我如何切换";对全局二级索引应用相同的设置”;使用代码?
我正在使用Boto3在DynamoDB中创建我的表。我已使用以下代码启用自动缩放:Amazon web services 我如何切换";对全局二级索引应用相同的设置”;使用代码?,amazon-web-services,amazon-dynamodb,amazon-cloudformation,boto3,autoscaling,Amazon Web Services,Amazon Dynamodb,Amazon Cloudformation,Boto3,Autoscaling,我正在使用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',
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
})
如何启用“将相同设置应用于全局二级索引”选项
除了在“表”级别设置缩放策略所需的代码外,在“索引”级别也有代码 因此,为了在“索引”级别设置缩放策略,您应该调用put\u scaling\u 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
}
请注意:
- ResourceId接收完整索引名
- ScalableDimensions包含索引而不是表格,即: dynamodb:索引:写入容量单位而不是dynamodb:表:写入容量单位