[Node.js] Lambda を起動する (AWS SDK for JavaScript v3)

作成日: 2022年08月07日

@aws-sdk/client-lambda モジュールの LambdaClientInvokeCommand を組み合わせることで、任意の Lambda 関数を起動することができます。Lambda 関数 dummy-function-name を RequestResponse (同期的) に実行しています。

const { LambdaClient, InvokeCommand } = require("@aws-sdk/client-lambda");

async function main() {
  const lambdaClient = new LambdaClient({ region: "ap-northeast-1" });
  const invokeCommand = new InvokeCommand({
    FunctionName: "dummy-function-name",
    InvocationType: "RequestResponse",
  });
  const response = await lambdaClient.send(invokeCommand);

  console.log(response);
}

main();

実行結果は下記のとおりです。

{
  '$metadata': {
    httpStatusCode: 200,
    requestId: '5d1de5a9-a3f3-4ac7-9966-8f820f717b0c',
    extendedRequestId: undefined,
    cfId: undefined,
    attempts: 1,
    totalRetryDelay: 0
  },
  ExecutedVersion: '$LATEST',
  Payload: Uint8Array(13) [
     34,  72, 101, 108, 108,
    111,  32,  87, 111, 114,
    108, 100,  34
  ],
  StatusCode: 200
}

Payload の部分を、new TextDecoder().decode(response.Payload) のように文字列型に変換すると下記のようになります。

"Hello World"
Node.js AWS Lambda