赞
踩
亚马逊AWS(Amazon Web Services (AWS) )是亚马逊提供的专业云计算服务,于2006年推出,以Web服务的形式向企业提供IT基础设施服务,通常称为云计算。其主要优势之一是能够以根据业务发展来扩展的较低可变成本来替代前期资本基础设施费用。
亚马逊网络服务所提供服务包括:亚马逊弹性计算网云(Amazon EC2)、亚马逊简单储存服务(Amazon S3)、亚马逊简单数据库(Amazon SimpleDB)、亚马逊简单队列服务(Amazon Simple Queue Service)以及Amazon CloudFront等。【来自百度百科】
虽然,在国内很多人用阿里云、华为云,但AWS毕竟是云计算的鼻祖。
AWS已经提供中国区的服务,目前在中国只有北京区和宁夏区。同时,向中国区的用户提供了很多免费服务。但好像不支持个人注册,是面向企业的,注册需要提供公司信息,之后会有工作人员与你联系。注册登录后,控制台界面如下:
本实验的目的是使用 Amazon API Gateway 和 AWS Lambda 快速搭建一个无服务器网站 。
在AWS控制台打开Lambda服务,点击新建一个Lambda函数。
观察这里可以使用的开发语言,并选择Python3.7开发语言进行本实验
选择一个执行角色,先选择Lambda_basic_excution,这个角色可以让Lambda上传Logs到CloudWatch
输入一个名字,选择开发语言
然后点击创建函数 。
观察Lambda函数的配置界面:触发器、代码窗口、Lambda权限、角色权限、内存、运行超时时间、并发 。在本实验中,以上配置暂时保持默认值 。
在AWS控制,APIGateway服务中,新建一个API。
这里选择配置较简易的代理集成,并输入Lambda的名称(输入前面的字母就可以下拉选择),完成保存。1. 如果要让API进行数据转换的话,则可以取消代理集成,直接配置转换模版 。
完成前面的步骤之后,API就配置好了,要投入使用还需要将其部署生效。
输入部署的“阶段”名字,阶段的意思就是说这个部署的API是什么版本?是测试,开发,还是生产接口,这样以后每次修改,就可以针对不同的阶段进行部署,先开发、测试,然后部署上生产。
部署完之后,从阶段的界面可以找到访问的URL,这个就是API的URL,用浏览器访问这个URL即会访问到这个API,并且触发Lambda进行响应。
回到Lambda的界面,对代码的响应部分进行修改,记得要保存Lambda。
此时,一个简单的网站已经搭建完成。
到AWS控制台的DynamoDB服务界面,创建一个DynamoDB数据库表。
给数据库表定义一个名称(跟其他表不要冲突),并设置主键,例如“id”。
为你的数据库表创建一些记录,类似如下。
有没留意到,这个数据库创建记录的过程并没有先定义字段,而是新增记录的同时就自动完成了新建字段的过程 。
在Lambda的代码界面用以下的代码代替原来的代码,注意修改数据库表名称 TableName=‘your_DynamoDB_name’。
import json
import boto3
client = boto3.client('dynamodb')
def lambda_handler(event, context):
response = client.scan(
TableName='your_DynamoDB_name')
return {
'statusCode': 200,
'body': (json.dumps(response, indent=4, ensure_ascii=False))
}
代码替换后的效果如下图,记得保存。
刷新刚才访问APIGateway的浏览器页面,这时候,你将看到你的整个数据库查询响应以JSON格式返回了。
如果报错查询不到数据库,则请检查上面的数据库表名称是否跟你刚才新建的数据库表名一致。
如果还出现其他错误,别急,往下看!!!
在前面的步骤中,如果没有配置 Lambda 访问 DynamoDB 的访问权限,实际上是无法访问到数据库的,需要在IAM中新建如下的角色。并且修改Lambda的执行权限为这个新建的角色。可以由IAM管理员统一新建该角色为lambda_access_dynamoDB,然后每位学员只需要修改自己Lambda的执行角色。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。