AWS实战 - Lambda与dynamodb

前一篇 AWS实战 - dynamodb,写了通过sdk来操作dynamodb,sdk的方式个人认为主要是用在自己搭建的server上运行,还是需要人为管理的那些server(EC2或自己的机器),今天来上手操作一下AWS鼓吹的很牛的serverless之二 Lambda。想必能进来看的人一定知道Lambda是什么,这里就不多说了,实际上我也不一定能说明白,直接看操作。

创建function,下面图默认就好

AWS实战 - Lambda与dynamodb_第1张图片

输入函数名和程序语言,依然选Python,以学习为目的。

AWS实战 - Lambda与dynamodb_第2张图片

下图要选择,创建一个新的role。因为第一次创建Lambda,所以想还是自己新建一个role来运行Lambda。可以点Create Function了。

AWS实战 - Lambda与dynamodb_第3张图片

结果如下,这里只截取了部分图片,因为刚入手,能实现基本的dynamodb操作就好。

AWS实战 - Lambda与dynamodb_第4张图片

AWS实战 - Lambda与dynamodb_第5张图片

点一下上图右上角的最大化,可以让这个online的编辑器展开,C9还是很好用的。

AWS实战 - Lambda与dynamodb_第6张图片

先不着急写代码,这里已经有一些示例代码了,我们先run一下看看。点一下上面的Test, 在下图中,只需填上Event name就行,其他的可以默认,最后点一下Create。

AWS实战 - Lambda与dynamodb_第7张图片

等回到c9编辑器,再点一次Test,就能得到下面的运行结果了

AWS实战 - Lambda与dynamodb_第8张图片

现在我们就可以开始用Lambda来玩耍一下dynamodb了,我这里打算访问前一篇文章创建的Movies表,代码如下

import os
import boto3
from boto3.dynamodb.conditions import Key
 
def lambda_handler(event, context):
    print('## ENVIRONMENT VARIABLES')
    print(os.environ)
    print('## EVENT')
    print(event)
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('Movies')
    year = 1985
    response = table.query(
        KeyConditionExpression = Key('year').eq(year)
    )
        
    return response['Items']

加了一些print,显示一下各种参数,以便熟悉了解,日后应该可以用上。

## EVENT
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

 

看到之前创建Test是的默认值,根据这些函数的输入,就可以实现对dynamodb表的数据精准查询了,或者CRUD。不过我看了dynamodb的查询语法,还是有些头大的。

总结一下,AWS的Lambda上手还是比较容易的,也是比较快的。并且内置的编辑器,开发运行环境都很完善,相比前一篇,自己搭建python和boto3,然后还需要access key来访问,Lambda要简单的不止一点半点,更重要的是没遇到坑。

 

 

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