0

APIゲートウェイで応答を送信するためにラムダでコールバックを行うのに問題があります。私は、MySQLデータベースと対話する簡単なアプリケーションを構築しようとしています。 Releventコードスニペットは下にあります。nodejs、aws lambda、aws api gatewayでコールバックを呼び出せません

validateTokenでエラーが返されてconsole.logメッセージが表示されても、done/callbackは予想される応答をapiゲートウェイに送信せず、その後ろのコードを処理し続けます。

exports.handler = (event, context, callback) => { 

    const done = (err, res) => callback(null, { 
     statusCode: err ? '400' : '200', 
     body: err ? err.message : JSON.stringify(res), 
     headers: { 
      'Content-Type': 'application/json', 
     }, 
    }); 

    if (event.path.match(/myApi\/workers\/*/)) { 
     // Validate Token 
     token.validateToken(pool, event.headers, function(err, result) { 
     if (result.status == 'error') { 
      console.log('Made it to here') 
      done({"message": "Invalid api-token"}, null); 
     } else { 
      // Proceed with fetching workers 
     } 
     }); 
    } 
    } 

ご協力いただければ幸いです!

+0

この機能はLambdaテストコンソールで機能しますか?関数はどのくらい処理するのですか? –

+0

これはエラーをスローしないように動作しますが、期待通りに「無効なapi-token」も返しません。私は、コンソールでAPI Gatewayテスターを使ってテストを行ってきました。このためラムダのテストも行ってください。 – davis190

+0

申し訳ありません "処理にはどれくらい時間がかかりますか"という質問にお答えしていません。それは今までに戻ってこないので、現在タイムアウトしています。 – davis190

答えて

0

私の問題は、ここに掲載されたものと同じでした。

AWS Lambda function never calls the callback

私はmysqlの一部を除去して、コードを簡素化し、それが問題を引き起こしていたものだったことに気づかなかった試みました。

関連する問題