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