0

現在、RDS DBを呼び出してアイテムのリストを取得しています。これらのアイテムをループして各アイテムのPOST呼び出しを行います。私の質問は次のとおりです:AWSラムダメソッドを使用してリストをループし、複数の他のラムダメソッドを呼び出す

このリストをループし、リスト内の各項目に対して別のラムダ関数を呼び出すことは可能ですか?理想的には、これは応答を待つことではなく、他のものを呼び出すことを続けます。呼び出された各メソッドは、完了するまで実行を継続します。構造であり、これはここでNodeJs 6.10

に基づいされますのでご注意ください。

var pg = require('knex')({ 
    client: 'pg', 
    connection: process.env.DATABASE_URL, 
    debug: true 
    }); 

    // Internal 
    const time = require('./lib/time'); 
    const response = require('./lib/response'); 
    const helpers = require('./lib/helpers'); 

    module.exports.createBatch = (event, context, cb) => { 

    // Lambda settings 
    context.callbackWaitsForEmptyEventLoop = false; 

    const now = time.getCurrentTime(); 

    pg('table') 
     .join('table') 
     .select('*') 

     .then(function(rows) { 
     return rows; 
     }) 

     .then(function(rows) { 
     console.log('rows: ' + rows); 

     let count = 0; 
     if (!_.isEmpty(rows)) { 
      for(let row of rows) { 

      // **** 
      // CALL OTHER LAMBDA FUNCTION HERE 
      // **** 

      axios.post(row) 
       .then(function (res) { 

       // **** 
       // MOVE THIS POST CALL INTO ANOTHER LAMBDA FUNCTION 
       // **** 

       }) 

      } 
     } 
     }) 
+0

aws-sdkはラムダ呼び出しメソッド – bryan60

答えて

1

あなたがラムダinvoke()機能を呼び出すためにNodejs用AWS SDKを使用します。 InvocationType: Eventパラメーターを渡して、応答を待たずに関数を非同期に呼び出します。

+0

を公開しています。これは価値があります。同時実行制限が急激に低下し、このような呼び出しを多く実行した場合の総スループットは、経由で渡されたHTTP KeepAliveエージェント(新しいAWS.Lambda({httpOptions}) –

0

はい、「lambda.invoke」を使用して実行できます。詳細はこちらhere呼び出しについて

関連する問題