【問題描述】
開發者希望在雲函數代碼中調用別的雲函數,於是參考官方文檔,編寫Node.js的函數代碼,導入到AGC控制檯進行測試,返回結果總是會報下面這個錯誤。
{ "code": 180000, "message": "Call handler error: 10602: agc client name already exist" }
開發者的函數代碼如下:
【問題分析】
出現10602的錯誤一般是因爲AGCClient在Node.js中初始化一次後不會清除緩存,在後續測試時會出現重複初始化的情況便會報AGCClient已存在的錯誤,所以在初始化前做個判斷,如果存在AGCClient實例便不再初始化。做了判斷後該代碼還存在另外幾個問題,也在下圖標註了出來:
【解決方案】
如果要在雲函數中調用雲函數,需要注意以下幾點:
1.測試函數時AGCClient實例需要判斷是否已經存在,不存在則初始化。
2.var agcFunction = new AGCFunction(); 這個類傳參應該是個字符串,或者爲空,不能傳agcClient對象
3.call()需要異步。
改進後的函數代碼如下:
欲瞭解更多更全技術文章,歡迎訪問https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh