我应该在每个请求或应用程序启动时实例化一个对象吗?

时间:2015-06-12 19:46:45

标签: ruby amazon-web-services amazon-s3 rack aws-sdk

在我的Rack应用中,我需要使用AWS Cognito Client进行注册&登录请求。

我应该初始化:

  1. 为每个请求单独的客户端(分配给call方法中的局部变量)?
  2. 所有请求中的一个客户端(分配给call方法之外的全局变量)?
  3. 关注:

    1. 速度&清理:初始化时间快吗?客户端是否在每个请求结束时自动销毁?我研究了源代码,但没有掌握元编程。
    2. 线程安全:此选项是否安全?我让Puma配置为使用多个线程。

1 个答案:

答案 0 :(得分:1)

当您委托最终用户获取凭据并自行调用AWS时,Cognito最有用,因此在服务器端通常不需要Cognito。

编辑:如果您要实施开发人员身份验证身份,那么使用Cognito服务客户端绝对有意义,因此您可以调用 GetOpenIdTokenForDeveloperIdentity 。从多线程环境中这样做是安全的,因为在该调用的调用之间根本没有保存任何状态。

相关问题