私はDynamoDBのためのイェンスのウォルターズ・ソリューションおよびUIを踏襲壊れて見えた - 概要から、それは、スケーリングが有効になったと述べたが、とき私は容量タブを見ましたが、それはそれが表示されていませんでした。これは、その解決策が後半スケーリングポリシーを欠いているためです。
ソリューションは、2段階のプロセスである:
- スケーラブルなターゲット
- を登録対象の所定の位置に
をスケーリングポリシーを入れてここでは、コードです:
var tableName = "your-table-name"
var autoscalingParams = {
MaxCapacity: 15,
MinCapacity: 1,
ResourceId: "table/" + tableName,
RoleARN: "arn:aws:iam::" + accountId + ":role/current-lambdaRole",
ScalableDimension: "dynamodb:table:WriteCapacityUnits",
ServiceNamespace: "dynamodb"
};
autoscaling.registerScalableTarget(autoscalingParams, function(err, data) {
if(err) {
console.log('error');
console.log(JSON.stringify(err));
} else {
console.log(data);
}
var scalingPolicy = {
ServiceNamespace: "dynamodb",
ResourceId: "table/" + tableName,
ScalableDimension: "dynamodb:table:WriteCapacityUnits",
PolicyName: tableName + "-scaling-policy",
PolicyType: "TargetTrackingScaling",
TargetTrackingScalingPolicyConfiguration: {
PredefinedMetricSpecification: {
PredefinedMetricType: "DynamoDBWriteCapacityUtilization"
},
ScaleOutCooldown: 60,
ScaleInCooldown: 60,
TargetValue: 70.0
}
};
autoscaling.putScalingPolicy(scalingPolicy, function(err, data) {
if(err) {
console.log('error');
console.log(JSON.stringify(err));
} else {
console.log('success!');
console.log(data);
}
cb(err);
});
});
あなたの役割は、次の行に沿って何か許可が必要です:
{
"IamPolicyLambdaManageScalingDynamoDbTables": {
"Type": "AWS::IAM::Policy",
"Properties": {
"PolicyName": "someName",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"application-autoscaling:RegisterScalableTarget",
"application-autoscaling:PutScalingPolicy",
"iam:CreateServiceLinkedRole",
"iam:PassRole"
],
"Resource": "*"
}
]
},
"Roles": [
{
"Ref": "IamRoleLambdaExecution"
}
]
}
}
}
注:あなたはおそらく役割リソースのワイルドカードを使用するべきではありませんが、私はそれらがどうあるべきか釘付けされていない正確
データベース・テーブルで処理するための自動スケーリングを設定することができますAWS管理コンソールからそれ自身を削除します – notionquest
ええ、私はそれを認識しますが、それは私が探しているものではありません。私たちはいくつかのAPIをクライアントに公開しているので、コードレベルから実行する必要があり、コンソールにアクセスすることはできません。 – Avijeet