首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用代码切换“将相同设置应用于全局辅助索引”?

如何使用代码切换“将相同设置应用于全局辅助索引”?
EN

Stack Overflow用户
提问于 2018-04-24 16:10:34
回答 1查看 944关注 0票数 1

我正在使用Boto3在DynamoDB中创建表。我已经使用以下代码启用了自动缩放:

代码语言:javascript
运行
复制
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
                                 })

如何启用“将相同设置应用于全局辅助索引”选项?

EN

回答 1

Stack Overflow用户

发布于 2018-05-23 14:11:52

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

因此,要将缩放策略设置为“索引”级别,您应该调用put_scaling_policy,,但对ResourceIdScalableDimension使用不同的值。

例如:

代码语言:javascript
运行
复制
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:index:WriteCapacityUnits而不是dynamodb:table:WriteCapacityUnits
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50006368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档