Lambda関数からLambda関数を呼び出す方法

やりたいこと

とあるLambda関数Aから別のLambda関数Bを呼び出して、
関数Bの処理が終わったら関数Aの処理にもどるような仕組みをつくりたい。

環境

ソースコード

Lambda関数 test_method_A
この関数には、事前に「lambda:InvokeFunction」の権限を与えておくこと。

import { LambdaClient, InvokeCommand } from "@aws-sdk/client-lambda"; 


export const handler = async (event) => {
    const client = new LambdaClient();
    const input = {
        FunctionName: "test_method_B"
    };

    const command = new InvokeCommand(input);
    const res = await client.send(command);
    
    //Uint8Arrayで返却されるためデコードする。
    const decoder = new TextDecoder();
    const text = decoder.decode(res.Payload);
    console.log(text);


    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

Lambda関数 test_method_B

export const handler = async(event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('I\'m method B!'),
    };
    return response;
};

 

実行結果

test_method_Bのデータを取得できた。

INFO	{"statusCode":200,"body":"\"I'm method B!\""}

参考リンク

docs.aws.amazon.com