カテゴリ: AWS 更新日: 2025/12/23

AWS LambdaでPythonコードを実行する方法

AWS LambdaでPythonコードを実行する方法
AWS LambdaでPythonコードを実行する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、AWS Lambda(エーダブリューエス ラムダ)でPython(パイソン)のコードを実行できるって聞いたんですが、本当にサーバーなしで動くんですか?」

先生

「そうです。AWS Lambdaはサーバーレス実行環境で、Pythonをはじめとしたコードをインフラ管理なしに動かせます。例えば、画像処理やAPIリクエストの処理を簡単に実装できますよ。」

生徒

「なるほど!でも実際にどうやってPythonコードをLambdaにアップロードして動かすんですか?」

先生

「それでは、AWS LambdaでPythonコードを実行する手順を具体的に見ていきましょう。」

1. AWS LambdaとPythonの関係

1. AWS LambdaとPythonの関係
1. AWS LambdaとPythonの関係

AWS Lambdaはサーバーレス実行環境(サーバー管理不要の仕組み)で、Pythonはその中でサポートされているプログラミング言語のひとつです。Pythonはコードがシンプルで学びやすいことから、データ処理や自動化、API開発に非常に向いています。

LambdaでPythonを使うと、イベントドリブンなアプリケーションを効率的に構築できます。例えば、S3(エススリー)にファイルがアップロードされたときに自動でPythonコードを実行してファイルを処理する、といった流れを簡単に作れます。

2. PythonコードをLambdaにデプロイする流れ

2. PythonコードをLambdaにデプロイする流れ
2. PythonコードをLambdaにデプロイする流れ

AWS LambdaでPythonを動かす基本的な流れは以下のとおりです。

  1. AWSマネジメントコンソールにログインする
  2. 新しいLambdaファンクションを作成する
  3. ランタイムとしてPythonを選択する(例:Python 3.9)
  4. インラインエディタやZIPファイルを使ってコードをアップロードする
  5. テストイベントを設定して動作を確認する

この流れを理解しておけば、初心者でもすぐにPythonを使ったサーバーレスアプリケーションを動かすことができます。

3. Lambda関数の基本構造(Python版)

3. Lambda関数の基本構造(Python版)
3. Lambda関数の基本構造(Python版)

Pythonで書かれたAWS Lambdaファンクションは、必ず「ハンドラ関数」を持ちます。ハンドラとは、Lambdaが呼び出されたときに最初に実行される関数のことです。

例えば、以下のような形です。

def lambda_handler(event, context):
    message = "Hello from Lambda with Python!"
    return {
        'statusCode': 200,
        'body': message
    }

このコードは、API Gatewayと連携させるとHTTPリクエストに対して「Hello from Lambda with Python!」という応答を返すシンプルな例です。

4. AWSコンソールでの実行方法

4. AWSコンソールでの実行方法
4. AWSコンソールでの実行方法

初心者にとって一番簡単なのはAWSマネジメントコンソールを使う方法です。

  1. 「関数の作成」をクリック
  2. 関数名を入力して、ランタイムに「Python 3.x」を選択
  3. 「コードソース」でインラインエディタにPythonコードを入力
  4. 保存して「テスト」を実行

これだけで、PythonコードをLambda環境で動かすことができます。サーバーの設定やCPU(シーピーユー)、メモリの細かい調整は不要です。

5. ZIPファイルを使ったアップロード

5. ZIPファイルを使ったアップロード
5. ZIPファイルを使ったアップロード

より高度なPythonコードを使う場合は、外部ライブラリを含めてZIPファイルでアップロードする方法があります。

  1. ローカル環境でPythonコードを作成
  2. 必要なライブラリをインストール(例:pip install requests -t ./package
  3. コードとライブラリをまとめてZIP化
  4. AWS Lambdaの「コードソース」でZIPをアップロード

これにより、Python標準以外のライブラリも活用でき、より複雑な処理が可能になります。

6. 実行結果を確認する方法

6. 実行結果を確認する方法
6. 実行結果を確認する方法

PythonコードをLambdaにデプロイした後は、必ず動作確認を行いましょう。AWSコンソールでは「テスト」機能を使ってイベントをシミュレートできます。また、CloudWatch Logs(クラウドウォッチ ログ)に出力されるログを確認することで、エラーの原因や処理時間を把握できます。

7. PythonとLambdaの活用例

7. PythonとLambdaの活用例
7. PythonとLambdaの活用例

PythonとLambdaを組み合わせることで、以下のような活用例があります。

  • S3にアップロードされたファイルをPythonで解析して結果を保存する
  • API Gatewayを経由して外部アプリからのリクエストをPythonで処理する
  • CloudWatch Eventsを利用して定期的にPythonスクリプトを実行する

これらを組み合わせることで、サーバーレスなシステム開発がより便利になります。

8. 知っておきたいこと

8. 知っておきたいこと
8. 知っておきたいこと

AWS LambdaでPythonを実行するときは、処理時間やメモリに制限があることを理解しておく必要があります。例えば、処理が15分以上かかるタスクはLambdaには不向きです。その場合は他のサービスと組み合わせる必要があります。

しかし、短時間で終わる処理やイベントドリブンなアプリケーションにおいては、LambdaとPythonは非常に相性が良い組み合わせです。

まとめ

まとめ
まとめ

本記事では、AWS Lambdaを使ってPythonコードを実行する方法について、基礎から実践的な内容まで段階的に学んできました。AWS Lambdaはサーバーレス実行環境として提供されており、サーバー構築やOS管理を意識することなく、Pythonプログラムをすぐに実行できる点が大きな特徴です。これにより、インフラ管理に不慣れな初心者でも、比較的簡単にクラウド上で処理を動かせるようになります。

AWS LambdaとPythonの組み合わせは、コードの書きやすさと実行環境の手軽さが両立している点が魅力です。Pythonは文法が分かりやすく、短いコードで処理を記述できるため、Lambdaのイベントドリブンな仕組みと非常に相性が良い言語です。S3へのファイルアップロードやAPI Gatewayからのリクエスト、定期実行イベントなど、さまざまなトリガーをきっかけにPythonコードを自動実行できる点は、業務自動化やバックエンド処理で特に役立ちます。

Lambda関数の基本構造として重要なのが、ハンドラ関数の存在です。PythonでLambda関数を書く場合、必ずlambda_handlerのような関数を定義し、eventとcontextを引数として受け取ります。この仕組みを理解することで、外部から渡されるデータを処理したり、実行環境の情報を参照したりできるようになります。Lambda特有の考え方を押さえることは、サーバーレス開発を理解する上で欠かせません。

AWSマネジメントコンソールを使った実行方法は、初学者にとって非常に分かりやすい入口です。インラインエディタにPythonコードを記述し、その場でテストイベントを作成して実行結果を確認できるため、動作確認を繰り返しながら学習を進められます。サーバーを立ち上げてログインする必要がない点は、従来のサーバー運用と比べて大きな違いと言えるでしょう。

さらに、ZIPファイルを使ったアップロード方法を理解することで、Lambdaの活用範囲は大きく広がります。外部ライブラリを含めたPythonコードをZIP化してアップロードすることで、API通信やデータ処理など、より実践的な処理をLambda上で実行できます。これにより、単純なサンプルコードから一歩進んだ、実務レベルの処理にも対応できるようになります。

実行結果の確認には、CloudWatch Logsの存在が重要です。Lambda関数の実行ログやエラーメッセージを確認することで、処理の流れや問題点を把握できます。Pythonコードが期待通りに動かない場合でも、ログを読むことで原因を特定しやすくなり、トラブルシューティングの力も自然と身についていきます。

以下は、Lambdaでよく使われるPythonコードの基本形を、振り返りとして再度確認する例です。ハンドラ関数の構造や戻り値の形式を意識しながら読むことで、理解がより深まります。


def lambda_handler(event, context):
    result = "LambdaでPythonコードが正常に実行されました"
    return {
        'statusCode': 200,
        'body': result
    }

AWS Lambdaには実行時間やメモリの制限がありますが、短時間で完了する処理やイベント駆動の仕組みには非常に向いています。そのため、定期処理や通知処理、データの簡易加工などにPythonとLambdaを組み合わせることで、効率的なシステムを構築できます。これらの特徴を理解した上で使い分けることが、クラウド活用の重要なポイントです。

先生と生徒の振り返り会話

生徒

「AWS Lambdaを使えば、サーバーを用意しなくてもPythonコードが動くという意味が、だんだん分かってきました。」

先生

「それは良い理解ですね。Lambdaはサーバーレスという考え方を学ぶ上で、とても分かりやすいサービスです。」

生徒

「ハンドラ関数やイベントの仕組みを知ることで、どうやって処理が呼ばれるのかも理解できました。」

先生

「その理解があれば、S3やAPI Gatewayと組み合わせた開発にも挑戦できますよ。」

生徒

「まずは簡単なPython処理をLambdaで動かして、CloudWatch Logsを見ながら練習してみます。」

先生

「実際に手を動かすのが一番の近道です。少しずつ慣れていきましょう。」

カテゴリの一覧へ
新着記事
New1
シェルとターミナル基礎
Linuxのシェルとは?初心者でもわかる役割と基本を完全解説
New3
Linux ディストリビューション
Linuxディストリビューションの選び方完全ガイド!初心者でも失敗しない選択基準とおすすめの選び方
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
AWS 基本
AWSの公式料金計算ツール(Pricing Calculator)の使い方
No.3
Java&Spring記事人気No3
S3(オブジェクトストレージ)
AWS S3イベント通知を設定してLambdaをトリガーする方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.5
Java&Spring記事人気No5
VPC(プライベートクラウド)
AWS VPCでNATゲートウェイを構成してプライベートサブネットから外部アクセスする方法を初心者向けに解説!
No.6
Java&Spring記事人気No6
Direct Connect(専用線接続)
AWS Direct Connect Gatewayの使い方と制限事項を初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのスケーリング(インスタンスサイズ変更)を初心者向けにやさしく解説!
No.8
Java&Spring記事人気No8
Linux 基礎概要
Linuxとは何か?初心者向けに意味・特徴をわかりやすく解説