我想更改 Amazon DynamoDB 表的容量模式。
简短描述
创建 DynamoDB 表时,必须指定预调配容量模式或按需容量模式。
要更改现有表的容量模式,请使用以下方法之一:
- DynamoDB 控制台
- AWS 命令行界面 (AWS CLI)
- Python
在切换容量模式之前,请参阅切换容量模式时的注意事项。
解决方法
注意:如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误。此外,请确保您使用的是最新版本的 AWS CLI。
DynamoDB 控制台
完成以下步骤:
- 打开 DynamoDB 控制台。
- 在导航窗格中,选择 Tables(表)。
- 选择要修改的表。
- 选择 Update(更新)。
- 在 Capacity mode(容量模式)下,选择要使用的新容量模式:
对于 Provisioned(预调配),输入读取和写入容量单位。
对于 On-Demand(按需),DynamoDB 会根据您的应用程序需求自动扩缩预调配的容量。
- 选择 Update table(更新表)。
AWS CLI
要将现有 DynamoDB 表的容量模式切换为 Provisioned(预调配),请运行以下命令:
aws dynamodb update-table --table-name <YOUR_TABLE_NAME> --billing-mode PROVISIONED --provisioned-throughput ReadCapacityUnits=<YOUR_READ_CAPACITY>,WriteCapacityUnits=<YOUR_WRITE_CAPACITY>
要将现有 DynamoDB 表的容量模式切换为 On-demand(按需),请运行以下命令:
aws dynamodb update-table --table-name <YOUR_TABLE_NAME> --billing-mode PAY_PER_REQUEST
Python
您可以使用 Amazon Elastic Compute Cloud (EC2) 实例或 AWS Lambda 来运行 Python 脚本。要将现有 DynamoDB 表的容量模式切换为 Provisioned(预调配),请运行以下命令:
import boto3
# Create a DynamoDB client
dynamodb = boto3.client('dynamodb', region_name=region_name, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
# Name of your DynamoDB table
table_name = 'YOUR_TABLE_NAME'
# Change the capacity mode to PROVISIONED
response = dynamodb.update_table(
TableName=table_name,
BillingMode='PROVISIONED',
ProvisionedThroughput={
'ReadCapacityUnits': 5, # Set your desired read capacity units
'WriteCapacityUnits': 5 # Set your desired write capacity units
}
)
print("Capacity mode changed to PROVISIONED")
要将现有 DynamoDB 表的容量模式切换为 On-demand(按需),请运行以下命令:
import boto3
# Create a DynamoDB client
dynamodb = boto3.client('dynamodb', region_name=region_name, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
# Name of your DynamoDB table
table_name = 'YOUR_TABLE_NAME'
# Change the capacity mode to PAY_PER_REQUEST
response = dynamodb.update_table(
TableName=table_name,
BillingMode='PAY_PER_REQUEST'
)
print("Capacity mode changed to PAY_PER_REQUEST")
相关信息
DynamoDB 吞吐能力