タイムアウトエラーの後でAWS Lambda関数が機能を停止する

jjbskir:

非同期にAPI呼び出しを行い、データを返す単純なラムダ関数があります。これは99%の確率で機能します。APIがラムダ構成のタイムアウトよりも長くかかると、予想どおりエラーが発生します。今問題は、ラムダ関数への後続の呼び出しを行うと、永続的にタイムアウトエラーが発生することです。

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

これが事実であることをテストするために、ラムダタイムアウトを3秒に設定し、ラムダ内でこれら2つの関数をトリガーする方法を用意しました。

Javascript

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

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

now関数を呼び出しても問題ありません。wait関数を呼び出すと、タイムアウトエラーが発生し、その後の呼び出しでnow同じエラーが発生します。

これは予想される動作ですか?ラムダ関数への後続の呼び出しはすべて機能するはずだと思います。私はいつでも構成タイムアウトを増やすことができることを理解していますが、そうではありません。

ジャクブ・コラル:

特定の関数ハンドルがどのように機能するかを調べる必要がありますcontext.callbackWaitsForEmptyEventLoop

そのboolean-typeがのfalse場合、以前にラムダ呼び出しに応答/処理した可能性があるため、setTimeoutは起動されません。しかし、の値callbackWaitsForEmptyEventLooptrue-の場合、コードはあなたが探していることを実行します。

また、「手書きの」タイムアウト、構成タイムアウトの変更などを必要とせずに、コールバックを介してすべてを直接処理する方がおそらく簡単です...

例えば

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));
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タイムアウトエラーの後でAWS Lambda関数が機能を停止する

分類Dev

タイムアウトエラーの後でAWS Lambda関数が機能を停止する

分類Dev

Lambda関数で別の関数をリクエストしてタイムアウトするとタイムアウトエラーが発生する

分類Dev

最初の交差後に交差関数が機能を停止する

分類Dev

AWS ApiGatewayでタイムアウトエラーをキャッチする

分類Dev

RxJSでタイムアウト後にエラーを発行する

分類Dev

AWS SAMを使用して3秒後にAWS Lambda関数がタイムアウトする

分類Dev

AWS Lambda:VPCアクセスでラムダ関数のNATゲートウェイを設定する方法

分類Dev

AWS Lambda:VPCアクセスでラムダ関数のNATゲートウェイを設定する方法

分類Dev

AWS Lambda:VPCアクセスでラムダ関数のNATゲートウェイを設定する方法

分類Dev

Lambda関数の呼び出し中にCognitoがUnexpectedLambdaExceptionタイムアウトエラーを返す

分類Dev

AWS Pythonラムダは、最初のタイムアウト後に永久にタイムアウトします

分類Dev

AWS Lambda関数が常にタイムアウトするのはなぜですか?

分類Dev

TomcatがAzureでMongoDBと通信する際のタイムアウトエラー

分類Dev

AWS Lambda関数がタイムアウトし続けるのはなぜですか?

分類Dev

Manjaroで外部端末を使用する際のタイムアウトエラー

分類Dev

listの代わりにdequeを使用した後でも、「タイムアウトエラーのために終了」が表示されるのはなぜですか?

分類Dev

Gocqlでタイムアウトエラーを取得する

分類Dev

AWS Lambda Java 関数は成功するがタイムアウトする

分類Dev

setsockopt()でタイムアウトオプションを指定すると、後続のリッスンエラーが発生します

分類Dev

タイムアウトエラー後もSeleniumを続行させる

分類Dev

Rubygemのインストールで毎回タイムアウトエラーが発生する

分類Dev

リクエスト後のFirebaseクラウド機能のタイムアウト

分類Dev

このコードでタイムアウトエラーが発生するのはなぜですか?

分類Dev

cURLエラー28:受信した23000995バイトのうち7276200で、2000ミリ秒後に操作がタイムアウトしました

分類Dev

Boto3タイムアウトを使用するAWS Lambda関数

分類Dev

ここで「タイムアウトが原因で終了」エラーが発生するのはなぜですか?

分類Dev

Radeditor set_htmlは機能しますが、残りの関数を停止するjavascriptエラーをスローします

分類Dev

AWS(Amazon)での504(ゲートウェイタイムアウト)中にIISが同じリクエストを再処理する

Related 関連記事

  1. 1

    タイムアウトエラーの後でAWS Lambda関数が機能を停止する

  2. 2

    タイムアウトエラーの後でAWS Lambda関数が機能を停止する

  3. 3

    Lambda関数で別の関数をリクエストしてタイムアウトするとタイムアウトエラーが発生する

  4. 4

    最初の交差後に交差関数が機能を停止する

  5. 5

    AWS ApiGatewayでタイムアウトエラーをキャッチする

  6. 6

    RxJSでタイムアウト後にエラーを発行する

  7. 7

    AWS SAMを使用して3秒後にAWS Lambda関数がタイムアウトする

  8. 8

    AWS Lambda:VPCアクセスでラムダ関数のNATゲートウェイを設定する方法

  9. 9

    AWS Lambda:VPCアクセスでラムダ関数のNATゲートウェイを設定する方法

  10. 10

    AWS Lambda:VPCアクセスでラムダ関数のNATゲートウェイを設定する方法

  11. 11

    Lambda関数の呼び出し中にCognitoがUnexpectedLambdaExceptionタイムアウトエラーを返す

  12. 12

    AWS Pythonラムダは、最初のタイムアウト後に永久にタイムアウトします

  13. 13

    AWS Lambda関数が常にタイムアウトするのはなぜですか?

  14. 14

    TomcatがAzureでMongoDBと通信する際のタイムアウトエラー

  15. 15

    AWS Lambda関数がタイムアウトし続けるのはなぜですか?

  16. 16

    Manjaroで外部端末を使用する際のタイムアウトエラー

  17. 17

    listの代わりにdequeを使用した後でも、「タイムアウトエラーのために終了」が表示されるのはなぜですか?

  18. 18

    Gocqlでタイムアウトエラーを取得する

  19. 19

    AWS Lambda Java 関数は成功するがタイムアウトする

  20. 20

    setsockopt()でタイムアウトオプションを指定すると、後続のリッスンエラーが発生します

  21. 21

    タイムアウトエラー後もSeleniumを続行させる

  22. 22

    Rubygemのインストールで毎回タイムアウトエラーが発生する

  23. 23

    リクエスト後のFirebaseクラウド機能のタイムアウト

  24. 24

    このコードでタイムアウトエラーが発生するのはなぜですか?

  25. 25

    cURLエラー28:受信した23000995バイトのうち7276200で、2000ミリ秒後に操作がタイムアウトしました

  26. 26

    Boto3タイムアウトを使用するAWS Lambda関数

  27. 27

    ここで「タイムアウトが原因で終了」エラーが発生するのはなぜですか?

  28. 28

    Radeditor set_htmlは機能しますが、残りの関数を停止するjavascriptエラーをスローします

  29. 29

    AWS(Amazon)での504(ゲートウェイタイムアウト)中にIISが同じリクエストを再処理する

ホットタグ

アーカイブ