modifyCurrentDBClusterCapacity method
Set the capacity of an Aurora Serverless DB cluster to a specific value.
Aurora Serverless scales seamlessly based on the workload on the DB
cluster. In some cases, the capacity might not scale fast enough to meet a
sudden change in workload, such as a large number of new transactions.
Call ModifyCurrentDBClusterCapacity
to set the capacity
explicitly.
After this call sets the DB cluster capacity, Aurora Serverless can automatically scale the DB cluster based on the cooldown period for scaling up and the cooldown period for scaling down.
For more information about Aurora Serverless, see Using Amazon Aurora Serverless in the Amazon Aurora User Guide.
May throw DBClusterNotFoundFault. May throw InvalidDBClusterStateFault. May throw InvalidDBClusterCapacityFault.
Parameter dBClusterIdentifier
:
The DB cluster identifier for the cluster being modified. This parameter
isn't case-sensitive.
Constraints:
- Must match the identifier of an existing DB cluster.
Parameter capacity
:
The DB cluster capacity.
When you change the capacity of a paused Aurora Serverless DB cluster, it automatically resumes.
Constraints:
-
For Aurora MySQL, valid capacity values are
1
,2
,4
,8
,16
,32
,64
,128
, and256
. -
For Aurora PostgreSQL, valid capacity values are
2
,4
,8
,16
,32
,64
,192
, and384
.
Parameter secondsBeforeTimeout
:
The amount of time, in seconds, that Aurora Serverless tries to find a
scaling point to perform seamless scaling before enforcing the timeout
action. The default is 300.
- Value must be from 10 through 600.
Parameter timeoutAction
:
The action to take when the timeout is reached, either
ForceApplyCapacityChange
or
RollbackCapacityChange
.
ForceApplyCapacityChange
, the default, sets the capacity to
the specified value as soon as possible.
RollbackCapacityChange
ignores the capacity change if a
scaling point isn't found in the timeout period.
Implementation
Future<DBClusterCapacityInfo> modifyCurrentDBClusterCapacity({
required String dBClusterIdentifier,
int? capacity,
int? secondsBeforeTimeout,
String? timeoutAction,
}) async {
ArgumentError.checkNotNull(dBClusterIdentifier, 'dBClusterIdentifier');
final $request = <String, dynamic>{};
$request['DBClusterIdentifier'] = dBClusterIdentifier;
capacity?.also((arg) => $request['Capacity'] = arg);
secondsBeforeTimeout?.also((arg) => $request['SecondsBeforeTimeout'] = arg);
timeoutAction?.also((arg) => $request['TimeoutAction'] = arg);
final $result = await _protocol.send(
$request,
action: 'ModifyCurrentDBClusterCapacity',
version: '2014-10-31',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
shape: shapes['ModifyCurrentDBClusterCapacityMessage'],
shapes: shapes,
resultWrapper: 'ModifyCurrentDBClusterCapacityResult',
);
return DBClusterCapacityInfo.fromXml($result);
}