Amazon web services 我如何切换";对全局二级索引应用相同的设置”;使用代码?

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',

我正在使用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
                                 })
如何启用“将相同设置应用于全局二级索引”选项


除了在“表”级别设置缩放策略所需的代码外,在“索引”级别也有代码

因此,为了在“索引”级别设置缩放策略,您应该调用put\u scaling\u policy,但是ResourceIdScalableDimension的值不同:

例如:

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::写入容量单位