AWS实战 - dynamodb入门

         本人虽说学了几个月的AWS,但也仅仅考了一个初级的 Certified Solutions Architect - Associate的证书,一直学的英文版(工作需要),一看高级的考试,那英文题目就够受,况且也没有多少实践,就一直搁置了。好吧,闲话少说,最近有时间来做实践,作为新手,就一边做一边记录吧。

       dynamodb,AWS十分推崇的托管式数据库,本文只注重操作,所以不讨论好坏。另外aws的文档很好,所以直接参考

Getting started with DynamoDB and AWS SDKs - Amazon DynamoDB

平时干活全是java和nodejs,好不容易有了学习机会,所以我选择了用python sdk来操作dynamodb。

  1. Python,windows版

当前python版本  Python 3.8.4rc1 Python Releases for Windows | Python.org

下载一个zip的版本,解压缩到c:\python3,再把这个目录加入环境变量,python3就可以用了。我的环境变量里还有python27,需要删掉,省的惹出麻烦。

测试一下

pip

This page has moved - pip documentation v22.2.2

采用了下载get-pip.py, 然后用python执行来安装

安装很快,不过看提示,似乎需要再设一下环境变量 c:\python3\scripts。不要忘记重新开cmd

出现了错误:

ModuleNotFoundError: No module named 'pip'

google研究了一番,可以通过以下方法解决

执行一下python脚本,看一下path里面是否包含ib\site-packages,如果没有就在python38._pth里加上即可

>>> import sys
>>> sys.path

boto3

Quickstart — Boto3 Docs 1.24.61 documentation

创建表:Movie

Getting started with DynamoDB and AWS SDKs - Amazon DynamoDB

看到 dynamodb = boto3.resource('dynamodb', endpoint_url="http://localhost:8000")

aws的文档里连接的时本地的dynamodb,我这里需要用到真正的aws dynamodb service,所以我要用的access key id 和 secret access key,这两个key是创建aws账号是给的,到console里或许还能查到(没查过)。

dynamodb = boto3.resource('dynamodb', region_name="us-east-1", aws_access_key_id='***',aws_secret_access_key='***')

import boto3
def create_movie_table(dynamodb=None):
    if not dynamodb:
        dynamodb = boto3.resource('dynamodb', endpoint_url="http://localhost:8000")

    table = dynamodb.create_table(
        TableName='Movies01',
        KeySchema=[
            {
                'AttributeName': 'year',
                'KeyType': 'HASH'  # Partition key
            },
            {
                'AttributeName': 'title',
                'KeyType': 'RANGE'  # Sort key
            }
        ],
        AttributeDefinitions=[
            {
                'AttributeName': 'year',
                'AttributeType': 'N'
            },
            {
                'AttributeName': 'title',
                'AttributeType': 'S'
            },

        ],
        ProvisionedThroughput={
            'ReadCapacityUnits': 10,
            'WriteCapacityUnits': 10
        }
    )
    return table

if __name__ == '__main__':
    dynamodb = boto3.resource('dynamodb', region_name="us-east-1", aws_access_key_id='***',aws_secret_access_key='***')
    movie_table = create_movie_table(dynamodb)
    print("Table status:", movie_table.table_status)

找个编辑器,现在一般用vscode了,把上面代码写好,要改好dynamodb的resource,让后用python执行一下,就会得到下面结果,Movies以前创建了,这次加了01

后面还有一些CRUD的操作,基本上都是可以参考aws文档的例子一步一步来做,我就不赘述了。

总结一下,dynamodb的这些操作其实很容易,也没有碰到什么坑,反倒是安装python的环境时竟然有个小坑,或许是对于python大神来说不算什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值