0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS初心者向けの AWS Lambda

Last updated at Posted at 2025-10-02

はじめに

この記事は AWS に触ったことがない人に向けた、 AWS Lambda を紹介する記事です。

AWS Lambda とは

AWS Lambda とは、サーバー管理不要でいろんな種類のコードを実行できる、コンピューティングサービスです。AWS Lambda で実行されるアプリケーションコードとその設定は Lambda 関数と呼ばれたりします。

AWS Lambda の全体像はこんな感じです。

image.png

開発者は実行したいコードを Lambda 関数として用意し、設定を行います。また複数の Lambda 関数で利用したいライブラリやパッケージがあれば、 Lambda レイヤーとして切り出せます。

AWS Lambda の呼び出し方

作成した Lambda 関数は、イベントソースの様々なイベントによって呼び出せます。イベントソースの例をいくつか、下記に記載します。

image.png

図のようにイベントソースによって同期的、非同期的、ポーリングによって呼び出されるか異なります。

Lambda関数が呼び出せるサービス・呼び出し方法の一覧は上記ドキュメントに記載されているので、気になる方はご確認ください。

また AWS Lambda を使ったサーバーレス設計・サーバレスアプリにおけるエラーハンドリングについては、下記ドキュメントをご確認ください。

Lambda 関数のコード例

AWS Lambda は下記のマネージドランタイムをサポートしてます。

  • Node.js
  • Python
  • Java
  • .NET
  • Ruby

またOS専用ランタイムを用いて Go、Rust、C# 等の他ランタイムを実行することも可能です。
さらに AWS Lambda Web Adapter を用いることで、HTTPを話す任意のコンテナイメージを AWS Lambda で動作させることが可能です。使用感が気になる方は、下記ドキュメントをご確認ください。

今回は、Python を例にシンプルな Lambda 関数のコードを見てみます。

def lambda_handler(event, context):
    message = 'Hello {} {}!'.format(event['first_name'], event['last_name'])  
    return { 
        'message' : message
    }

マネージドランタイムで関数を定義する場合、lambda_handler というハンドラーを定義します。ハンドラーは、 Lambda 関数が呼び出されたとき、最初に実行されるエントリーポイントです。

ハンドラーとなる関数は、イベントオブジェクトコンテキストオブジェクトを引数として受け取る形にする必要があります。これらの引数のオブジェクトは、実行時に AWS Lambda により渡されて、コードの中で参照することが可能です。

  • イベントオブジェクト
    • Lambda 関数に処理させたいデータや、イベントソースから渡されたデータ
    • イベントソースによってデータの中身が変わる
  • コンテキストオブジェクト
    • ランタイムの環境情報やプロパティが含まれる
    • 例えば Lambda 関数の名前や Amazon リソースネーム (ARN) 、設定されている メモリ容量など

ハンドラーのコードを記述する時は、下記2つを抑えておきましょう。

ハンドラーの実行時間は最長 15 分まで

1回の呼び出しで15分を超えるような処理は、Lambda 関数はタイムアウトしてしまいます。処理を分割するか、AWS Lambda 以外のサービスを検討しましょう。

コンテナとサーバレスの使い分けについては、下記スライドをご確認ください。

ハンドラーの関数やメソッド内に全てのコードを記述する必要はない

ハンドラーはあくまで Lambda 関数のコードの中で最初に実行する関数です。なのでハンドラーにすべてのコードを記述する必要はありません。必要に応じてハンドラーから他の関数を呼び出したり、他のオブジェクトのメソッドを呼び出すように設計し、コードの可読性向上・テスタビリティの向上を目指しましょう!

まとめ

今回は AWS に触ったことがない人に向けて、 AWS Lambda を紹介しました。各種ハンズオンのリンクを記載しておくので、興味を持った方はぜひやってみてください!

参考文献

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?