第三方应用如何在SAP Kyma上进行服务注册
Jerry之前的公眾號文章 什么?在SAP中國研究院里還需要會PHP開發(fā)?提到了一個SAP Kyma的應(yīng)用場景:
旅行兼社交達(dá)人伊森,使用經(jīng)過SAP Kyma擴(kuò)展之后的WordPress這個網(wǎng)站來寫博客。伊森每次在WordPress上發(fā)表一篇博客之后,WordPress會暗地里向Kyma實(shí)例發(fā)送一個“博客創(chuàng)建”的事件,并且把創(chuàng)建好的博客內(nèi)容作為事件參數(shù)傳遞給Kyma。部署在后者上的事件響應(yīng)函數(shù),調(diào)用各大社交媒體平臺的create API進(jìn)行對應(yīng)帖子的創(chuàng)建。這樣伊森輕松地實(shí)現(xiàn)了文章的“一次發(fā)布,各大平臺開花”的目的。
從本文開始,Jerry會逐一介紹這個擴(kuò)展場景的技術(shù)實(shí)現(xiàn)步驟。該擴(kuò)展場景的實(shí)現(xiàn)原理和使用SAP Kyma對SAP C/4HANA進(jìn)行擴(kuò)展的機(jī)制是一樣的。比如把WordPress的博客發(fā)布事件想象成C/4HANA Service Cloud里一個服務(wù)訂單的創(chuàng)建事件,我們可以根據(jù)自己實(shí)際業(yè)務(wù)需求在Kyma上編寫對應(yīng)的事件處理函數(shù)。
在之前的文章 什么?在SAP中國研究院里還需要會PHP開發(fā)?里Jerry已經(jīng)介紹了如何安裝WordPress的Kyma插件。需要強(qiáng)調(diào)的是,如果用Kyma對C/4HANA進(jìn)行擴(kuò)展,那么后者針對Kyma的插件同WordPress針對Kyma的插件一樣,是由SAP負(fù)責(zé)提供和維護(hù)的,大家即使不了解Jerry本文介紹的這些細(xì)節(jié),一樣能很好的完成擴(kuò)展開發(fā)工作。
本文主要介紹如何在WordPress和Kyma實(shí)例間建立互相信任的連接,并且將WordPress指定的事件發(fā)布到Kyma上去。
WordPress的Kyma插件安裝完畢后,在設(shè)置選項里,能看到對應(yīng)Kyma連接的維護(hù)界面。
這里最重要的字段是需要維護(hù)一個指向Kyma Application Connector服務(wù)的url,即下圖的字段“Kyma Connection”.
注冊完畢后,在WordPress的Kyma插件界面里維護(hù)的這些事件,就會出現(xiàn)在Kyma service catalog(服務(wù)目錄)界面里。通過這種事件注冊機(jī)制,避免了WordPress和Kyma的緊耦合關(guān)系:工作于Kyma之上的擴(kuò)展開發(fā)人員即使對WordPress的技術(shù)細(xì)節(jié)完全不了解,也絲毫不影響其擴(kuò)展開發(fā)工作:只需要在Kyma的服務(wù)目錄里,找到WordPress暴露出來的事件,用自己喜歡的編程語言開發(fā)對應(yīng)的事件響應(yīng)函數(shù)即可。
回到WordPress的Kyma維護(hù)界面里的Kyma Connection字段,到底需要維護(hù)什么樣的url?
在Kyma里創(chuàng)建一個新的應(yīng)用,點(diǎn)擊Connection Application這個按鈕,彈出來的這個對話框里的url即是我們要找的url.
在我們把url復(fù)制到WordPress的Kyma插件里之前,我們可以先在瀏覽器里訪問這個url,看看會返回什么內(nèi)容:
這個JSON響應(yīng)的第一個字段csrUrl(Certificate Signing Request)和最后一個字段certificate,包含的信息用來生成用于在WordPress和kyma之間建立SSL連接所必需的數(shù)字證書。而api結(jié)構(gòu)的幾個字段則是Kyma Service Catalog注冊的endpoint.
我們把這個url復(fù)制到WordPress的Kyma插件里,點(diǎn)擊Connect按鈕,即可發(fā)起指向Kyma實(shí)例的連接。
我們以調(diào)試模式啟動本地WordPress,點(diǎn)擊Connect按鈕,
設(shè)置在class-connector.php的connect函數(shù)內(nèi)的斷點(diǎn)即觸發(fā)。這個函數(shù)負(fù)責(zé)向傳入的url發(fā)起HTTP GET請求,解析出Kyma返回的CSR url和Kyma服務(wù)目錄的endpoint,然后再分別發(fā)起不同的HTTP post請求,去拿到Kyma返回的數(shù)字證書以及將WordPress的指定事件注冊到Kyma上去。
第73行的變量$body_json->csrUrl維護(hù)的是Kyma的Certificate Signning Request url,第75行向這個url發(fā)送一個post請求,拿到響應(yīng):
解析響應(yīng)里包含的certificate信息,存儲成對應(yīng)的本地文件: 接下來和Kyma實(shí)例的交互,需要使用到這些存儲在WordPress本地的數(shù)字證書文件: 而需要注冊到Kyma上的WordPress事件,又是采用何種格式發(fā)送到Kyma的呢? 瀏覽器里訪問url:<安裝WordPress的主機(jī)名>/index.php/wp-json, 即可得到所有API列表: WordPress的Kyma插件會根據(jù)用戶在插件界面維護(hù)的待注冊事件,拼裝成對應(yīng)的JSON字符串然后通過HTTP post發(fā)給Kyma:注冊成功后,在Kyma控制臺的應(yīng)用界面的服務(wù)和事件列表里,就能看到WordPress的對應(yīng)記錄了:
同時在Kyma的服務(wù)目錄里,出現(xiàn)了Jerry之前在WordPress的Kyma插件界面里維護(hù)的WordPress connector名稱和描述信息:
Jerry在進(jìn)行本文介紹的WordPress同Kyma建立連接的實(shí)際操作時,得到了我的同事,SAP成都研究院C4C團(tuán)隊開發(fā)人員Li Sherry的大力支持和幫助,這里表示感謝。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的第三方应用如何在SAP Kyma上进行服务注册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真人快打11终结技怎么放?全角色终结技出
- 下一篇: 华为mate30pro售价是多少 华为m