aws-lambda - Amazon Cloudwatch JSON 格式不正确
问题描述
我在我的 Alexa 技能的 Lambda 函数中记录亚马逊技能请求和回复。这些是我正在记录的 JSON 对象,如下所示:
logger.debug('Incoming request:\n' + JSON.stringify(event, null, 2));
logger.debug('Final response:\n' + JSON.stringify(alexaResponse, null, 2) + '\n\n');
在使用 Expand all = Row 查看 Cloudwatch 中的日志时,我看到:
我设置Expand all为Text的时候效果稍微好一些,但是前导空格被剪掉了,导致JSON文档的缩进结构丢失了。
我从教程中得到了这段代码。Amazon Cloudwatch 中的更改可能导致本教程中的代码现在失败。
在本教程中,输出如下所示:
这就是我想要的日志输出。我如何得到它?
解决方案
我的 cloudwatch 日志会根据需要自动显示 JSON 字符串,而无需使用 JSON.stringify() 的可选第二个和第三个参数
因此,请尝试从日志语句的 JSON.stringify 中删除 null 和 2。
logger.debug('Incoming request: \n' + JSON.stringify(event));
logger.debug('Final response: \n '+ JSON.stringify(alexaResponse));
我不在我的电脑上进行测试,但我认为新行 (\n) 应该在 cloudwatch 中为您提供所需的效果,将 json 放在您可以扩展的自己的行中。它是让 cloudwatch 在 JSON 中设置新行的额外空白。
推荐阅读
- python - 如何为类添加属性
- css - scss或css,当它是焦点时如何旋转箭头图像
- ssh - 如何通过 SSH 隧道访问从本地 macbook 到远程 Windows 服务器
- arrays - react native flatlist hooks - 使用对象数组渲染项目
- microsoft-graph-api - 如何使用 Microsoft Graph 将收件人添加到日历事件
- postgresql - 是否可以在 Postgres 索引中混合 btree 和 gist ?
- c++ - 在 C++ 中使用 cublasSgemm 进行矩阵乘法
- firebase - Firebase-Firestore 结构
- android - 按位运算 - Android 数据绑定
- plsql - 面临变异表问题