如何在 cloudwatch 上跟踪 appsync 验证错误?

Posted

技术标签:

【中文标题】如何在 cloudwatch 上跟踪 appsync 验证错误?【英文标题】:How to keep track of appsync validation errors on cloudwatch? 【发布时间】:2022-01-20 11:05:45 【问题描述】:

我在 appsync 上有自定义解析器,由 lambda 函数处理,我可以通过使用 cloudwatch 并根据这些日志创建警报来跟踪 lambda 函数创建的错误日志。但是,当客户端应用程序尝试请求 graphql 架构中不存在的字段时(见下图),lambda 运行良好,因此没有创建任何错误日志,我如何使用 cloudwatch 跟踪这些类型的错误?

【问题讨论】:

【参考方案1】:

好消息是您可以打开AppSync request logging 以在 CloudWatch 中获取请求级日志。使用 Cloudformation/CDK LogConfig 或直接在 AppSync 控制台中配置日志记录。

坏消息是记录的事件似乎并没有表明验证失败。看起来,格式正确和格式错误的请求都以类似的方式记录下来。日志级别 INFOERROR 似乎没有帮助。

可能有一种方法可以查找日志模式(格式错误的请求不会调用解析器)来区分好请求和坏请求,但这似乎并不简单。也许你的运气会比我好!

一个请求的日志条目示例:

Begin Request
GraphQL Query: query Labels  labelStats(topic: "cars")  name objects __typename   , Operation: Labels,...
"duration":201275210,"logType":"ExecutionSummary","requestId":"4f49d425-18ab-4be7-a40e-0229c17453dc","startTime":"2021-12-17T16:36:30.925216Z","e...
"logType":"RequestSummary","requestId":"4f49d425-18ab-4be7-a40e-0229c17453dc","graphQLAPIId":"xxxxxxxxxx","statusCode":200,"lat...
Request Headers: content-length=[148], cloudfront-viewer-country=[US], x-forwarded-proto=[https], x-amzn-r...
Response Headers: Content-Type=application/json; charset=UTF-8
End Request

【讨论】:

以上是关于如何在 cloudwatch 上跟踪 appsync 验证错误?的主要内容,如果未能解决你的问题,请参考以下文章

启用 S3 存储桶对象级别事件到 CloudTrail 跟踪并将对象级别事件转发到 terraform 中的 CloudWatch 日志组?

如何在墙屏上显示 CloudWatch 仪表板

具有 GraphQL 和 CognitoAuth 的用户数据存储设计模式 AWS AppSyn

如何在Ubuntu上设置AWS CloudWatch的代理以获取(正确的)自定义指标,例如cpu,内存和磁盘使用率%

如何将定制的ec2 监控报表放到 aws cloudwatch 上

Elastic Beanstalk CloudWatch 日志流停止工作 – 如何调试