AWS lambda函数在超时错误后停止工作

2024-04-10

我有一个简单的 lambda 函数,它异步进行 API 调用,然后返回数据。 99% 的情况下这都非常有效。当 API 花费的时间超过 lambda 配置的超时时间时,它会按预期给出错误。现在的问题是,当我对 lambda 函数进行任何后续调用时,它会永久给出超时错误。

 "errorMessage": "2016-05-14T22:52:07.247Z {session} Task timed out after 3.00 seconds"

为了测试这种情况,我将 lambda 超时设置为 3 秒,并有办法在 lambda 中触发这两个函数。

JavaScript

function now() { 
    return response.tell('success'); 
}

function wait() {
    setTimeout(function() { return response.tell('success'); }, 4000);
}

当我打电话给now功能没有问题。当我打电话给wait函数我收到超时错误,然后任何后续调用now给我同样的错误。

这是预期的行为吗?我认为对 lambda 函数的任何后续调用都应该有效。我知道我总是可以增加配置超时,但我宁愿不这样做。


你应该看看你的函数句柄与特定的context.callbackWaitsForEmptyEventLoop

如果该布尔类型是false, setTimeout 永远不会被触发,因为您可能之前已经回答/处理了 lambda 调用。 但如果值callbackWaitsForEmptyEventLoop is true- 那么你的代码就会做你正在寻找的事情。

另外 - 直接通过回调处理所有事情可能更容易,而不需要“手写”超时,更改配置超时等等......

E.g.

function doneFactory(cb) { // closure factory returning a callback function which knows about res (response)
  return function(err, res) {
    if (err) {
      return cb(JSON.stringify(err));
    }
    return cb(null, res);
  };
}

// you're going to call this Lambda function from your code
exports.handle = function(event, context, handleCallback) {

  // allows for using callbacks as finish/error-handlers
  context.callbackWaitsForEmptyEventLoop = false;

  doSomeAsyncWork(event, context, doneFactory(handleCallback));
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS lambda函数在超时错误后停止工作 的相关文章

  • Node.js http get 请求错误事件未拾取 404 或 403

    我正在对图像发出 HTTP GET 请求 有时图像会以 404 或 403 的形式返回 令我惊讶的是 我必须明确检查这一点 而不是在错误事件中选择它 这是它的工作原理还是我在这里遗漏了一些东西 function processRequest
  • 在 Elastic Beanstalk 中禁用自动安全组命名

    创建新环境时 Beanstalk 往往会使用随机且非常大的字符串 例如 awseb e nhmvcuvtjh stack AWSEBSecurityGroup 1R8CUK434DLPG 来污染我们的安全组命名约定 这些字符串之后无法更改
  • 如何在Electron WebView中连接到代理?

    因为我可以通过连接到免费代理服务器 或付费 目前用作电子 JS 解决方案作为桌面应用程序 代理列表服务器示例 http proxylist hidemyass com http proxylist hidemyass com 您可以使用 s
  • 缺少节点-v59-linux-x64/grpc_node.node

    我正在尝试在我的服务器中使用 Firebase admin SDK 当我部署时 出现错误 我在 firebase admin node module 映射中缺少文件 node v59 linux x64 grpc node node 我在包
  • 节点无法抓取某些页面

    我不知道这是否与冷融合页面有关 但我无法刮掉这些 cfm pages 在目录中的命令行中request run node gt var request require request node gt var url http linguis
  • AWS S3 GetObject 是否提供随机访问?

    I can 提供 HTTP Range 标头 https docs aws amazon com AmazonS3 latest API API GetObject html API GetObject RequestSyntax到 AWS
  • NestJS e2e 测试模拟会话装饰器

    我正在尝试使用 supertest 编写一个 e2e 测试 其中我的控制器实际上使用了 Session 装饰师 然而 我不想承担使用数据库连接等启动会话的全部负担 因此测试中的我的应用程序实际上并未初始化会话 相反 我想首先模拟掉装饰器提供
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • Nodejs Express中间件函数返回值

    我正在使用 NodeJS 和 Express 我有以下路线 中间件功能是Mobile 如果我不使用 return next 在 isMobile 函数中 应用程序会卡住 因为 NodeJS 不会移至下一个函数 但我需要 isMobile 函
  • 在 Node.js 中,setTimeout() 会阻止事件循环吗?

    如果我有一个简单的 setTimeout 函数 并将其设置为 10 秒 整个服务器在那10秒内就死机了 这是真的 这就是我听到的 答案是no 你的链接是什么Node js 如何重新创建 setTimeout 函数而不阻塞事件循环 https
  • 使用 Amazon SQS 的 .net 应用程序示例

    我正在寻找一个示例 Net 应用程序 该应用程序会持续检查 Amazon SQS 是否有新消息 并在发现新消息时执行一项操作并将其从队列中删除 我的目标是让一个在 EC2 上运行的应用程序监视我的 SQS 队列中的新消息 当找到一条消息时
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 使用 CognitoIdentityServiceProvider 的 adminCreateUser 方法的 AWS Lambda 函数突然失败

    在过去的几天里 我一直在使用 AWS Lambda 函数测试特定流程 并且在 Cognito 用户池中预注册后触发的 lambda 函数工作正常并很好地返回回调函数 但从昨天开始我就看到了以下错误 ntime node modules aw
  • Plesk Windows 部署 Node.js

    我创建了一个以 Node js 作为后端的 Angular 项目 这是服务器文件结构 Home directory httpdocs node hm dist browser folder server folder server js p
  • Kinesis Firehose 的 Lambda.InvokeAccessDenied

    我正在尝试使用 Firehose 传输流设置 Lambda 转换 我为 Firehose 定义了一个 IAM 角色 其中包括以下策略文档 Statement Action lambda InvokeFunction lambda GetFu
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 如何使用 aws-cdk 在 EC2 和 RDS 之间创建 DependsOn 关系

    我目前正在使用aws cdk TypeScript 创建一个堆栈 其中包含EC2实例和一个RDS数据库实例 The RDS实例需要在之前设置EC2实例可以启动并且userdata将被执行 我遇到的问题是 我找不到一种方法来定义DepensO
  • Amazon s3 – 403 禁止使用正确的存储桶策略

    我正在尝试使用以下存储桶策略 使存储在 s3 存储桶中的所有图像可供公开读取 Id Policy1380877762691 Statement Sid Stmt1380877761162 Action s3 GetObject Effect
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • Nginx url 限制 502 网关

    我有一个问题 但我接受绕过此功能的其他建议 基本上 我在 get 请求中向我的服务器发送大约 3000 个字符的大行文本 然后服务器将其作为 url 中的参数发送到谷歌翻译 问题 当 url gt 1900 个字符时 Nginx 会抛出 5

随机推荐

  • windows下docker的vm.max_map_count问题

    我正在尝试在我的 windows10 上运行 ELK docker 镜像 如下所示 C WINDOWS system32 gt docker run p 5601 5601 p 9200 9200 p 9300 9300 p 5044 50
  • 插入带有扭曲问题的选择

    我想将一个表 当然具有某个ID 的所有数据复制到同一个表中 但略有不同 我有这个表 产品数量 id groupId productId quantity 1 2 2 5 我想要做的是复制 groupId 2 的所有数据 将其插入到 grou
  • Xcode 4 中的静态库

    我太喜欢 Xcode 4 X 中的静态库了 以下是我通常做的步骤 1 为了制作静态库 我打开Xcode new 静态库 然后在项目中添加一些类 然后构建阶段 gt 复制标头 gt 在这里一一添加所有标头 然后我构建该项目 当在 ios 模拟
  • YOLO 目标检测:算法如何预测大于网格单元的边界框?

    我试图更好地理解 YOLO2 和 3 算法的工作原理 该算法处理一系列卷积 直到达到13x13网格 然后它能够 对每个网格单元内的对象以及这些对象的边界框进行分类 如果您查看这张图片 您会发现红色边框比任何单个网格单元都大 边界框也以对象的
  • Python 3 和 NLTK 与 WordNet 2.1 - 这可能吗?

    我将 Python 3 和 NLTK 3 0 0 与 WordNet 3 0 结合使用 我想用该数据 semval2007 https github com alvations pywsd tree master pywsd data se
  • 为什么在这段代码中,await 不会阻塞 flutter 中的 ui

    在默认示例应用程序中 每当您创建新的 flutter 项目时 我都添加了以下代码 initState super initState loop loop async while true await Future delayed Durat
  • C# 中的数组列表

    我们可以将 ArrayList 作为参数传递给 C 中的方法吗 绝对地 然而 你很少应该这样做 这些天你应该差不多always使用泛型类型 例如List
  • 动态 SQL 查询根据单元格中的空值忽略空值

    我有一个动态 SQL 查询 在运行时具有不同的列名和表 我希望让 SQL 查询根据行是否在任何单元格中包含 Null 值来忽略读取数据 SELECT rsv intension rsvt FROM resolve table kb wher
  • 使用复杂风味树更改 google-services.json 的搜索位置

    我知道已经有人问过这个问题 但是对于 4 2 0 以上的 com google gms google services 的任何版本 问题仍然存在 我的 google services json 文件的搜索位置不再考虑风味树状结构 它只写着
  • 使用 Angular JS 时如何加载 AMD 模块?

    由于某种奇怪的原因Angular JS 有自己的模块系统 既不是 AMD 也不是 CommonJS http docs angularjs org guide module 我有许多 AMD 格式的现有模块 我想在 Angular 应用程序
  • ADL 是否适用于全局命名空间?

    Examples https stackoverflow com a 5076640 321013 such as https groups google com forum original comp lang c moderated 1
  • 多个 Android 应用程序依赖于带有 gradle 的 android 库

    我仍在学习 gradle 但根据我所读到的内容 我想知道这是否可能 我有多个 Android 应用程序 app1 app2 app3 它们依赖于 android 库 L android 库 L 将依赖于 volley 等外部库 而应用程序将
  • 如何在android中的NumberPicker中自定义数字的值?

    我有一个数字选择器 用于设置以 MB 为单位的数据限制 现在 我有 numberPicker 包含按顺序排列的数值 如 1 2 3 2000 MB 但我想要一个应包含 100 200 300 2000MB 等数值的 numberPicker
  • PostgreSQL psycopg2 返回字符串元组而不是元组元组?

    我有一个奇怪的问题 在搜索 Google SO 没有发现类似的情况后 我不太确定如何解决它 当我尝试从光标获取查询结果时 它给了我一个元组的元组 除了元组是字符串 下面是代码 def queryFeeds db sql SELECT ngo
  • 如何在作业开始前清理 Jenkins 管道中的工作区

    我需要在构建开始之前清理工作区 我尝试使用cleanDir 分阶段进行 但在声明性管道中 检查首先发生 并且当阶段与cleadDir运行时 签出的代码也会被清除 这是不希望的 在声明式管道中签出之前 我们如何清除工作区 实际上 我必须根据管
  • 如何将本地 django 制作的站点移动到另一台机器上?

    我努力寻找我的查询的解决方案 但没有成功 我在本地机器上使用 django 制作了一个网站 现在我想在另一台机器上安装相同的 django 制作的网站 MySQL是我正在使用的数据库 如何将本地 django 制作的网站移动到另一台机器上
  • PHP - Postgresql 如果返回错误,如何回滚查询?

    我正在使用 php 和 postgres 进行 CRUD 我想知道如果出现错误是否有办法回滚事务 实际上 如果我在事务中遇到错误 id 主键 就会增加 然后我会丢失一个 id 以供将来使用 我该如何预防 我的意思是 如果插入查询失败 不要在
  • 套接字无法连接到端点

    var socket new Socket localhost 4000 socket connect Returns WebSocket connection to ws localhost 4000 ws failed Error du
  • 扩展 Backbone.Collection 原型

    继从这个问题 https stackoverflow com questions 10219182 retrieve element from backbone collection removen 我正在尝试使用一些自定义方法来增强 Ba
  • AWS lambda函数在超时错误后停止工作

    我有一个简单的 lambda 函数 它异步进行 API 调用 然后返回数据 99 的情况下这都非常有效 当 API 花费的时间超过 lambda 配置的超时时间时 它会按预期给出错误 现在的问题是 当我对 lambda 函数进行任何后续调用