我有用NodeJS编写的Lambda。我注意到这需要几秒钟才能完成。我添加了日志,发现bcrypt非常慢。
包装:
"dependencies": {
"bcryptjs": "^2.4.3",
源代码:
const bcrypt = require('bcryptjs');
console.log("User was found"); // following part takes more than 1 second!
if (bcrypt.compareSync(password, user.password)) {
console.log("Password verified"); //
这是来自AWS LogWatch的日志:
2020-01-13T20:25:30.951 User was found
2020-01-13T20:25:32.670 Password verified
和
2020-01-13T20:31:20.192 User was found
2020-01-13T20:31:21.550 Password verified
因此需要1.7秒。我在我的机器上的docker中运行了相同的代码
2020-01-13T20:09:48.109 User was found
2020-01-13T20:09:48.211 Password verified
本地仅需120毫秒。 AWS使用NodeJS 10.x,本地docker映像可能是8.x。我不知道如何告诉Docker反映packaged.yaml
中的更改。
这是NodeJS回归吗?还是有关AWS配置的问题?
我有同样的问题,这是因为您正在使用bcryptjs
库,尝试使用bcrypt
要快得多。 Bcryptjs
使用纯javascipt,这就是为什么速度太慢的原因bcrypt
使用c ++扩展