Как запустить одну лямбда-функцию из нескольких лямбд одновременно - PullRequest
0 голосов
/ 29 мая 2019

Я хочу запустить лямбда-функцию из нескольких лямбд одновременно.Архитектура, которой я следую, является лямбда -> Шаг Функция -> параллельное выполнение 2 лямбда -> эти две лямбда должны запускать одну лямбда.событие из этих двух лямбда должно быть передано в одну лямбду.

До запуска двух лямбда-функций из функции шага, которую я уже выполнил.Для запуска лямбда-функции я написал следующий код.но только лямбда-событие передается следующей лямбде.

from boto3 import client as botoClient
import json
lambdas = botoClient("lambda")

def lambda_handler(event, context):

    response = lambdas.invoke(FunctionName="lambda-name", 
                              InvocationType="RequestResponse", 
                               Payload=json.dumps(event))
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

1 Ответ

1 голос
/ 29 мая 2019

Вот фрагмент для вызова лямбда-функции из другой лямбда-функции -

let AWS = require('aws-sdk');
let util = require('util');

module.exports.proxyAPIRequest = async () => {

    let client = new AWS.Lambda({
        region: "us-east-1"
    });

    let requestPayload = {
        'someKey' : 'someValue'
    };

    requestPayload = JSON.stringify(requestPayload);
    console.log("Payload => ", requestPayload);

    let params = {
        FunctionName: functionName,
        InvocationType: "RequestResponse", 
        Payload: requestPayload
    };

    let lambda = util.promisify(client.invoke).bind(client);
    let response = await lambda(params);

    console.log(response.Payload);

    return response.Payload;
};

Убедитесь, что у лямбда-функции вызывающей стороны есть разрешение на вызов другой функции -

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Lambda permission",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:lambda:awsRegion:awsAccountId:function:functionName"
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...