如何在 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 控制台中配置日志记录。
坏消息是记录的事件似乎并没有表明验证失败。看起来,格式正确和格式错误的请求都以类似的方式记录下来。日志级别 INFO
与 ERROR
似乎没有帮助。
可能有一种方法可以查找日志模式(格式错误的请求不会调用解析器)来区分好请求和坏请求,但这似乎并不简单。也许你的运气会比我好!
一个请求的日志条目示例:
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 日志组?
具有 GraphQL 和 CognitoAuth 的用户数据存储设计模式 AWS AppSyn
如何在Ubuntu上设置AWS CloudWatch的代理以获取(正确的)自定义指标,例如cpu,内存和磁盘使用率%