【问题标题】:Lambda Invoking Lambda Causes InvalidSignatureExceptionLambda 调用 Lambda 导致 InvalidSignatureException
【发布时间】:2021-10-26 01:17:39
【问题描述】:

我目前正在使用 lambdas 在 AWS 中开发一个微服务。有时,当接收者 lambda 然后调用另一个 lambda 时,从一个到另一个的 lambda 调用将失败。错误如下:

errorMessage    
Signature expired: 20210825T214414Z is now earlier than 20210825T214616Z (20210825T215116Z - 5 min.)
errorType   
InvalidSignatureException
name    
InvalidSignatureException
stack.0 
InvalidSignatureException: Signature expired: 20210825T214414Z is now earlier than 20210825T214616Z (20210825T215116Z - 5 min.)
stack.1 
at deserializeAws_restJson1InvokeCommandError (/var/task/node_modules/@aws-sdk/client-lambda/dist/cjs/protocols/Aws_restJson1.js:5106:41)
stack.2 
at runMicrotasks (<anonymous>)
stack.3 
at processTicksAndRejections (internal/process/task_queues.js:95:5)
stack.4 
at async /var/task/node_modules/@aws-sdk/middleware-serde/dist/cjs/deserializerMiddleware.js:6:20
stack.5 
at async /var/task/node_modules/@aws-sdk/middleware-signing/dist/cjs/middleware.js:12:24
stack.6 
at async StandardRetryStrategy.retry (/var/task/node_modules/@aws-sdk/middleware-retry/dist/cjs/StandardRetryStrategy.js:51:46)
stack.7 
at async /var/task/node_modules/@aws-sdk/middleware-logger/dist/cjs/loggerMiddleware.js:6:22
stack.8 
at async InvokeLambdaAdapter.sendCommand (/var/task/invokeLambdaAdapter.js:61:24)

我们使用javascript aws lambda client,并运行版本 3.20。我不确定是什么原因造成的。我认为这是一个时钟问题,但纠正时钟偏差已包含在请求中,这不是本地时钟问题,因为 lambdas 与 NTP 同步。任何建议都有帮助!

【问题讨论】:

  • 您使用什么机制来计算签名?大多数情况下,您在 JS 中计算的签名与 AWS 计算的签名不匹配可能会缺少参数,这也是 AWS 方面的预期或数据问题
  • @shimo 它没有。这不是我的本地机器,而是 lambda。 Afaik 时钟不应该有问题,因为所有 lambdas 都是通过 NTP 同步的。我可以在我的机器上运行它。
  • @aviboy2006 明白了,所以你暗示这个问题与时间无关,但通常只是缺少参数的问题?
  • 有时也与时间相关,但有多个参数导致签名无效。简单的方式两种方式加密一种方式 JS 将执行和 AWS 将执行的一种方式并尝试匹配它。如果根据 AWS 有什么不正确的地方,它会抛出错误。

标签: amazon-web-services aws-lambda aws-sdk aws-sdk-js


【解决方案1】:

对于任何好奇的人。问题最终是在每个请求上都实例化一个 aws lambda 客户端。当我们让请求重用相同的 aws lambda 客户端时,问题就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多