首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda SSM调用随机进入超时

AWS Lambda SSM调用随机进入超时
EN

Stack Overflow用户
提问于 2021-01-29 17:05:13
回答 1查看 372关注 0票数 2

我在AWS上部署了一个lambda,部署在一个通过NAT访问互联网的VPC中。部署是使用Serverless完成的。lambda使用一些Middy中间件,并从SSM获取一些凭据。

问题是SSM fetch随机进入超时!

下面是lambda代码:

代码语言:javascript
复制
/* 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())
EN

回答 1

Stack Overflow用户

发布于 2021-01-29 17:43:59

lambda超时了,因为ssm正在用您当前的配置限制您(6次重试200ms),大约需要26秒,您的lambda才会放弃。

您在这里运行的是SSM standard throughput limits

您可以使用以下命令启用increased throuhgput

代码语言:javascript
复制
aws ssm update-service-setting --setting-id arn:aws:ssm:*region*:*account-id*:servicesetting/ssm/parameter-store/high-throughput-enabled --setting-value true

请注意,之后的每个getParameter调用都会产生extra cost (0.05美元/10.000个请求)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65951537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档