前一篇 AWS实战 - dynamodb,写了通过sdk来操作dynamodb,sdk的方式个人认为主要是用在自己搭建的server上运行,还是需要人为管理的那些server(EC2或自己的机器),今天来上手操作一下AWS鼓吹的很牛的serverless之二 Lambda。想必能进来看的人一定知道Lambda是什么,这里就不多说了,实际上我也不一定能说明白,直接看操作。
创建function,下面图默认就好
输入函数名和程序语言,依然选Python,以学习为目的。
下图要选择,创建一个新的role。因为第一次创建Lambda,所以想还是自己新建一个role来运行Lambda。可以点Create Function了。
结果如下,这里只截取了部分图片,因为刚入手,能实现基本的dynamodb操作就好。
点一下上图右上角的最大化,可以让这个online的编辑器展开,C9还是很好用的。
先不着急写代码,这里已经有一些示例代码了,我们先run一下看看。点一下上面的Test, 在下图中,只需填上Event name就行,其他的可以默认,最后点一下Create。
等回到c9编辑器,再点一次Test,就能得到下面的运行结果了
现在我们就可以开始用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要简单的不止一点半点,更重要的是没遇到坑。