invoke aws lambda from another lambda asynchronously

后端 未结 5 2063
小蘑菇
小蘑菇 2020-12-09 03:24

I need to invoke aws lambda from another lambda asynchronously. i have a working code for synchronous calls.

exports.handler = (event, context, callback) =&g         


        
5条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-09 04:03

    That's how I use in Express.js

    
    var express = require("express");
    var router = express.Router();
    
    const asyncMiddleware = fn =>
      (req, res, next) => {
        Promise.resolve(fn(req, res, next))
          .catch(next);
      };
    
    const invokeLambda = async (params) => {
      const data = await lambda.invoke(params).promise();
      return JSON.parse(data.Payload);
    }
    
    
    router.get('/test', asyncMiddleware(async (req, res, next) => {
      const params = {
        FunctionName: SOMETHING_LAMBDA_ARN,
        Payload: JSON.stringify(req.body)
      };
      const result = await invokeLambda(params);
      res.send(result);
    }));
    
    

提交回复
热议问题