关闭

AWS - 使用AWS创建HTTP接口 (Api Gateway + Lambda + Dynamodb)

标签: gatewayapilambdaaws
3922人阅读 评论(0) 收藏 举报
分类:

概述

随着移动设备的激增以及物联网 (IoT) 的崛起,通过 API 让应用程序访问后端系统和数据变得越来越常见。
这里写图片描述
通过 Amazon API Gateway,您可以根据在 AWS Lambda 中运行的代码快速、轻松地创建自定义 API,然后通过 API 调用 Lambda 代码。Amazon API Gateway 可以用您的账户执行 AWS Lambda 代码,也可以在 AWS 外部通过可公共访问的 HTTP 端点来调用 AWS Elastic Beanstalk、Amazon EC2 或 Web 服务。利用 Amazon API Gateway 控制台,您可以定义 REST API 及其关联的资源和方法、管理 API 生命周期、生成客户端 SDK,并能查看 API 指标。下文讲述通过Api Gateway + Lambda + Dynamodb建立一个HTTP接口我们通过手机或者IOT设备去访问注册。
这里写图片描述

Dynamodb

概述

DynamoDB是亚马逊一个完全托管的NoSQL数据库服务,快速,性能好,扩展性好,操作方便。只需要在AWS(Amazon Web Service)管理控制台上面,用鼠标轻松点击几下,用户就可以自己创建一个新的Amazon DynamoDB数据库表,也可以通过命令行来创建,并可以根据实际需求对表进行扩展和收缩,这个过程既不需要停止对外服务,也不会降低服务性能。通过AWS管理控制台,用户还可以看见资源利用情况和各种性能指标。Amazon DynamoDB可以使得用户把操作和扩展分布式数据库的沉重负担,交付给AWS来处理,这样,用户就不需要担心硬件配置、复制、软件安装和打补丁包、簇扩展等。DynamoDB是亚马逊的key-value模式的存储平台,可用性和扩展性都很好,性能也不错:读写访问中99.9%的响应时间都在300ms内。DynamoDB的NoSQL解决方案,也是使用键/值对存储的模式,而且通过服务器把所有的数据存储在SSD上的三个不同的区域。如果有更高的传输需求,DynamoDB也可以在后台添加更多的服务器。
AmazonDynamoDB被设计成用来解决数据库管理、性能、可扩展性和可靠性等核心问题。开发人员可以创建一个数据库表,该表可以存储和检索任何数量的数据,并且可以

1.创建表

Dynamodb创建表的话就比较简单, 简单的创建一个表就可以了, 也不用创建字段,和mongodb很相似,因为比较简单看下教程就可以了
入门教程
https://aws.amazon.com/getting-started/tutorials/create-nosql-table/?nc1=h_ls
详细教程
http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.JsShell.html

根据以上的教程我们就把表建好了,在其它Service中我们就可以存储和查询数据

Lambda

概述

AWS Lambda是一个用于部署代码、管理服务以及监控轻量级服务运行状态的细粒度方法。通过 AWS的Lambda服务,无需配置或管理服务器即可运行代码。您只需按消耗的计算时间付费 – 代码未运行时不产生费用。借助 Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码,而且全部无需管理。只需上传您的代码,Lambda 会处理运行和扩展高可用性代码所需的一切工作。您可以将您的代码设置为自动从其他 AWS 服务触发,或者直接从任何 Web 或移动应用程序调用。

第一步进入Lambda

1.点击Lambda进入如下界面

这里写图片描述

2.点击 Get Started Now 进入如下界面

这里写图片描述

3.点击 下一步这里写图片描述

4.填写方法名称,运行环境 (本例中选择的是Node.js)

a. 填写方法的名称
b. 填写描述,基本算是注释可填可不填
c. 选择运行环境(本例中选择的是Nodejs运行环境)
d. 编写代码(有三种方式:直接编写; 上传zip代码文件; 填写S3的一个链接前提是代码上传到S3中)
e. 选择一个角色,假如在Lambda代码中有使用数据库,则需要给数据库的权限 这样就需要进入IAM中建立一个角色赋予Dynamodb的权限
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

然后点击下一步,创建成功,
f. 接着就可以选中进入编辑代码

Api Gateway

概述

Amazon的API Gateway 是一种完全托管的服务,可以帮助开发者轻松创建、发布、维护、监控和保护任意规模的 API。只需在 AWS 管理控制台中点击几下,您便可以创建可充当应用程序“前门”的 API,从后端服务访问数据、业务逻辑或功能,例如基于 Amazon Elastic Compute Cloud (Amazon EC2) 运行的工作负载、基于 AWS Lambda 运行的代码或任意 Web 应用。Amazon API Gateway 负责管理所有任务,涉及接受和处理成千上万个并发 API 调用,包括流量管理、授权和访问控制、监控以及 API 版本管理。Amazon API Gateway 没有最低费用或启动成本,您只需为收到的 API 调用和传输出去的数据量付费。
这里写图片描述
这里写图片描述

Api Gateway Doc

这里写图片描述
1. 创建一个新的API
2. 新API的名称 Description API的用途(可有可无)
3. 在Resources 中类型选择为Lambda Function, 因为我们调用的这个Lambda 服务去保存和从数据库查询数据,我们的Lambda建在哪个地区就选者哪个地区,然后选择Lambda Function

2
0
查看评论

试用AWS的Lambda和API Gateway

使用Lambda和API gateway搭建一个HTTP API,返回文本信息
  • aws0to1
  • aws0to1
  • 2015-07-21 18:44
  • 3038

通过 AWS 的 Lambda 和 API Gateway 走向 Serverless

导读 Lightbot近来,在计算领域出现了很多关于 serverless 的讨论。serverless 是一个概念,它允许你提供代码或可执行程序给某个服务,由服务来为你执行它们,而你无需自己管理服务器。这就是所谓的执行即服务execution-as-a-service,它带来了很多机会,同时也遇...
  • Jack__CJ
  • Jack__CJ
  • 2016-11-11 09:38
  • 2000

Amazon API Gateway

http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/welcome.html 什么是 Amazon API Gateway? Amazon API Gateway 是一项 AWS 服务,让开发人员能够创建、发布、...
  • whatnamecaniuse
  • whatnamecaniuse
  • 2017-09-25 16:56
  • 245

boto3 dynamodb 入门使用

介绍 Amazon DynamoDB 是一项快速灵活的 NoSQL 数据库服务,适合所有需要一致性且延迟低于 10 毫秒的任意规模的应用程序。它是完全托管的云数据库,支持文档和键值存储模型。灵活的数据模型和可靠的性能使其成为移动、Web、游戏、广告技术、物联网和众多其他应用的不二之选。 定价 官...
  • afxcontrolbars
  • afxcontrolbars
  • 2017-02-26 22:49
  • 1357

AWS Lambda 入门到放弃

Request 1.进来的reuqest转入/hello/. 2.Django通过在ROOT_URLCONF配置来决定根URLconf. 3.Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。 4.如果找到匹配,将调用相应的视图函数 5.视图函数返回一个...
  • afxcontrolbars
  • afxcontrolbars
  • 2017-04-02 20:03
  • 3027

DynamoDB API

BatchGetItem  操作从一个或多个表返回一个或多个项目的属性。您通过主键识别所请求的项目。 BatchWriteItem  操作在一个或多个表中放置或删除多个项目。单个调用BatchWriteItem可以写入高达16 MB的数据     ...
  • m0_37204491
  • m0_37204491
  • 2017-06-05 10:16
  • 1173

Amazon DynamoDB简介(一)

DynamoDB的数据是存储在SSD(Solid State Drive,固态硬盘),这样可在预测的低延迟响应时间之内,存储和访问任何规模的数据,另外SSD 还具有很高的 I/O 性能,能够处理大规模请求工作负载。我们来看看DynamoDB的不适合的使用场景:如果需要存储大量数据,但这些数据的访问频...
  • hongchangfirst
  • hongchangfirst
  • 2014-08-20 11:35
  • 6969

DynamoDB

本来想写写进程、线程、轻量级线程、goroutine还有协程(coroutine),为什么我把goroutine单独列出来是因为它不是协程,所有翻译成协程的都是偷用概念,把比线程轻量的都叫做协程。算了,先不纠结这个,今天想写写DynamoDB,记录下经历。       ...
  • zagfai
  • zagfai
  • 2014-12-03 01:15
  • 1253

Amazon API Gateway 常见问题

一般性问题 问:什么是 Amazon API Gateway?Amazon API Gateway 是一种完全托管的服务,可以帮助开发者轻松创建、发布、维护、监控和保护任意规模的 API。只需在 AWS 管理控制台中点击几下,您便可以创建可充当应用程序“前门”的 API,从后端服务访问数据、业务逻辑...
  • m0_37204491
  • m0_37204491
  • 2017-06-01 11:30
  • 986
    个人资料
    • 访问:37812次
    • 积分:650
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:13篇
    • 译文:0篇
    • 评论:0条
    联系我们

    email: my_snail@126.com
    qq : 372943021
    微信公众平台:
    W1314DeCR