AWS Lambda
開発者ガイド

Python の AWS Lambda 関数ハンドラ

Lambda 関数を作成するときに、ハンドラーを指定します。これはサービスでコードを実行する際に AWS Lambda が呼び出すコード内の関数です。Python でハンドラ関数を作成する場合は、次の一般的な構文構造を使用します。

def handler_name(event, context): ... return some_value

構文では、以下の点に注意してください。

  • event – AWS Lambda はこのパラメータを使用してイベントデータをハンドラに渡します。このパラメータは通常、Python の dict タイプです。また、liststrintfloat、または NoneType タイプを使用できます。

  • context – AWS Lambda はこのパラメータを使用してランタイム情報をハンドラに提供します。このパラメータは LambdaContext タイプになります。

  • オプションで、ハンドラーは値を返すことができます。Lambda 関数の呼び出しに使用した呼び出しタイプに応じて、戻り値は次のようになります。

    • RequestResponse 呼び出しタイプ(同期実行)を使用する場合、AWS Lambda は Python 関数呼び出しの結果を、Lambda 関数を呼び出したクライアントに返します(呼び出しリクエストに対する HTTP レスポンスでは、JSON にシリアル化されます)。たとえば、AWS Lambda コンソールは RequestResponse 呼び出しタイプを使用するため、コンソールを使用して関数を呼び出しすると、コンソールに戻り値が表示されます。

      ハンドラが NONE を返した場合、AWS Lambda は null を返します。

    • Event 呼び出しタイプ (非同期実行) を使用すると、値は破棄されます。

たとえば、次の Python コードの例を考えてみます。

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

この例では、my_handler という 1 つの関数があります。この関数は、入力として受け取ったイベントからのデータを含むメッセージを返します。