【问题标题】:Claudia.js NetworkingError creating Lambda Function - Times out after 120000msClaudia.js NetworkingError 创建 Lambda 函数 - 120000 毫秒后超时
【发布时间】:2023-03-23 05:04:02
【问题描述】:

我已经使用 claudia.js claudia-bot-builder 构建了一个机器人,并且在我今天早上尝试推送更新之前一切正常。现在脚本超时了。

脚本

claudia create --region ap-southeast-2 --api-module index --profile xero-messenger-bot

错误

creating Lambda lambda.createFunction   FunctionName=my-bot
{TimeoutError: Connection timed out after 120000ms
    at ClientRequest.<anonymous> 
(/usr/local/lib/node_modules/claudia/node_modules/aws-sdk/lib/http/node.js:83:34)
    at Object.onceWrapper (events.js:291:19)
    at emitNone (events.js:86:13)
    at ClientRequest.emit (events.js:186:7)
    at TLSSocket.emitTimeout (_http_client.js:679:10)
    at Object.onceWrapper (events.js:291:19)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:186:7)
    at TLSSocket.Socket._onTimeout (net.js:342:8)
    at ontimeout (timers.js:365:14)
  message: 'Connection timed out after 120000ms',
  code: 'NetworkingError',
  time: 2017-04-20T05:48:18.230Z,
  region: 'ap-southeast-2',
  hostname: 'lambda.ap-southeast-2.amazonaws.com',
  retryable: true 
}

我尝试了几个不同的区域(ap-southeast-1、us-east-2 等),但它们似乎都抛出了相同的错误。

我认为这是我的代码,但同样的脚本昨天还在工作,所以我不确定为什么今天不行。

有什么想法可以在哪里查看更多信息?

【问题讨论】:

  • 您是否尝试将超时时间增加到 5 分钟?我解决了我的问题,因为我的互联网连接不可靠。
  • 是的。那是 100% 正确的。这是一个不稳定的连接,它正在丢弃数据包并导致问题。当我在工作中运行相同的脚本时工作正常。
  • 我试过这样:克劳迪娅创建 --handler lambda.handler --timeout 300。它不起作用!

标签: node.js amazon-web-services lambda timeout claudia.js


【解决方案1】:

经过太多搜索后,我停在了 Gitter 的 Claudia's 处。 @stojanovic 建议我应该使用 --use-s3-bucket 标志。

claudia create --handler lambda.handler --use-s3-bucket your-bucket-name --deploy-proxy-api --region us-east-1

【讨论】:

  • 谢谢。我会试一试的。我最终在悉尼部署了一个 EC2 实例,并在那里安装了 git 和 Claudia。然后在我本地测试后,我签入到 git。登录到远程终端并从那里运行 Claudia update。到目前为止工作得很好。仍然不确定为什么我的家庭互联网出现此问题。
【解决方案2】:

我知道这是一个旧帖子,但一个快速的讨厌的修复可以只是去 NPM 全局 claudia 包并编辑以下文件 _~\node_modules\claudia\node_modules\aws-sdk\lib\http\node.js_ 和添加适合您的超时时间:

...
AWS.NodeHttpClient = AWS.util.inherit({
  handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {
      httpOptions.timeout = xxxxx (default to 120000);
...

希望有帮助

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2018-12-28
    • 2023-03-23
    • 2011-06-21
    相关资源
    最近更新 更多