WordPress,SAP Kyma和微信三者的集成
我們來(lái)繼續(xù)學(xué)習(xí)如何在實(shí)戰(zhàn)中使用SAP Kyma.
Jerry在之前的文章里,分別介紹了如何本地搭建WordPress實(shí)例:
什么?在SAP中國(guó)研究院里還需要會(huì)PHP開(kāi)發(fā)?
以及如何把這個(gè)本地搭建的WordPress實(shí)例上的某些事件,發(fā)布到SAP Kyma上:
第三方應(yīng)用如何在SAP Kyma上進(jìn)行服務(wù)注冊(cè)
本文繼續(xù)這個(gè)集成場(chǎng)景的介紹,并完成最后一步:在SAP Kyma上編寫(xiě)Lambda函數(shù),以響應(yīng)從WordPress發(fā)送到Kyma的事件。響應(yīng)函數(shù)的邏輯,出于演示目的,Jerry簡(jiǎn)單地選擇在Kyma上調(diào)用微信API,把WordPress上發(fā)表的博客內(nèi)容,直接轉(zhuǎn)發(fā)給某個(gè)硬編碼的微信用戶,即Jerry自己的微信。
在按照前兩篇文章的步驟做了之后,我們?cè)赟AP Kyma的服務(wù)目錄(Service Catalog)下能看到從本地WordPress導(dǎo)入的服務(wù)(包含暴露的事件和API),大家可以把這個(gè)服務(wù)目錄簡(jiǎn)單類比成SAP云平臺(tái)的Service Market Place.
接下來(lái),SAP Kyma上的擴(kuò)展開(kāi)發(fā)人員,就可以基于這個(gè)服務(wù)開(kāi)始工作了。
點(diǎn)擊Add once,創(chuàng)建一個(gè)新的WordPress服務(wù)實(shí)例:
然后創(chuàng)建一個(gè)新的Lambda函數(shù):
Lambda函數(shù)的實(shí)現(xiàn)類型選擇nodejs,
觸發(fā)方式選擇成event trigger-事件觸發(fā),具體的觸發(fā)事件選擇從WordPress導(dǎo)入的post.published, 即文章發(fā)布事件。
也就是說(shuō),當(dāng)WordPress里有新的博客發(fā)布時(shí),WordPress會(huì)觸發(fā)post.published事件,增強(qiáng)后的WordPress插件會(huì)把這個(gè)事件,連同發(fā)布的博客內(nèi)容作為參數(shù)一起傳遞給Kyma,而Kyma會(huì)調(diào)用上述創(chuàng)建的監(jiān)聽(tīng)在post.published事件上的Lambda函數(shù),后者實(shí)際上就是觀察者-發(fā)布者設(shè)計(jì)模式里的觀察者。
接下來(lái)在Lambda函數(shù)里的開(kāi)發(fā)就是純粹的nodejs編程工作了,使用nodejs提供的axios庫(kù),將WordPress傳遞給Kyma的博客內(nèi)容從事件參數(shù)event里解析出來(lái),調(diào)用微信接口發(fā)送給指定的微信用戶。
Dependencies區(qū)域的作用,就相當(dāng)于nodejs項(xiàng)目的package.json, 用于定義nodejs代碼執(zhí)行所需的各種外部依賴。
最后一步,就是創(chuàng)建一個(gè)Service Binding,把Lambda函數(shù)同之前創(chuàng)建的WordPress服務(wù)實(shí)例綁定起來(lái)。
這個(gè)操作和SAP云平臺(tái)CloudFoundry環(huán)境里的服務(wù)配置做法是一致的,所以有過(guò)SAP Cloud Platform開(kāi)發(fā)經(jīng)驗(yàn)的程序員,對(duì)SAP Kyma上這些配置能夠很容易上手。
至此,所有的開(kāi)發(fā)和配置工作都結(jié)束了。
最后來(lái)做個(gè)測(cè)試。Jerry最近看了Craig Mazin執(zhí)筆,Johan Renck執(zhí)導(dǎo),由HBO/Sky合拍的迷你劇《切爾諾貝利》,深感人類在核危機(jī)爆發(fā)后的渺小和無(wú)力。
在WordPress上發(fā)布一篇博客:
謊言的代價(jià)是什么?
并非是我們會(huì)把謊言誤認(rèn)為真相,
真正危險(xiǎn)的是,
我們聽(tīng)多了謊言,便不能分辨出真相
單步調(diào)試WordPress,發(fā)現(xiàn)發(fā)布博客的內(nèi)容被發(fā)送到了指向Kyma事件處理的這個(gè)url:
回到Kyma的Lambda界面,點(diǎn)擊Show Logs查看日志,能發(fā)現(xiàn)WordPress發(fā)布的事件成功被Kyma的Lambda函數(shù)接收到了:
最后Jerry的微信號(hào)收到了這條在WordPress上首發(fā),經(jīng)Kyma中轉(zhuǎn)的,關(guān)于《切爾諾貝利》觀后感的博客:
下面是這個(gè)集成效果的演示視頻:
可以持續(xù)關(guān)注本公眾號(hào),獲得SAP Kyma的更多使用案例分享,感謝閱讀。
這個(gè)場(chǎng)景用的到增強(qiáng)的WordPress源代碼,以及WordPress的Kyma插件源代碼,可以從Jerry的github上獲得:
https://github.com/i042416/Wordpress
更多閱讀
- 站在巨人肩膀上的牛頓:Kubernetes和SAP Kyma
- 高射炮打蚊子,殺雞用絕世好劍:在SAP Kyma上運(yùn)行UI5應(yīng)用
- 什么?在SAP中國(guó)研究院里還需要會(huì)PHP開(kāi)發(fā)?
- 第三方應(yīng)用如何在SAP Kyma上進(jìn)行服務(wù)注冊(cè)
- 基于SAP Kyma的訂單編排增強(qiáng)介紹
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的WordPress,SAP Kyma和微信三者的集成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 空调除湿功能跟制冷一样吗(如何选择空调)
- 下一篇: 传送门骑士蠕虫怎么打