Lambdaから別のLambdaを呼び出す(node.js v16) – AWS SDK for JavaScript v3

Lambdaから別のLambdaを呼び出す(node.js v16) – AWS SDK for JavaScript v3

aws sdk for javascript v3で、lambdaからlambdaを呼びだします。

Lambdaは稀にリトライします。これはLambdaが保証しているのは最低1回実行することであって、1回しか実行しないことは保証されていません。ですので、lambdaからlambdaを呼び出すのは本来よろしくない設計です。step functionなどを検討すべきです。

プロジェクト作成

npm init -y
npm i @aws-sdk/client-lambda
touch index.js

package.jsonに以下1行追加してください。

"type": "module",

Lambda(node.js v16)

test-lambdaという名前のLambdaを呼び出す例です。

FunctionNameの指定方法はLambda名、FunctionARN、PartialARNのいずれかを指定します。

他にもInvocationType(省略時はRequestResponse)などのオプションがあります。

index.js

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

export async function handler() {
  const client = new LambdaClient({
    region: "ap-northeast-1",
  });
  const command = new InvokeCommand({
    FunctionName: 'test-lambda' // Lambda関数名
  });
  const result = await client.send(command);
  console.log(result)
  const response = {
    statusCode: 200,
    body: 'Hello World'
  }
  return response
};

IAM

AWSLambdaRoleをアタッチします。

参考サイト

Lambda Client - AWS SDK for JavaScript v3
Documentation for Lambda Client - AWS SDK for JavaScript v3
InvokeCommand | Lambda Client - AWS SDK for JavaScript v3
Documentation for Lambda Client - AWS SDK for JavaScript v3

コメント

タイトルとURLをコピーしました