0
0

AWS Lambdaの def lambda_handler(event, context): って決まり文句??

Last updated at Posted at 2024-08-08

この記事の対象者

初めてLambdaを使う人、使い始める人

結論

  • パラメータ名:決まり文句ではないが ほぼ決まり文句

AWS Lambda ランタイムの基本

パラメータの基本構造

  1. 第一パラメータ:イベントデータ(通常 event
  2. 第二パラメータ:コンテキスト情報(通常 context
    def lambda_handler(第一パラメータ, 第二パラメータ):
    

順序の重要性

  • 第一パラメータ:常にイベントデータ
  • 第二パラメータ:常にコンテキスト情報

パラメータ名のカスタマイズ例

標準的な使用方法

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

カスタム名の使用例

def lambda_handler(action, text):
    print(f"Received action data: {action}")
    print(f"Function name: {text.function_name}")
    user_name = action.get('user_name', 'Guest')
    return f"Hello, {user_name}! This is a custom named handler."

さらにシンプルな命名例

def lambda_handler(event, context):

上記を下記の様にすることも可能

def lambda_handler(A,B):
def lambda_handler(A, B):
    print(f"Received event data: {A}")
    print(f"Function name: {B.function_name}")
    user_name = A.get('user_name', 'Guest')
    remaining_time = B.get_remaining_time_in_millis()
    return {
        'message': f"Hello, {user_name}!",
        'remaining_time': remaining_time
    }

特殊なユースケース

context を使用しない場合

  • 用途:S3バケットのCSVファイルをJSON変換
  • 特徴:イベントデータのみ使用。context 不要
def lambda_handler(event, _):
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    return convert_csv_to_json(bucket, key)

context のみを使用する場合

  • 用途:簡単な挨拶ボットなど
  • 特徴:Lambda関数の情報のみ使用。イベントデータ不要
import time

def lambda_handler(_, context):
    current_time = time.strftime("%Y-%m-%d %H:%M:%S")
    function_name = context.function_name
    remaining_time = context.get_remaining_time_in_millis()
    
    message = (f"こんにちは!\n"
               f"現在の時刻は {current_time} です。\n"
               f"この関数の名前は「{function_name}」です。\n"
               f"関数はあと約 {remaining_time / 1000:.2f} 秒実行可能です。")
    
    return {
        'statusCode': 200,
        'body': message
    }

まとめ

  • パラメータ名:自由にカスタマイズ可能
  • 順序:固定。第一がイベント、第二がコンテキスト

補足

  • 標準名(event, context)の使用が多め
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