Lambda调用Lambda导致InvalidSignatureException



我目前正在使用lambda在AWS中开发一个微服务。有时,当接收方lambda调用另一个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客户端,并运行3.20版本。我不确定是什么原因造成的。我认为这是一个时钟问题,但纠正时钟倾斜是烘烤到请求,这不是一个本地时钟的问题,因为lambda与NTP同步。任何建议都有帮助!

好奇的人。问题的最终结果是为多个请求重用aws lambda客户端。当我们让请求为每个请求创建一个新客户端时,这个问题就消失了。

最新更新