AWS实战 - dynamodb入门

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

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

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.html

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

  1. Python,windows版

当前python版本  Python 3.8.4rc1 https://www.python.org/downloads/windows/

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

AWS实战 - dynamodb入门_第1张图片

测试一下

AWS实战 - dynamodb入门_第2张图片

 

pip

https://pip.pypa.io/en/stable/installing/

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

AWS实战 - dynamodb入门_第3张图片

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

AWS实战 - dynamodb入门_第4张图片

出现了错误:

ModuleNotFoundError: No module named 'pip'

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

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

>>> import sys
>>> sys.path

 

boto3

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html

AWS实战 - dynamodb入门_第5张图片

创建表:Movie

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Python.01.html

看到 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

AWS实战 - dynamodb入门_第6张图片

 

 

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

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

你可能感兴趣的:(教程,AWS实战)