【AGC】構建服務1-雲函數示例
- 2022 年 8 月 4 日
- 筆記
- AGC, AppGallery Connect
前言:上一次筆者給大家帶來了AGC領域的遠程配置服務的學習。這次我們再繼續深化學習AGC的相關知識。在文章開始之前,再給讀者簡單介紹一下AGC,以免第一次來的讀者不了解。所謂AGC就是AppGallery Connect的簡稱,為用戶的應用進行創意、開發、分發、運營、經營各環節提供一站式服務,說的通俗一點,就是給用戶在華為應用市場上架運營應用提供全面的服務。
全部的AGC相關的知識分為兩大類,一大類即上架相關,這個可以參考鏈接://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-overview-0000001100246618。裡面提供了像是應用測試、應用發布、應用管理、應用維護等應用市場相關的內容。另一大類則是為開發者提供了各種幫助Kit,這個可以參考鏈接://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-introduction-0000001057492641。裡面提供了像是雲存儲、A/B測試、品質分析、華為雲等Kit,為開發者提供額外的幫助,輔助開發者更好的完成應用上架、提高應用品質、增加用戶粘性等。
由於AGC全部的內容太多了,所以每一次的學習我們盡量講其中一點,講的詳細一點,當然也會看情況,如果有些章節的內容較少也會包含在一起講。這一次我們來學習構建服務的雲函數的功能。這個功能是一項Serverless計算服務,提供FaaS(Function as a Service)能力,一方面雲函數將開發測試的對象聚焦到函數級別,大幅簡化應用開發與運維相關的事務,另一方面在應用中集成雲函數SDK,便捷操作雲資料庫、雲存儲等,提升業務功能構建的便利性。
遠程配置服務的主要功能有:1、簡化開發與運維,提供了高效可靠的函數開發與運行框架,替開發者完全解決傳統應用開發與運維中的諸多複雜事務(如伺服器配置與管理、程式碼部署、負載均衡、彈性伸縮、高可用保證等等),您只需聚焦業務邏輯、開發並上傳函數程式碼,即可構建高可用、可伸縮的Serverless應用。2、擴展周邊服務,雲函數作為Serverless的核心與樞紐,支援方便連接和擴展周邊雲服務能力,可以像拼搭積木一樣自由便捷地組織各項服務來實現業務邏輯。
雲函數服務的工作原理是,使用雲函數服務,需要先在AppGallery Connect(簡稱AGC)上開發能夠實現某些業務功能的雲函數,並為函數添加觸發其運行的觸發器,比如在發起HTTP請求時觸發運行的HTTP觸發器、集成雲資料庫服務後進行刪除或者插入數據操作時觸發運行的雲資料庫觸發器等。客戶端集成雲函數SDK並滿足函數觸發器的觸發條件後,便可以實現雲函數的調用,極大地便利了業務功能的構建。
接下來就跟著筆者的腳步來完成一個簡單應用的雲函數服務。因為此處只是演示用,所以部分內容進行了簡化,並且筆者這裡只用了Android作為演示,雲函數服務還可以支援其他平台,讀者可以自行探索。
- 集成SDK。
1)在AGC網站的我的項目中選擇需要啟用雲函數的應用,點擊增長->雲函數,進入雲函數服務頁面,立即開通服務。
2)登錄AGC網站,點擊我的項目,在項目設置的應用欄下,下載配置文件”agconnect-services.json”。將配置文件複製到應用級根目錄下。
3)添加AGC插件,在Android Studio項目級build.gradle文件中添加maven倉地址和HUAWEI agc插件。
4)打開Android Studio應用級build.gradle文件,添加添加agcp插件配置和agc-remoteconfig編譯依賴。
5)點擊介面上的”Sync Now”鏈接同步已完成的配置。
- 配置雲函數。
1)創建雲函數,開通雲函數服務後,在雲函數介面,點擊”+創建雲函數”。在創建介面中,定義函數,屬性資訊默認即可。在handler.js文件的程式碼輸入框中輸入以下程式碼。
2)測試函數,點擊函數詳情介面上面的”測試函數”按鈕。在測試參數中添加如下程式碼,查看執行結果是否正確。
3)添加觸發器,點擊”配置”頁簽下的”添加觸發器”,顯示觸發器創建介面,在”配置觸發器”區域配置”觸發器類型”等資訊。完成後點擊”添加”並點擊”保存”。將”詳細資訊”中的”觸發URL”的後綴保存,作為後續客戶端請求時的觸發器標識。
- 介面設計。
1)在頁面布局中添加一個textview用來輸出結果,一個EditText用來輸入年份和一個Button用於獲取雲函數調用。
2)具體頁面程式碼如下:
- 雲函數開發。
1)添加是否輸入合法的方法。
2)在應用啟動的onCreate方法中獲取控制項實例並設置按鈕的點擊事件,獲取輸入框的輸入值進行判空,進行合法性校驗。
3)初始化雲函數服務,生成雲函數所需要的事件的map對象。調用雲函數SDK中的wrap方法指定觸發器,這裡的wrap方法中配置的參數,值為在AGC上查詢並獲取的觸發器標識。call方法傳入事件的map作為參數,發送請求並使用雲函數進行計算,並且添加請求的回調接受雲函數的返回結果顯示到Textview中。
- 打包測試。
1)用手機打開應用,這裡筆者使用的是華為AGC提供的雲手機調試功能。
打開AGC網站,在我的項目-品質-雲調試中,選擇一部手機開始測試。
2)將打包的apk上傳,我這邊已經上傳好了,雲調試手機會自動安裝,沒有自動安裝可以手機點擊安裝。
3)點擊運行應用程式,查看初始化後的頁面。
4)在輸入框中輸入2020,點擊”cloudFuntion”按鈕,歡迎語的文字內容發生變化,出現了對應年份的生肖。
以上,本次的內容分享,謝謝!
參考原文鏈接:
//developer.huawei.com/consumer/cn/codelab/CloudFunctions/index.html#4
欲了解更多更全技術文章,歡迎訪問//developer.huawei.com/consumer/cn/forum/?ha_source=zzh