gpt4 book ai didi

node.js - AWS Lambda SSM 调用随机超时

转载 作者:行者123 更新时间:2023-12-04 08:11:14 26 4
gpt4 key购买 nike

我在 AWS 上部署了一个 lambda,位于通过 NAT 访问互联网的 VPC 中。部署是使用 Serverless 进行的.
lambda 使用了一些 Middy中间件并从 SSM 获取一些凭据。
问题是 SSM 获取随机进入超时!
这是 lambda 代码:

/* requirements are omitted */

const authorize = async (_event, _context) => {
try {
const ssm = new SSM({
maxRetries: 6, // lowers a chance to hit service rate limits, default is 3
retryDelayOptions: { base: 200 }
})
const params = {
Names: ["param1", "param2"],
WithDecryption: true
}
const fetch = () => new Promise(resolve => {
ssm.getParameters(params, function(err, data) {
if (err) resolve(err, err.stack); // an error occurred
else resolve(data); // successful response
})
})
const res = await fetch()
return {
statusCode: 200,
body: JSON.stringify(res)
}
} catch (_err) {
console.error(_err)
return {
statusCode: 500,
body: 'error'
}
}
}

export default middy(authorize)
.use(warmup({ waitForEmptyEventLoop: false }))
.use(doNotWaitForEmptyEventLoop({ runOnError: true }))
.use(httpSecurityHeaders())

最佳答案

lambda 超时,因为 ssm 正在用您当前的配置(6 次重试 200 毫秒)限制您,在您的 lambda 放弃之前大约需要 26 秒。
你在这里对抗 SSM standard throughput limits .
您可以启用 increased throuhgput和:

aws ssm update-service-setting --setting-id arn:aws:ssm:*region*:*account-id*:servicesetting/ssm/parameter-store/high-throughput-enabled --setting-value true
请注意 extra cost之后的每个 getParameter 调用都会产生(0.05$/10.000 请求)。

关于node.js - AWS Lambda SSM 调用随机超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65951537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com