【问题标题】:Authentication with Cognito - where to find logs使用 Cognito 进行身份验证 - 在哪里可以找到日志
【发布时间】:2018-08-18 19:19:20
【问题描述】:

我们有 2 个 React Native 应用程序正在使用 AWS Cognito 进行身份验证。我们在代码中使用库 react-native-aws-cognito-js。这些应用程序在这 2 天内运行良好。应用遇到间歇性“内部服务器错误”。

如何找到有关此错误的更多信息?有什么工具可以帮我们查明原因吗?

更新

在 CloudTrail 中,每个 API 调用都有一个事件“CreateNetworkInterface”。许多此类 API 调用都有错误代码“Client.NetworkInterfaceLimitExceeded”。这是什么原因和解决方法?

根据this AWS Doc (in Chinese),当IP/ENI不足导致错误时,CloudWatch不会写入日志。这解释了错误数量增加但 CloudWatch 中没有日志的原因。

更新 2

我们发现了一个可能耗尽 IP 地址的计划 Lambda 作业。我们停止了批处理作业。但是由于“Client.NetworkInterfaceLimitExceeded”错误,仍然不能有太多用户登录到服务器。我意识到有很多“CreateNetworkInterface”事件和很少的“DeleteNetworkInterface”事件。如何“清理/重置”VPC 中的所有网络接口?

【问题讨论】:

  • Internal Server Error 意味着有一个服务返回 http 500。但是它取决于应用程序来显示哪个服务。不能调试应用吗?
  • CloudWatch 在图表中显示错误计数。但它也没有显示任何登录 cloudwatch。当 Prod 服务器发生错误时,Dev 服务器正常。

标签: amazon-web-services react-native aws-cognito


【解决方案1】:

简答Cloud Trail

带建议的长答案

假设您的应用程序代码正常,您的 500 错误的原因很可能是基于 Cognito 的初始限制(例如,每个用户的调用次数):https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html

AWS 建议使用 Cloud Trail 来记录 Api 调用。 但是我建议,首先证明限制,在 api 调用周围添加一些日志,在开发中你可以调用你的应用程序/api 进行大量调用;由于限制,您很可能会看到 500 错误。 您可以在终端中执行以下操作:

for i in `seq 1 1000`; do curl --cookie SecureCookie=TokenValueFromAWS http://localhost:desirablePort/SecuredPath; done

【讨论】:

  • 我已经尝试在 CloudTrail 中查找 Cognito 日志几个小时了,但我没有看到任何日志。我是否需要在特定区域或在 Cognito 中启用某些功能?
  • 看起来您只能在以下区域使用 CloudTrail 监控 Cognito:亚太地区(东京)、欧洲(爱尔兰)和美国东部(弗吉尼亚北部)。如果您在其他地方有现有的用户池,那么您现在很不走运。
  • 这个有更新吗?我在美国西部(俄勒冈)地区设置了我的用户池。我的用户正在比较无法登录。有什么方法可以检查任何日志以查看发生了什么?
猜你喜欢
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-27
相关资源
最近更新 更多