AWS Lambda関数において、別ファイルのグローバルスコープで初期化した変数のタイミングを確認するためのテストコードとそのメモです。 個人的なメモになります。
- Python 3.13
- Lambda
# fuga.py
print("fuga.pyのグローバルスコープを実行中")
client = "dummy client"
def hoge():
print("hogeメソッドを実行中")
return "テスト実行完了"
# lambda_function.py
from fuga import hoge
print("lambda_function.pyのグローバルスコープを実行中")
def lambda_handler(event, context):
print("lambda_handler実行開始")
result = hoge()
return result
1. INIT_START
2. fuga.py のグローバルスコープ実行
- client 変数の初期化
3. lambda_function.py のグローバルスコープ実行
1. START RequestId: xxx
2. lambda_handler 実行開始
3. hoge 関数実行
fuga.py
のグローバルスコープの初期化はコールドスタート時のみ実行される- グローバルスコープはLambda関数のコンテナ初期化時に一度だけ実行され、以降の連続したリクエスト(コールドスタートでない環境)では再実行されない
fuga.py
のグローバルスコープはlambda_function.py
より先に実行される
2025-01-22T02:50:11.473+09:00 INIT_START Runtime Version: python:3.13.v13
2025-01-22T02:50:11.554+09:00 fuga.pyのグローバルスコープを実行中
2025-01-22T02:50:11.554+09:00 lambda_function.pyのグローバルスコープを実行中
2025-01-22T02:50:11.558+09:00 START RequestId: 18300d18-cc44-47bc-9cb0-93418838d9d1 Version: $LATEST
2025-01-22T02:50:11.558+09:00 lambda_handler実行開始
2025-01-22T02:50:11.558+09:00 hogeメソッドを実行中