【问题标题】:AWS Cognito admin_get_user performance on large(r) scale大规模的 AWS Cognito admin_get_user 性能
【发布时间】:2019-04-30 10:26:03
【问题描述】:

我必须实现Pre Token Generation Lambda 才能将自定义属性添加到访问令牌中。自定义属性/值存储在 Cognito 用户池中每个用户的用户设置中,我可以使用 boto3 admin_get_user 函数检索它。

我的问题是,从性能的角度来看,调用 admin_get_user(或任何其他从 Cognito 加载数据的函数)是否是个好主意。 Cognito 在内部是否可以很好地扩展和处理大量请求?还是从其他地方检索自定义属性更好,因为 Cognito 可能不适合用于此类查找?

我的 Lambda 将在每次成功的身份验证时执行,更重要的是,在每 60 分钟发生的每次令牌刷新时执行(假设曾经颁发的访问令牌在最多 60 分钟后过期)

【问题讨论】:

  • 我认为您不会遇到 API 调用的性能问题,因为 Cognito API 调用来自 Amazon 内部 API 的请求数据。但是,您应该记住,API 调用有其自身的限制,您可能需要联系 AWS Support 以增加 admin-get-user 调用的限制。
  • @lightyagami 是的,我期待该函数使用 Cognito 的内部 API。但是“他们自己的限制”是什么意思?你是说最大吗?每小时/每天的电话等?我在哪里可以找到这些信息?我发现一般来说很难获得对 Cognito 的支持。我不认为他们(AWS)在 AWS 论坛上很活跃......
  • 有关 API 调用 limits 的更多信息,请参阅以下文档。

标签: amazon-web-services aws-lambda amazon-cognito


【解决方案1】:

我知道这个问题很老了。我最近遇到了同样的问题。所以只是添加一个答案来帮助别人。

AdminGetUser 记录的配额/限制是每分钟 5 个请求。您可以请求 AWS 提高限制。或者您可以配置 aws 客户端,您正在使用有一个退避策略和重试配置。

您可以在此处找到 api 调用的限制或配额:https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html

关于退避策略如何工作以及选择哪一个的有趣文章:https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

我会推荐https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/retry/PredefinedBackoffStrategies.FullJitterBackoffStrategy.html

更多信息请阅读https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2013-10-19
    • 1970-01-01
    相关资源
    最近更新 更多