Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aws lambda Aws Lambda-如何持久化有效令牌以与其他调用一起使用_Aws Lambda_Aws Api Gateway - Fatal编程技术网

Aws lambda Aws Lambda-如何持久化有效令牌以与其他调用一起使用

Aws lambda Aws Lambda-如何持久化有效令牌以与其他调用一起使用,aws-lambda,aws-api-gateway,Aws Lambda,Aws Api Gateway,我已经使用cognito身份验证设置了api网关,但是需要将一些请求传递给另一个rest服务,该服务具有自己的身份验证,您需要提供clientID和secret来接收有效数小时的承载令牌 我不需要对请求进行任何更改,只需添加令牌并将其传递给rest服务,然后接收答案并将其传递给客户端 由于令牌的有效期为几个小时,我不想在每次请求时都请求令牌以节省时间 在哪里可以保留有效令牌?Api网关还是lambda函数?据我所知,Lambda函数是无状态的,没有存储空间 感谢在lambda引导期间获取令牌,将

我已经使用cognito身份验证设置了api网关,但是需要将一些请求传递给另一个rest服务,该服务具有自己的身份验证,您需要提供clientID和secret来接收有效数小时的承载令牌

我不需要对请求进行任何更改,只需添加令牌并将其传递给rest服务,然后接收答案并将其传递给客户端

由于令牌的有效期为几个小时,我不想在每次请求时都请求令牌以节省时间

在哪里可以保留有效令牌?Api网关还是lambda函数?据我所知,Lambda函数是无状态的,没有存储空间


感谢

在lambda引导期间获取令牌,将其作为安全字符串写入参数存储,在需要时从参数存储获取令牌,或将其保存在内存中(取决于您希望lambda运行的频率)?,当令牌过期且您的应用程序仍在运行时,只需重新调用该方法并将其再次写入参数存储

有多种方法可以实现这一点。我给你两个建议,我认为对你的情况有意义:

在Lambda实例中缓存密钥

可以在Lambda函数中缓存数据。这通常发生在Lambda处理程序函数之外的代码中(例如,对于Node.js,在调用处理程序函数之前,将初始化处理程序函数之外的所有内容)

是的,Lambda函数应该是无状态的,这是正确的。但是,正在重用函数实例。因此,如果您确定Lambda函数仅用于这一目的(即缓存此类密钥是安全的),并且您可以使用相同的密钥调用外部端点一段时间,则可以通过缓存它来调整性能,并且只在其过期时更新它。这样,您需要在第一次调用时检索密钥,并且只在同一函数实例的每一次其他调用中读取密钥。(或者,如果您不信任此缓存机制,请将数据存储在
/tmp
中的文件中)我不久前编写了一篇文章,详细解释了此方法。如果你有问题,请告诉我

优点:在代码中缓存相对容易

将密钥存储在机密管理器中

不必在同一个Lambda函数中检索和缓存密钥,您可以将其“外包”给。这意味着,您可以在Secrets Manager中添加一个新的密钥/机密,并在其过期前每隔几小时附加一个。然后,在最初的Lambda函数中,您只需从Secrets Manager检索密钥。为了优化Lambda的成本和性能,我仍然建议将密钥缓存一段时间,如上所述


优势:分离关注点。

非常感谢。从Secrets Manager检索也会让我在响应客户端请求时浪费时间?是的,但这并不比您拥有的另一个选项更糟糕:通过向第三方服务发出请求在第一次Lambda调用中生成密钥,或者在第一次Lambda调用中从Secrets Manager检索密钥。两者都需要至少一个网络请求。谢谢!祝你平安,圣诞快乐!谢谢,你也一样!