10.11杭州Clouder lab 十分钟搭建共享应用1:函数计算及表格存储操作说明
1. 获取云账户
- 1.1 每位观众入场都会得到一个云账户
- 1.2 获得账号ID和Accesskeys
- 1.2.1 进入账号管理复制并记录对应的
账号ID
- 1.2.2 进入Access Key管理界面,记录您的
AccessKey ID
及Secret
- 1.2.1 进入账号管理复制并记录对应的
2. 开通表格存储(TableStore)
2.1. 开通表格存储服务
- 2.1.1 登录阿里云官网-表格存储 ,并点击服务开通
2.2. 创建表格存储实例
- 2.2.1 登陆表格存储控制台
- 2.2.2 在控制台上创建实例,在
华东2
创建实例(注意:实例的整个区域Region级别) - 2.2.3 记录实例信息,主要包括
实例名
3. 开通简单日志服务
3.1. 开通日志服务
- 3.1.1 进入日志服务,点击
立即购买
按钮`
3.2. 创建日志服务
4. 开通函数(FunctionCompute)服务
4.1. 新建函数计算service服务
- 4.1.1 进入函数服务管理控制台
- 4.1.2 选择
华东2
- 4.1.3 点击右上角
新建服务
4.2. 服务高级配置
- 4.2.1
角色
中选择从模板创建新的角色
- 4.2.2 模板策略中添加
AliyunLogFullAccess
- 4.2.3 模板策略中添加
AliyunOTSReadOnlyAccess
- 4.2.4
角色名字
自定义一个名字
4.3. 新建空白函数函数
- 4.3.1 选择python,点击
空白函数
- 4.3.2
触发器配置
中选择不创建任何触发器
,并进入下一步
4.4. 函数基础配置
- 4.4.1 函数名使用
unlock
- 4.4.2 选择
本地上传
,上传指定的unlock.zip
文件 - 4.4.3 运行环境使用
python2.7
- 4.4.4 函数入口使用
unlock.req_unlock
- 4.4.5 超时时间为
30
秒
4.5. 函数调试输入参数编辑
- 4.5.1 建好函数后,选择对应unlock,进入函数详情页
- 4.5.2 将代码中的event对应的dict选择复制到剪切板,备用
- 4.5.3 点击
触发事件
按钮
4.6. unlock事件编辑
- 4.6.1 将剪切板的内容粘贴到编辑框并点击
保存
编辑event内容如下:
{
"MobileNo" : "18612345678",
"DeviceId" : 123456,
"Latitude": 30.131852,
"Logitude": 120.0776645
}
4.7. 函数调试调用测试
- 4.7.1 点击
执行
按钮可以开始调试函数
4.8. 锁车函数配置
- 4.8.1 如同unlock函数建立类似,新建lock函数
- 4.8.2 函数名使用
lock
- 4.8.3 选择
本地上传
,上传指定的lock.zip
文件 - 4.8.4 运行环境使用
python2.7
- 4.8.5 函数入口使用
lock.req_lock
- 4.8.6 超时时间为
30
秒
- 4.8.7 将图片中的
fc-ots-sandbox
替换成准备过程中新建的表格存储实例名 - 4.8.8 点击
保存
5. 搭建Demo
5.1 根据不同的环境下载不同的Demo
Mac
-
Windows x86
-
Windows x64
-
Linux x86
Linux x64
5.2 配置环境
1. 解压包,并进入解压目录
2. 编辑conf/app.conf, 修改如下字段:
- ws_userid # 账户ID
- ws_accessid # 账户的AccessId
- ws_accesskey # 账户的Accesskey
- ws_tablestore_instance # 表格存储的实例名称
- ws_fc_service # 函数服务的Service
- ws_mobile_no # 请填写自己的电话号码,后面报警的Demo演示会使用到这个字段
5.3 启动
5.3.1 Mac 启动方式
- 在终端中直接运行: ./workshop
- 或者直接双击run
5.3.2 Windows 启动方式
- 直接双击workshop exe
5.3.3 Linux 启动访问
- cd 到解压文件目录,直接运行: ./workshop
6. Demo演示
- 6.1 访问APP
- 6.2 模拟手机APP,进行解锁、骑行、上锁、查看历史记录等
7. 利用表格存储和函数服务实现报警
7.1 场景:通过配置短信报警,实时了解单车的状态。我们通过如下的简单的例子,监听单车承载的重量,如果超过我们的阀值,我们会通过短信网关,将报警信息发送到管理员处。
7.2 配置报警
- 7.2.1 登录函数服务控制台
- 7.2.2 进入之前创建的Service
-
7.2.3 在FC的service下新建一个空白函数—不创建任何触发器,到函数配置页面,按照下图进行配置:
- 函数名称:根据实际情况填写,示例为
alarm
- 运行环境:
python2.7
- 上传代码:将附件
alert.zip
的代码包下载下来,直接选择本地上传 - 函数入口:
alert.my_handler
- 函数名称:根据实际情况填写,示例为
7.2.4 点击
完成
, 在服务界面就可以看到相关的函数-
7.2.5 测试alert的函数行为是否符合期望。
a) 进入函数详情-代码执行
,点击触发事件
,选择自定义
,将下述的json内容粘贴至编辑框,如下图,修改红框中的值,MobileNo为异常情况短信报警的手机号码,Weight为重量,超过120则会触发报警短信,点击保存。{ "Records": [ { "Info": { "Timestamp": 1506135175100900 }, "Type": "PutRow", "PrimaryKey": [ { "ColumnName": "Uid", "Value": 10 }, { "ColumnName": "Sid", "Value": 1001 }, { "ColumnName": "CreateTime", "Value": 1506135175 } ], "Columns": [ { "Timestamp": 1506135175101, "Type": "Put", "ColumnName": "MobileNo", "Value": "1234567" }, { "Timestamp": 1506135175101, "Type": "Put", "ColumnName": "Weight", "Value": 109 }, { "Timestamp": 1506135175101, "Type": "Put", "ColumnName": "Vid", "Value": 3005 }, { "Timestamp": 1506135175101, "Type": "Put", "ColumnName": "BatteryLevel", "Value": 0.55 }, { "Timestamp": 1506135175101, "Type": "Put", "ColumnName": "Distance", "Value": 10.1 } ] } ], "Version": "Sync-v1" }
b) 由于TableStore Trigger触发函数服务的数据事件为CBOR格式,是一种类似于JSON的二进制格式,不可读,所以我们暂时使用JSON来做调试。将my_handler中的序列化修改为
records = json.loads(event)
,点击执行,会看到测试成功,如果Weight大于120,配置好的手机号还将会收到一条短信。
c) 调试完成之后,将records=json.loads(event)
删除或者注释掉,打开records = cbor.loads(event)
,点击保存。 7.2.6 进入表格存储控制台的实例下,会看到多张表,选择“geo”的表,点击
开启Stream
,设置过期时间为24
,成功之后,点击使用触发器
7.2.7 选择
使用已有的函数计算
,
8. 函数服务日志收集及分析
最后更新:2017-10-10 16:03:31