2017-02-13 83 views
0
處打開'AWSXRay.log'

我們正在根據XRay入門測試AWS XRay的基本nodejs配置,但是會引發錯誤。它是一個虛擬快速應用程序,節點4.3上的Lambda,因此應該可以工作。該錯誤是AWS X射線在錯誤

錯誤:EROFS:只讀文件系統,打開 'AWSXRay.log' 的錯誤(本機)

有什麼想法?

感謝

戴夫

回答

1

AWS X射線SDK JavaScript的使用日誌庫將記錄消息記錄到文件,但因爲你是在λ運行,你真的沒有訪問權限創建文件在文件系統上。

目前AWS X-Ray在Lambda上不受支持,但將來會得到支持。

作爲臨時解決辦法,你可以嘗試使用這樣的重寫記錄在您的lambda函數:

var logger = require('aws-xray-sdk/lib/logger'); 
logger.error = function(string) { console.error(string); }; 
logger.info = function(string) { console.info(string); }; 
logger.warn = function(string) { console.warn(string); }; 

你可以嘗試用此解決方法嗎?

除了檢測應用程序代碼之外,還需要將段/子段發送到X-Ray後端。在lambda之外,你通常會在你的機器上運行xray守護進程,並且SDK將通過UDP發送段到localhost。守護進程會使用AWS SDK緩衝並將數據發送到X-Ray。在lambda上,你目前不會擁有這個工具,因爲你不會有一個守護進程和你的lambda函數一起運行。這意味着您目前可以使用SDK手動構建分段/子分段,然後使用AWS SDK將數據發送到後端。然而,這不是建議的最佳實踐,因爲如果您發送大量段,守護程序會爲您緩衝。如果您使用低級別的SDK,則必須自行管理緩衝區。

您可以使用上述解決方法並查看它是否適用於您。推薦的方法是等待Lambda與AWS X-Ray的集成。

+0

感謝您的詳細解答,我錯誤地認爲X-Ray在Lambda中得到了支持,所以真的很期待何時支持被添加以及API網關支持。謝謝您的幫助 –