折騰Openwhisk - 本地環(huán)境添加alarms

openwhisk flow

第一塊絆腳石

本地ubuntu虛擬機上搭建了openwhisk環(huán)境(如何搭建戳這里)廷没,然而這新項目上來就給坑我……開始的helloworld執(zhí)行正常(這點小事讨惩,必須給力),探索一番后想嘗試些新的東西议谷,發(fā)現官方文檔中有alarm的包笆怠,本來想看看效果,我在本地環(huán)境執(zhí)行查看(這里我將本地的namespace切換到了whils.system下):

# wsk package list
packages
/whisk.system/watson-textToSpeech                                      shared
/whisk.system/websocket                                                shared
/whisk.system/weather                                                  shared
/whisk.system/watson-speechToText                                      shared
/whisk.system/watson-translator                                        shared
/whisk.system/slack                                                    shared
/whisk.system/github                                                   shared
/whisk.system/utils                                                    shared
/whisk.system/samples                                                  shared
/whisk.system/combinators                                              shared
/whisk.system/apimgmt                                                  private
/whisk.system/routemgmt                                                private

咦……alarm呢猪落?難道我的環(huán)境部署的有問題贞远?上wsk的slack和大神問了一下,才知道笨忌,目前本地環(huán)境不提供直接的alarm包蓝仲,我勒個去……這么個基礎的東西都不給,我自己搞吧:(
去github找到alarm的代碼官疲,弄下來看看:

# git clone https://github.com/apache/incubator-openwhisk-package-alarms.git

燃鵝……折騰了一陣子以后袱结,發(fā)現該死的README并木有告訴我該怎么安裝,一個alarm包竟然成我了的第一個絆腳石途凫,幾經輾轉垢夹,在github中的幾個issue和slack的交流中,zong于摸清了正確的姿勢维费。

敲黑板……劃重點啦果元,正確的部署alarm步驟:

  • 添加alarm action
  • 構建alarm service鏡像
  • 部署alarm service

添加alarm action

incubator-openwhisk-package-alarms項目中的腳本installCatalog.sh,從名字就可以看出來犀盟,它是將alarm的action添加到本地的whisk環(huán)境中的而晒,相當于把alarm的服務注冊到本地的環(huán)境當中:

...

if [ $# -eq 0 ]
then
echo "Usage: ./installCatalog.sh <authkey> <edgehost> <dburl> <dbprefix> <apihost>"
fi
...

腳本執(zhí)行的話需要5個參數,分別是上面那一串阅畴。
第一個參數倡怎,authkey是當前wsk環(huán)境的認證,通過命令wsk property get可以獲燃妗:

# wsk property get
client cert
client key
whisk auth              789c46b1-71f6-4ed5-8c54-816aa4f8c502:abczO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP
whisk API host          http://172.17.0.1:10001
whisk API version       v1
whisk namespace         whisk.system
whisk CLI version       2017-08-06T07:04:29+00:00
whisk API build         2017-09-03T06:48:49Z
whisk API build number  latest

也可以在incubator-openwhisk/ansible/files/auth.whisk.system這里看到监署,我這里用的是whisk.system的namespace,如果用guest纽哥,就查看相應的whisk.guest文件焦匈。
第二個參數是edgehost,不知道做什么的昵仅,猜測是最終action執(zhí)行節(jié)點?以后慢慢看,不過從項目中可以看到摔笤,我們這種才用單節(jié)點的本地部署够滑,edgehost跟apihost相同即可,不過這里的值不是上面命令獲取的url吕世,只用ip地址即可彰触,我的環(huán)境也就是172.17.0.1
第三個參數是dburl,也就是數據庫的url地址命辖,前面我們使用的是本地的couchdb數據庫况毅,地址為本機環(huán)境地址,端口一般默認是5984尔艇,根據自己部署時候的參數即可查到尔许,我這里是http://192.168.222.140:5984
第四個是dbprefix终娃,alarm服務啟動時會創(chuàng)建數據庫味廊,將這個參數作為前綴,所以隨意起名字吧:whisk_alarms棠耕。
第五個是apihost余佛,172.17.0.1
除此之外窍荧,還需要將openwhisk的所在路徑添加到OPENWHISK_HOME環(huán)境變量中辉巡。
將以上用到的變量寫到一起,方便以后使用:

# vim alarm.env
export API_HOST="172.17.0.1"
export DB_URL="http://192.168.222.140:5984"
export AUTH="789c46b1-71f6-4ed5-8c54-816aa4f8c502:abczO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP"
export DB_PREFIX="whisk_alarms"

下面執(zhí)行installCatalog.sh添加alarm action:

# export OPENWHISK_HOME="/root/incubator-openwhisk"
# source alarm.env
# ./installCatalog.sh $AUTH $API_HOST $DB_URL $DB_PREFIX $API_HOST
...
ok: updated package alarms
...
ok: updated action alarms/alarm
...
ok: updated package alarmsWeb
...
ok: updated action alarmsWeb/alarmWebAction

可以看到實際腳本安裝了兩個包 alarm 和alarmsWeb蕊退,并分別在每個包下面添加了action郊楣。
我們執(zhí)行wsk命令檢查環(huán)境中的package列表:

# wsk package list
packages
/whisk.system/alarmsWeb                                                private
/whisk.system/alarms                                                   shared
/whisk.system/watson-textToSpeech                                      shared
/whisk.system/websocket                                                shared
/whisk.system/weather                                                  shared
/whisk.system/watson-speechToText                                      shared
/whisk.system/watson-translator                                        shared
/whisk.system/slack                                                    shared
/whisk.system/github                                                   shared
/whisk.system/utils                                                    shared
/whisk.system/samples                                                  shared
/whisk.system/combinators                                              shared
/whisk.system/apimgmt                                                  private
/whisk.system/routemgmt                                                private

可以看到兩個包已經添加到環(huán)境中了。
執(zhí)行action list命令:

# wsk action list
actions
/whisk.system/alarmsWeb/alarmWebAction                                 private nodejs:6
/whisk.system/alarms/alarm                                             private nodejs:6
...

相應的action也添加到環(huán)境中咕痛,第一步完成痢甘。

構建alarm service鏡像

下一步進行構建alarm service的鏡像,和部署wsk環(huán)境時差不多茉贡,alarm的服務鏡像也是通過gradle來做的塞栅,incubator-openwhisk-package-alarms中已經有了gradlew腳本,直接開始構建:

# ./gradlew :distDocker
...
Sun Sep 03 14:52:25 UTC 2017: Executing 'docker tag catalog_alarms whisk/catalog_alarms:latest'
:pushImage SKIPPED

BUILD SUCCESSFUL
...

最終看到build successful就表示構建成功了腔丧,檢查當前環(huán)境的鏡像:

# docker images
...
whisk/catalog_alarms        latest              7d3ec656217a        About an hour ago   303.6 MB
...

有這個鏡像就表示ok了放椰。

部署alarm service

部署的話實際就是啟動上面構建好的alarm服務鏡像,簡單粗暴愉粤,上命令:

# docker run -it -d --name alarms -p 11001:8080 -v /var/log/wsklogs/alarmsTrigger:/logs \
-e PORT=8080 \
-e ROUTER_HOST=172.17.0.1 \
-e DB_PREFIX=$DB_PREFIX \
-e DB_USERNAME=openwhisk \
-e DB_PASSWORD=openwhisk \
-e DB_HOST=172.17.0.1:5984 \
-e DB_PROTOCOL=http whisk/catalog_alarms

容器正常啟動就沒有問題了砾医。

驗證

最終我是想看看alarm到底有沒有用啊...最基本的就是用alarm弄個定時任務,這里弄個5秒的吧:

# wsk trigger create every-5-seconds --feed /whisk.system/alarms/alarm --param cron '*/5 * * * * *'
ok: invoked /whisk.system/alarms/alarm with id eaac8ba6ad2b40de8ca267a820159a05
{
    "activationId": "eaac8ba6ad2b40de8ca267a820159a05",
    "annotations": [
        {
            "key": "limits",
            "value": {
                "logs": 10,
                "memory": 256,
                "timeout": 60000
            }
        },
        {
            "key": "path",
            "value": "whisk.system/alarms/alarm"
        }
    ],
    "duration": 2414,
    "end": 1504450667631,
    "logs": [],
    "name": "alarm",
    "namespace": "whisk.system",
    "publish": false,
    "response": {
        "result": {},
        "status": "success",
        "success": true
    },
    "start": 1504450665217,
    "subject": "whisk.system",
    "version": "0.0.11"
}
ok: created trigger every-5-seconds

提示創(chuàng)建成功后衣厘,超過5s以后如蚜,執(zhí)行命令:

# wsk activation list
activations
1e3d4ce403fb45af98f29351bb482b3a every-5-seconds     
e41729c73e8c4a3dbdd3b470dc75d8d8 every-5-seconds     
f6bed7cced464a13a3d4fcca86192732 every-5-seconds     
248649824cb4406ca46993fafa1b4cd5 every-5-seconds     

可以看到定時任務已經按時觸發(fā)執(zhí)行了压恒,到此第一個絆腳石搬走,又可以愉快的玩耍啦错邦。

碎覺先探赫。。撬呢。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末伦吠,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子魂拦,更是在濱河造成了極大的恐慌毛仪,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芯勘,死亡現場離奇詭異箱靴,居然都是意外死亡,警方通過查閱死者的電腦和手機借尿,發(fā)現死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門刨晴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人路翻,你說我怎么就攤上這事狈癞。” “怎么了茂契?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵蝶桶,是天一觀的道長。 經常有香客問我掉冶,道長真竖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任厌小,我火速辦了婚禮恢共,結果婚禮上,老公的妹妹穿的比我還像新娘璧亚。我一直安慰自己讨韭,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布癣蟋。 她就那樣靜靜地躺著透硝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疯搅。 梳的紋絲不亂的頭發(fā)上濒生,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音幔欧,去河邊找鬼罪治。 笑死丽声,一個胖子當著我的面吹牛,可吹牛的內容都是我干的规阀。 我是一名探鬼主播恒序,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谁撼!你這毒婦竟也來了?” 一聲冷哼從身側響起滋饲,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤厉碟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后屠缭,有當地人在樹林里發(fā)現了一具尸體箍鼓,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年呵曹,在試婚紗的時候發(fā)現自己被綠了款咖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡奄喂,死狀恐怖铐殃,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情跨新,我是刑警寧澤富腊,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站域帐,受9級特大地震影響赘被,放射性物質發(fā)生泄漏。R本人自食惡果不足惜肖揣,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一民假、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧龙优,春花似錦羊异、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓦糟,卻和暖如春筒愚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菩浙。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工巢掺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留句伶,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓陆淀,卻偏偏與公主長得像考余,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子轧苫,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理楚堤,服務發(fā)現,斷路器含懊,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • FaaS已經不算陌生的概念了身冬,AWS的lamda以后,其他各個廠商也都爭相推出自己的函數計算服務岔乔,微軟酥筝,阿里,騰訊...
    cheneydc閱讀 4,910評論 1 4
  • 片名:淚光閃閃 涙そうそう 導演:土井裕泰 編劇:吉田紀子 主演:妻夫木聰 / 長澤雅美 / 麻生久美子 / 小泉...
    抽屜電影閱讀 285評論 0 1
  • 我想織一張網 網住一切飛禽鳥雀 打落 再看天空明凈 叫微風吹得 冷了打顫 心卻也傷了 受傷的人最殘忍 因為他只在乎...
    先冷閱讀 209評論 1 0