完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 北方· 于 2016-11-11 13:34 编辑 1. AWS服务介绍 AWS服务是亚马逊公司在线购物平台后面的巨大的现金奶牛,提供了巨大的想象空间和实际的服务,目前在中国的业务还没有全面推广,中国区的服务器也刚在10月上线,仅面对企业用户开放账号注册,所以,目前的测试均需要使用海外账号服务,速度不是很稳定。 因为AWS开发不是本评测的内容,因此不过多展开,具体想成为成熟的开发者,需要的培训还是很多的,而且亚马逊也提供了收费不低的分级认证,可见这个还是有一定的含金量,也是具有相当的难度的。 2. 为了简化AWS的设置过程,本评测采用了一个现成的测试模板[ amzn.to/1cVzMZN ],直接简化了设置内容。 登录后如下,
选择IOT2015,作为模板
模板创建完后如下,
其中的AWS服务的逻辑关系如下图,
3、整个设置居于核心的是AWS lambda服务,提供了一个在云端运行的函数,对智能硬件终端传输的数据进行分析,并连接AWS的其他服务,如数据库服务,存储服务,短消息发送等。下面列出,事件处理的核心Node.js程序iotapi.handler,供参照和理解。 // Lambda function acting as API endpoint for Evothings IoT Example console.log('Loading function'); var AWS = require('aws-sdk'); var DOC = require('dynamodb-doc'); var cw = new AWS.CloudWatch(); var doc = new DOC.DynamoDB(); exports.handler = function(event, context) { console.log('Received event:', JSON.stringify(event, null, 2)); switch(event.operation) { case 'update': update(event.sensorid, event.value, context); break; case 'query': query(event.sensorid, context); break; } }; var update = function(sensorid, value, context) { var itemParams = { TableName: 'SensorData', Item: { SensorId: sensorid, Timestamp: new Date().toISOString(), Value: value }}; doc.putItem(itemParams, function(err, data) { if (err) { console.log('DDB call failed: ' + err, err.stack); context.error(err); } else { //if all is well - also log the metric to CloudWatch logMetric(sensorid, value, function(err, data) { if (err) { console.log('CW call failed: ' + err, err.stack); context.error(err); } else { context.succeed(); } }); } }); } var logMetric = function(sensorid, value, callback) { var params = { MetricData: [{ MetricName: 'SensorData', Dimensions: [{ Name: 'SensorId', Value: sensorid }], Timestamp: new Date(), Value: value }], Namespace: 'Sensors' }; cw.putMetricData(params, callback); } var query = function(sensorid, context) { var params = { TableName: 'SensorData', Limit: 20, //return the 20... ScanIndexForward: false, //... most recent items KeyConditions: [doc.Condition('SensorId', 'EQ', sensorid)] }; doc.query(params, function(err, data) { if (err) { console.log(err, err.stack); // an error occurred context.fail(err); } else { console.log(data); // successful response context.succeed(data); } }); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【米尔RK3506国产开发板评测】3、实时补丁以及EtherCAT IGH移植
1149 浏览 0 评论
10250 浏览 0 评论
35750 浏览 0 评论
【米尔NXP i.MX 91开发板评测】基于RS485接口实现modbus从机
1689 浏览 0 评论
【米尔NXP i.MX 91开发板评测】移植运行IGH EtherCAT主站
1990 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】基于ROS系统的三麦轮小车自主导航
4537浏览 2评论
【米尔NXP i.MX 93开发板试用评测】5、安装Debian和排除启动故障
1467浏览 2评论
【米尔NXP i.MX 93开发板试用评测】2、异构通信环境搭建和源码编译
1669浏览 2评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】Free RTOS应用开发环境部署
2110浏览 1评论
【米尔-Xilinx XC7A100T FPGA开发板试用】+03.SFP光口测试(zmj)
2190浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:47 , Processed in 0.715911 second(s), Total 67, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5242
