AWS X射线在错误时打开'AWSXRay.log'

时间:2017-02-13 14:29:19

标签: amazon-web-services amazon aws-xray

我们正在根据XRay开始使用基本nodejs配置测试AWS XRay,但是会引发错误。它是一个虚拟快递应用程序,节点4.3上的Lambda,所以应该工作。错误是

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

有什么想法吗?

由于

戴夫

1 个答案:

答案 0 :(得分:1)

AWS X-Ray SDK for JavaScript会使用日志库将消息记录到文件中,但由于您在Lambda上运行,因此您无法真正访问文件系统上的文件。

目前,Lambda不支持AWS X-Ray,但将来会支持它。

作为临时解决方法,您可以尝试使用以下内容覆盖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,则必须自行管理缓冲。

您可以使用上述解决方法,看看它是否适合您。建议的方法是等待与AWS X-Ray的Lambda集成。