AWS X射线在错误

AWS X射线在错误

问题描述:

处打开'AWSXRay.log'

我们正在根据XRay入门测试AWS XRay的基本nodejs配置,但是会引发错误。它是一个虚拟快速应用程序,节点4.3上的Lambda,因此应该可以工作。该错误是AWS X射线在错误

错误:EROFS:只读文件系统,打开 'AWSXRay.log' 的错误(本机)

有什么想法?

感谢

戴夫

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网关支持。谢谢您的帮助 –