使用BOTO3客户端指定DynamoDB的自动化



我们一直在使用boto3创建并写入DynamoDB表。它运行良好,但是我们还希望在创建表时指定自动级别的属性,因为这是一个选项。我知道这可以手动完成,但是当我们通过Python Backend创建各种桌子时,我们希望自动化它。有人成功吗?如果是这样,BOTO3 DynamoDB客户端是否可以使用更高级别的BOTO3客户端选项?

这是自动升级的文档,

http://boto3.readthedocs.io/en/latest/reference/services/application-autoscaling.html

您需要将命名空间'DynamoDB'用于AutoScale DynamoDB。

您也可以通过CLI进行操作,也将为您提供有关参数的想法,

aws application-autoscaling register-scalable-target 
    --service-namespace dynamodb 
    --resource-id "table/TestTable" 
    --scalable-dimension "dynamodb:table:WriteCapacityUnits" 
    --min-capacity 5 
    --max-capacity 10 
    --role-arn roleARN

参考:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/autoscaling.cli.html

希望它有帮助。

您需要这样的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
                                       })

最新更新