利用AWS搭建基金净值通知服务

当前问题

本人通过手机app「天天基金网」购买了两只基金,每日收盘后都急于想知道当日涨幅和盈亏(只怪太穷,天天盯着这点小钱)。由于净值更新并没固定时间点,本人每日晚上8点开始便不停手动刷手机以求得到当日最新净值。对于手动刷这种纯体力活,有些疲倦了,遂决定用程序化来解决

解决思路

目前各大厂商都提供云计算,在云端运行抓取最新净值的函数,然后把结果通知给我。

解决方案

查询净值API

金融数据基本都是私有数据,要么自己从网页上爬,要么利用别人提供的WEB API。在网上搜寻一番,并未找到合适的API(如果有误请推荐给小弟),于是决定从天天基金网上自己爬数据。
通过分析http://fund.eastmoney.com/f10/jjjz_000831.html(工银医疗保健)页面,发现天天基金网有用自己的API:http://fund.eastmoney.com/f10/F10DataApi.aspx?type=lsjz&code=000831&page=1&per=1 自己用Python简单试了下,确实有效。

AWS

听说AWS有free tier计划,遂注册一个free account(详细注册教程请自行Google)。

AWS lambda

如果仅仅跑一小段代码,利用AWS lambda服务即可。将抓取净值的逻辑填写在lambda函数里。

利用AWS搭建基金净值通知服务_第1张图片

lambda是Event-Based,需要Event来触发其运行。

Schedule event

我期望每日晚上8点开始运行我的函数,将触发器选成Schedule event, 设定cron表达式:cron(0/15 12-14 ? * MON-FRI *) 含义:每周1-5,从8点-10点(UTC+8),每15分钟触发lambda运行一次

利用AWS搭建基金净值通知服务_第2张图片

AWS SNS

lambda运行结果可以通过email/SMS通知给用户.

利用AWS搭建基金净值通知服务_第3张图片

最终流程

[Schedule Event] -> [lambda] -> [SNS] -> end-users 

你可能感兴趣的:(利用AWS搭建基金净值通知服务)