0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Lambda関数から別のLambda関数を呼び出す(エイリアス指定付き)

Posted at

AWS Lambda では、ある Lambda 関数から別の Lambda 関数をプログラム内で呼び出すことができます。本記事では、エイリアスを明示的に指定して別の Lambda 関数を呼び出す方法を紹介します。

🧩 背景

Lambda 関数にはエイリアス(devstagingprod など)を設定でき、環境ごとのバージョン管理やデプロイの切り替えが安全に行えます。

しかし、コード中で別の関数を呼び出すときにエイリアスを付けないと、最新版 $LATEST に向いてしまうことがあります。これを防ぐため、ARN 形式で明示的にエイリアスを指定するのがベストプラクティスです。


✅ IAM 権限の設定

呼び出し元の Lambda には、対象の Lambda 関数に対する lambda:InvokeFunction 権限が必要です。

✅ 使用例

以下は、Node.js ランタイムで Lambda 関数を呼び出すサンプルです。

const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();

exports.handler = async (event) => {
  const params = {
    // 呼び出す Lambda 関数の ARN。末尾に :エイリアス を付けることで明示的にバージョン指定できる
    FunctionName: 'arn:aws:lambda:{リージョン}:{アカウントID}:function:{関数名}:{エイリアス}',
    InvocationType: 'Event', // 非同期呼び出し
    // 呼び出し先の Lambda に渡したいデータ。ここでは requests を渡している
    Payload: JSON.stringify({ email_requests: event.requests })
  };

  try {
    const result = await lambda.invoke(params).promise();
    console.log('呼び出し成功:', result.StatusCode);
  } catch (err) {
    console.error('呼び出しエラー:', err);
  }
};
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?