【问题标题】:Timeout error awaiting promise in Lambda?在 Lambda 中等待承诺的超时错误?
【发布时间】:2020-06-06 12:21:38
【问题描述】:

我正在测试一个无服务器 lambda 函数并收到一个超时错误,我认为这是由于 await promise() 造成的。

module.exports.create = async (event) => {
  const provider = event.requestContext.identity.cognitoAuthenticationProvider
  ....//stuff here where I split auth token to get ids...
  const cognito = new AWS.CognitoIdentityServiceProvider({
    apiVersion: "2016-04-18"
});
const getUserParams = {
  UserPoolId: userPoolId,
  Username: userPoolUserId
};
const data =JSON.parse(event.body)
const getUser = await cognito.adminGetUser(getUserParams).promise()
  const params = {
    Item:{
      userId: event.requestContext.identity.cognitoIdentityId,
      email: getUser, //!timeout issue probably here!
      content: data
    }
  };
  try {
    const { Listing } = await connectToDatabase()
    const listing = await Listing.create({userId: params.Item.userId, email: params.Item.email

在研究解决方案时,我遇到过人们将 lambda 拆分为两个函数,以便它们共同通过超时。我不知道如何在 lambda 中引用 lambda,我也不确定这是正确的方法。

【问题讨论】:

    标签: node.js amazon-web-services serverless


    【解决方案1】:

    对于任何在谷歌上搜索的人:原来 adminGetUser 需要配置一个 NAT 网关,以便它能够从 Cognito 检索数据。我收到超时错误,因为它没有执行,期间。在这里阅读:https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/

    【讨论】:

      【解决方案2】:

      您更改 lambda 函数的超时时间 lambda 函数的默认超时为 3 秒,您可以在函数代码基本设置下方覆盖

      【讨论】:

      • 我正在使用超时时间为 30 秒的 AWS API Gateway - 这就是超时限制的来源。我读过这个值是不可调整的
      猜你喜欢
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2020-02-11
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      相关资源
      最近更新 更多