以编程方式将 DynamoDB GSI 设置为自动缩放

Programmatically setting DynamoDB GSI to be autoscaling

我正在使用 registerScalableTarget 将我的全局二级索引设置为自动缩放。下面是我的代码。我没有收到任何错误消息。

var registerScalableTargetForWCU= function(event, callback) {
   var params= {
       ServiceNamespace: "dynamodb", RoleARN: event.roleArn,
       ResourceId: "table/TableName/index/IndexName",
       ScalableDimension: "dynamodb:index:WriteCapacityUnits",
       MinCapacity: 1, MaxCapacity: 2
   };
   applicationautoscaling.registerScalableTarget(params, function(err, res) {
       err ? callback(err) : callback(null, res);
   });
}

但在管理控制台上,"Auto Scaling" 保持不变,如下面的屏幕截图所示。

如果我要 运行 describeScalableTargets,我会得到以下结果

{ ScalableTargets: [ { ServiceNamespace: 'dynamodb',
   ResourceId: 'table/TableName/index/IndexName',
   ScalableDimension: 'dynamodb:index:ReadCapacityUnits',
   MinCapacity: 1,
   MaxCapacity: 1,
   RoleARN: 'RoleARN',
   CreationTime: 2017-08-06T08:32:30.294Z },
 { ServiceNamespace: 'dynamodb',
   ResourceId: 'table/TableName/index/IndexName',
   ScalableDimension: 'dynamodb:index:WriteCapacityUnits',
   MinCapacity: 2,
   MaxCapacity: 10,
   RoleARN: 'RoleARN',
   CreationTime: 2017-08-06T08:32:30.460Z } ] }

是否已经自动缩放?

要使应用程序自动缩放工作,您需要一个可缩放的目标和 a scaling policy。您的情况似乎缺少缩放策略。它定义了在什么情况下应该发生缩放。由于缺少自动缩放功能,因此根本没有启用,因此不会显示在管理控制台中。

应用程序自动缩放的文档还包含有关其工作原理的信息:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html