【AWS】LambdaでPythonを使う方法【バージョン・requests・ログ出力対応】
生徒
「先生、AWS LambdaでPythonを使えるって聞いたんですけど、具体的にどうやって使えばいいんですか?」
先生
「LambdaはサーバーレスでPythonを動かせる便利なサービスです。バージョンの選び方や外部ライブラリの使い方、さらにログ出力の仕組みを理解すると、すぐに実用的な関数が作れるようになりますよ。」
生徒
「なるほど!PythonをLambdaで使うときに注意すべきポイントも知りたいです。」
先生
「それではLambdaでPythonを使う方法を、バージョン、requestsライブラリ、ログ出力対応まで丁寧に解説していきましょう。」
1. AWS LambdaでPythonを使うメリット
AWS LambdaでPythonを利用するメリットはたくさんあります。Pythonは文法がシンプルで初心者にも理解しやすく、データ処理やAPI開発に強いという特徴があります。さらにAWSが公式にPythonをサポートしているため、Lambdaとの相性が良いのも魅力です。
サーバーの管理をせずにPythonコードを実行できるため、APIの構築、データ変換、ファイル処理、外部サービスとの連携など、幅広い用途で利用されています。
2. LambdaでサポートされるPythonバージョン
LambdaではPythonの複数バージョンがサポートされています。例えば以下のようなバージョンです。
- Python 3.7(サポート終了予定)
- Python 3.8
- Python 3.9
- Python 3.10
- Python 3.11
新しいバージョンを選ぶことで、最新のライブラリや機能を利用でき、セキュリティリスクも減らせます。AWS公式ドキュメントでは常に最新のサポート状況を確認できるので、開発前にチェックしておくと安心です。
3. Lambda関数でのPythonコードの基本構造
LambdaのPythonコードはシンプルです。基本的には関数lambda_handlerを定義し、その中でイベントを処理します。
import json
def lambda_handler(event, context):
message = "Hello from AWS Lambda with Python!"
return {
"statusCode": 200,
"body": json.dumps(message)
}
このようにイベントを受け取り、結果を返すだけでAPIやバッチ処理が実現できます。
4. requestsライブラリを使った外部API連携
Pythonの魅力は豊富なライブラリです。その中でもrequestsライブラリは外部APIと連携するときに必須です。ただし、Lambdaの標準環境にはrequestsが含まれていないため、自分でライブラリをパッケージングする必要があります。
方法1:Layerを使う
AWS LambdaのLayerを使ってrequestsを含めたライブラリを共有できます。
方法2:zipファイルに同梱
ローカルでrequestsをインストールし、依存ファイルごとzipにしてデプロイする方法もあります。
pip install requests -t ./python
zip -r myfunction.zip .
こうすることでLambda上でもrequestsが使えるようになり、APIとの通信が可能になります。
5. Pythonでのログ出力方法
Lambdaでログを出力する際には、標準ライブラリのloggingを利用します。ログは自動的にCloudWatch Logsに送信されるので、デバッグや監視に役立ちます。
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info("Lambda関数が実行されました")
logger.debug(f"イベント内容: {event}")
return {"statusCode": 200, "body": "ログ出力テスト"}
ログレベルを調整することで、必要に応じて詳細な情報を確認できます。INFO以上に設定しておけば、通常の運用で十分です。
6. LambdaでPythonを使うときの注意点
LambdaでPythonを利用するときにはいくつかの注意点があります。
- 依存ライブラリはLayerやzipに同梱する必要がある
- 実行時間の制限(最大15分)がある
- メモリとタイムアウト設定によって処理性能が変わる
- 最新バージョンのサポート状況を随時確認する必要がある
これらを意識して設計すれば、エラーを減らし効率的に開発を進められます。
7. 初心者におすすめの学習ステップ
PythonでLambdaを学ぶ初心者は、次の流れで練習するとスムーズです。
- コンソールでシンプルなHello Worldを作る
- ログを出力してCloudWatchで確認する
- requestsを使って外部APIと連携する
- DynamoDBやS3と組み合わせて小さなアプリを作る
この流れを踏むことで、LambdaとPythonの基本から応用まで自然に理解できるようになります。