-
Notifications
You must be signed in to change notification settings - Fork 1
user_guide_cn
完整跑通本示例需要购买若干阿里云的服务。 建议先在阿里云账号里充值500元。 事先选定一个地区,该地区必须有函数计算服务。 以下所有服务都在该地区下开通。
费用:无。 表格存储支持按量付费,无需预付费用。 另外表格存储支持相当大的免费额度,正常使用本示例不会产生费用。
在表格存储控制台上开通一个测试用实例,记下实例名以及公网访问地址、内网访问地址。
费用:无。 日志服务同样有免费额度,正常使用本示例不会产生费用。
在日志服务控制台上新建一个project和一个logstore,并租用一个shard。 记下project和logstore的名字。
费用:无。 访问控制不收费。
在访问控制控制台上新建一个角色,授权给函数计算服务,授权策略里加入AliyunFCInvocationAccess
, AliyunLogFullAccess
, AliyunOTSReadOnlyAccess
, AliyunOTSWriteOnlyAccess
四个授权。
记下角色名。
费用:无。 函数服务同样有免费额度,正常使用本示例不会产生费用。
在函数计算服务控制台上新建一个服务。 在服务详情页找到“高级配置”,填入日志服务project和logstore,以及访问控制角色名。 记下服务名。
根据服务入口的规则取得公网服务地址以及内网服务地址,并记下。
- 下载代码并记下代码目录的绝对路径
- 构建编译环境。
我们建议使用docker容器来编译本示例,这样可以规避系统环境的不一致。
读者若对自己的系统比较熟悉也可以参考
dockerfile/Dockerfile
自行安装示例所依赖的程序。 后面的解说都以使用容器为前提。 自行安装程序的读者请自行裁剪、调整命令。- 构建镜像。在
dockerfile/
目录下执行$ sudo docker build -t delivery .
- 进入容器。在任意目录执行
其中
$ sudo docker run -it -v $ROOT:/opt/demo delivery /bin/bash
$ROOT
需换成代码目录的绝对路径。 - 配置函数计算命令行工具。在容器内执行
其中endpoint填入函数计算公网服务地址。
# /fcli
- 配置生产函数。以任意编辑器打开代码目录下
src/common/cfg.py
, 在OTS_ENDPOINT
填入表格存储内网访问地址, 在OTS_INSTANCE
填入表格存储实例名, 在FC_ENDPOINT
填入函数计算内网服务地址, 在FC_SERVICE
填入函数计算服务名。 - 编译代码以及上传。在容器内执行
# cd /opt/demo; scons
- 准备示例环境变量。在容器内执行
将其中
# export OTS_ENDPOINT=$OTS_ENDPOINT # export OTS_INSTANCE=$OTS_INSTANCE # export ACCESS_KEY_ID=$ACCESS_KEY_ID # export ACCESS_KEY_SECRET=$ACCESS_KEY_SECRET
$OTS_ENDPOINT
,$OTS_INSTANCE
,$ACCESS_KEY_ID
,$ACCESS_KEY_SECRET
分别替换成表格存储公网访问地址、表格存储实例名、阿里云账号的access-key id和access-key secret。 - 准备表格存储上的表。在容器内执行
# /opt/demo/build/debug/tools/Prepare
- 构建镜像。在
- 在表格存储控制台创建一个
Logbook
表的触发器,”使用已有函数计算,“服务”选择之前记录的函数计算服务名,“函数”选择transformer
,“触发器名称”随便填。 勾选“授权表格存储发送事件通知的权限”(若需要)。 - 灌入测试数据。在容器中执行
# TPS=1 /opt/demo/build/debug/tools/DataFaker
至此,数据路径构建完成。
读者可以从日志服务project和logstore内查询到transformer
, accumulator
和flywireUpdater
三个函数产生的日志,
也可以从表格存储的表监控上看到对Logbook
, PackageInfo
, Flywire
和Bubble
四张表的写入。
请保持DataFaker
处在运行状态。
费用:5分钱一天。 API网关每万次请求收6分钱。 示例里DataV每10秒访问一次。
在API网关控制台里操作
- 新建一个分组。
- 点击刚才新建的分组,记下二级域名
- 新建一个API。
“分组”选择刚才建立的分组,
“API名称”填
flywire
, “安全认证”选择“无认证”, “类型”选择“私有”, “请求Path”填/flywire
, “后端服务类型”选择“FunctionCompute”, “区域”选择事先决定的地区, “Service”填写函数计算服务名, “Function”填写flywire
, “RoleArn”选择“获取授权”(可能需要多点几次,直到RoleArn被填入), “后端超时”填写5000
, “返回ContentType”选择“JSON”, “返回结果示例”填[]
。 - 发布该API到线上。
- 左边找到“签名秘钥”,新建一组秘钥,记下Key和Secret,并绑定到刚才发布的API上。
至此,飞线展示函数已发布到线上。 若进入“调试API”,可以看到类似如下的结果
200
Date: Fri, 03 Nov 2017 09:33:23 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 309
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH
Access-Control-Allow-Headers: X-Requested-With,X-Sequence,X-Ca-Key,X-Ca-Secret,X-Ca-Version,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-API-Key,X-Ca-Stage,X-Ca-Client-DeviceId,X-Ca-Client-AppId,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Forwarded-For,X-Ca-Date,X-Ca-Request-Mode,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,Range,Content-MD5
Access-Control-Max-Age: 172800
X-Ca-Request-Id: 5AAB55BD-1A00-444C-B230-D5717F4B18B6
Latency: 572
[{"to":"104.06,30.67","from":"104.06,30.67"},{"to":"121.29,31.13","from":"104.06,30.67"},{"to":"116.46,39.92","from":"121.29,31.13"},{"to":"121.29,31.13","from":"121.29,31.13"},{"to":"114.06,22.55","from":"121.29,31.13"},{"to":"116.46,39.92","from":"114.06,22.55"},{"to":"104.06,30.67","from":"114.06,22.55"}]
费用:500元。 必须企业版才支持表格存储和API网关作为数据源。 最低购买一个月,500元。
在DataV控制台上操作
- 创建大屏
- “我的可视化”,“新建可视化”,使用空白模板“创建大屏”
- 上方“地图”,“基础平面地图”
- 右侧“样式”下,保留“底图层”,删除其余图层
- 气泡层
- 控制台“我的数据”,“添加数据” * “类型”选择TableStore * “公网地址”填入表格存储公网访问地址 * 填好其他项目后点击“测试连接”,通过
- 大屏“样式”标签下添加“呼吸气泡层”,并点击进行设置
* 点击“数据”标签
* “数据源类型”选择“TableStore”
* “配置”选择刚才添加的TableStore数据源
* “操作”选择“getRange”
* 配置框内填入
点击“查看数据响应结果”,可以看到类似如下的结果
{ "table_name": "Bubble", "direction": "FORWARD", "columns": ["lat", "lng", "value", "type"], "range": { "limit": 60000, "start": { "DestinationCity": "A" }, "end": { "DestinationCity": "z" } } }
[ { "lat": 39.92, "lng": 116.46, "type": 1, "value": 1857 }, { "lat": 30.67, "lng": 104.06, "type": 1, "value": 1846 }, { "lat": 31.13, "lng": 121.29, "type": 1, "value": 1848 }, { "lat": 22.55, "lng": 114.06, "type": 1, "value": 1873 } ]
* 勾选“自动更新”,每1秒请求一次
- 飞线层
- 控制台“我的数据”,“添加数据” * “类型”选择阿里云API网关 * 填入API网关的二级域名、Key和Secret
- 大屏“样式”标签下添加“飞线层”,并点击进行设置
* 点击“数据”标签
* “数据源类型”选择“API网关”
* “配置”选择刚才添加的API网关数据源
* “请求URL”填入
/flywire
* 点击“查看数据响应结果”,可以看到类似如下的结果[ { "to": "104.06,30.67", "from": "116.46,39.92" }, { "to": "104.06,30.67", "from": "104.06,30.67" } ]
* 勾选“自动更新”,每10秒请求一次
至此已完成大屏的配置,点击右上角预览可看到整体效果。