0

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

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

有什么想法吗 ?

谢谢

戴夫

4

1 回答 1

1

适用于 JavaScript 的 AWS X-Ray 开发工具包将使用日志库将消息记录到文件中,但由于您在 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 开发工具包缓冲数据并将数据发送到 X-Ray。在 lambda 上,您目前不会拥有此功能,因为您不会让守护程序与您的 lambda 函数一起运行。这意味着目前您可以使用开发工具包手动构建分段/子分段,然后使用AWS 开发工具包将数据发送到后端。然而,这不是推荐的最佳实践,因为如果您发送大量段,守护程序会为您缓冲。如果您使用的是低级 SDK,您将不得不自己管理缓冲。

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

于 2017-02-14T02:02:12.273 回答