欢迎访问宙启技术站
智能推送

在Python中使用boto3创建AmazonDynamoDB表

发布时间:2023-12-28 06:55:17

Amazon DynamoDB是一项全托管的NoSQL数据库服务,具有灵活的数据模型和可扩展的性能。在Python中,我们可以使用boto3库来与DynamoDB进行交互,并创建表。下面是一个使用boto3创建Amazon DynamoDB表的示例代码。

首先,我们需要安装boto3库。可以通过以下命令使用pip进行安装:

pip install boto3

安装好boto3库后,我们可以开始编写代码。首先,导入必要的库和模块:

import boto3
from botocore.exceptions import NoCredentialsError

接下来,使用以下代码创建一个DynamoDB资源:

def create_dynamodb_resource():
    try:
        dynamodb = boto3.resource('dynamodb', region_name='us-west-2')
        return dynamodb
    except NoCredentialsError:
        print("Credentials not found")

上述代码创建了一个名为dynamodb的DynamoDB资源,并指定了区域为us-west-2。如果没有找到凭证,将抛出NoCredentialsError。

接下来,我们可以使用以下代码创建一个表:

def create_table():
    dynamodb = create_dynamodb_resource()

    table_name = 'MyTable'
    key_schema = [
        {
            'AttributeName': 'id',
            'KeyType': 'HASH'
        }
    ]
    attribute_definitions = [
        {
            'AttributeName': 'id',
            'AttributeType': 'N'
        }
    ]
    provisioned_throughput = {
        'ReadCapacityUnits': 5,
        'WriteCapacityUnits': 5
    }

    try:
        table = dynamodb.create_table(
            TableName=table_name,
            KeySchema=key_schema,
            AttributeDefinitions=attribute_definitions,
            ProvisionedThroughput=provisioned_throughput
        )
        return table
    except NoCredentialsError:
        print("Credentials not found")

上述代码创建了一个名为MyTable的表,并指定了id作为主键。表的读写吞吐量都设置为5。如果表创建成功,将返回表对象。如果没有找到凭证,将抛出NoCredentialsError。

在主程序中,我们可以使用以下代码调用create_table函数并获取返回的表对象:

if __name__ == '__main__':
    table = create_table()
    if table is not None:
        print("Table created successfully")
    else:
        print("Failed to create table")

以上就是使用boto3库在Python中创建Amazon DynamoDB表的示例代码。你可以根据自己的需求修改代码中的表名、主键、读写吞吐量等参数。希望对你有所帮助!