Lambda 関数を呼び出す
「Lambda 関数をデプロイ」した後、いくつかの方法で呼び出すことができます。
-
Lambda コンソール - Lambda コンソールを使用し、テストイベントをすばやく作成して関数を呼び出します。
-
「AWS SDK
」 - AWS SDK を使用して関数をプログラムによって呼び出します。 -
「呼び出し」 API - Lambda 呼び出し API を使用して関数を直接呼び出します。
-
AWS Command Line Interface (AWS CLI) —
aws lambda invoke
AWS CLI コマンドを使用し、コマンドラインから関数を直接呼び出します。 -
関数 URL の HTTP エンドポイント — 関数 URL を使用し、関数を呼び出すために使用する専用の HTTP エンドポイントを作成します。
これらのメソッドはすべて関数を直接呼び出す方法です。Lambda では、アプリケーションの他の場所で発生するイベントに基づいて関数を呼び出すことが一般的な使用例です。例えば、Amazon Simple Queue Service (Amazon SQS) は、キューがメッセージを受信したときに関数を呼び出すことができます。これらの呼び出しタイプの詳細については、「別の AWS のサービス からの Lambda 関数の呼び出し」を参照してください。
関数を呼び出す際は、同期的に呼び出すか非同期的に呼び出すかを選択できます。同期呼び出しでは、イベントを処理する関数を待ってレスポンスを返します。非同期呼び出しでは、Lambda はイベントをキューに入れて処理し、すぐにレスポンスを返します。呼び出し API の InvocationType
リクエストパラメータは、Lambda が関数を呼び出す方法を判定します。RequestResponse
の値は同期呼び出しを示し、Event
の値は非同期呼び出しを示します。
関数の呼び出しでエラーが発生したら、同期呼び出しの場合は応答のエラーメッセージを確認し、手動で呼び出しを再試行してください。非同期呼び出しの場合、Lambda は再試行を自動的に処理し、呼び出しレコードを 宛先 に送信できます。
別の AWS のサービス からの Lambda 関数の呼び出し
別の AWS サービスから関数を呼び出すには、トリガーを作成します。トリガーは、特定のイベントまたは状況が発生したとき、他の AWS サービスが関数を呼び出すために設定するリソースです。関数には複数のトリガーを持つことができます。各トリガーは、関数を単独に呼び出すクライアントとして機能し、Lambda が関数に渡す各イベントには、1 つのトリガーからのデータしかありません。
Lambda コンソールを使用してトリガーを作成します。AWS Serverless Application Model (AWS SAM) を使用している場合、AWS::Serverless::Function
リソースの「Events
プロパティ」を使用してトリガーを構成することもできます。
Lambda コンソールを使用してトリガーを作成するには
-
Lambda コンソールの [関数ページ]
を開きます。 -
トリガーを作成する関数を選択します。
-
[関数の概要] ペインで、[トリガーを追加] を選択します。
-
関数を呼び出す AWS サービスを選択します。
-
[トリガーの設定] ペインでオプションを入力し、[追加] を選択します。関数を呼び出すために選択する AWS のサービス により、トリガー設定のオプションが異なります。
トリガーを使用して Lambda 関数を呼び出すことができる AWS サービスの完全なリストと、異なるサービスのためのトリガーの設定に関する詳細については、「Using Lambda with other services」(他のサービスで Lambda を使用する) を参照してください。
トリガーのサブセットはストリームまたはキューを使用し、イベントを Lambda 関数に送信する前に保持します。これらのトリガーが関数を呼び出すように設定するには、イベントソースマッピング を作成する必要があります。イベントソースマッピングとは、ストリームまたはキューからのアイテムを読み取り、Lambda 関数に送信するアイテムのバッチが含まれるイベントを作成するリソースです。各イベントには、数百または数千のアイテムを含めることができます。
次の統合では、呼び出しにイベントソースマッピングが必要です。