メニュー
AWS Lambda
開発者ガイド

サポートされているイベントソース

このトピックでは、AWS Lambda 関数のイベントソースとして設定できるサポート対象の AWS サービスを示します。イベントソースマッピングをあらかじめ設定した後、イベントソースがイベントを検出すると Lambda 関数が自動的に呼び出されます。呼び出しモードの詳細については、「イベントソースマッピング」を参照してください。

このトピックにリストされているすべてのイベントソースは、以下の点に注意してください。

  • イベントソースはストリームベースのサービス (Amazon Kinesis Streams および Amazon DynamoDB Streams) を除いて、イベントソースマッピングを維持します。ストリームベースのサービスの場合は、AWS Lambda がイベントソースマッピングを維持します。AWS Lambda はイベントソースマッピングを作成、管理するための「CreateEventSourceMapping」オペレーションを提供します。詳細については、「イベントソースマッピング」を参照してください。

     

  • これらのイベントソースが Lambda 関数の呼び出し時に使用する呼び出しタイプも、あらかじめ設定されています。たとえば、Amazon S3 は常に非同期で Lambda 関数を呼び出し、Amazon Cognito は同期で Lambda 関数を呼び出します。呼び出しタイプを制御できる唯一の場合は、「Invoke」オペレーションを使用して自分で Lambda 関数を呼び出す場合です (たとえば、カスタムアプリケーションからオンデマンドで Lambda 関数を呼び出すなど)。

     

  • AWS イベントを処理するには、関数の作成に使用したプログラミング言語に応じて、Lambda 関数に追加のライブラリを含める必要がある場合があります。Node.js または Python で記述された関数に追加のライブラリは必要ありません。C# の場合は、AWS Lambda for .NET Core を含める必要があります。Java の場合は、aws-lambda-java-libs を含める必要があります。

    重要

    含める各パッケージは変更せずに使用する必要があります。依存関係を削除したり、競合する依存関係を追加したり、パッケージからクラスを選択して含めたりすると、予期しない動作が発生する場合があります。

Lambda 関数をオンデマンドで呼び出すこともできます。詳細については、「その他のイベントソース: オンデマンドで Lambda 関数を呼び出す」を参照してください。

これらのイベントソースによって発行されたイベントの例については、「イベントソースによって公開されたサンプルイベント」を参照してください。

Amazon S3

Lambda 関数を作成して、オブジェクト作成イベントやオブジェクト削除イベントなど S3 バケットのイベントを処理できます。たとえば、ユーザーがバケットに写真をアップロードする場合に、Amazon S3 で Lambda 関数を呼び出してイメージを読み取り、写真のサムネイルを作成するとします。

イベントソースマッピングを設定し、Amazon S3 で発行され Lambda 関数を呼び出すバケットイベントを識別するには、Amazon S3 のバケットの通知設定の機能を使用できます。

Amazon S3 のイベントの例については、イベントメッセージの構造、「Amazon S3 入力のイベント例」および「Amazon S3 削除のイベント例」を参照してください。ユースケース例については、「AWS Lambda を Amazon S3 に使用する」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon S3 では Lambda 関数を非同期的に呼び出します。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon DynamoDB

Amazon DynamoDB テーブルに対して、Lambda 関数をトリガーとして使用できます。トリガーは、DynamoDB テーブルに対して行われた更新に応じて行うカスタムアクションです。トリガーを作成するには、まずテーブルに対して Amazon DynamoDB Streams を有効にします。AWS Lambda はストリームをポーリングし、Lambda 関数がストリームに発行された更新を処理します。

これは、ストリームベースのイベントソースです。ストリームベースのサービスの場合、AWS Lambda にイベントソースマッピングを作成し、ポーリングするストリームおよび呼び出す Lambda 関数を識別します。

DynamoDB イベントの例については、「ステップ 2.3.2: Lambda 関数をテストする (手動で呼び出す)」および「Amazon DynamoDB 更新のイベント例」を参照してください。一般的な形式については、『Amazon DynamoDB API Reference』の「GetRecord」を参照してください。ユースケース例については、「Amazon DynamoDB で AWS Lambda を使用する」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。DynamoDB は、ストリームベースのイベントソースです。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Kinesis Streams

ストリームを自動的にポーリングして、ウェブサイトクリックストリーム、金融取引、ソーシャルメディアフィード、IT ログ、ロケーション追跡イベントなどの新規レコードを処理するように、AWS Lambda を設定できます。この場合、AWS Lambda は新しいレコードを検出するために定期的 (1 秒に 1 回) にストリームをポーリングします。

ストリームベースのサービスの場合、AWS Lambda にイベントソースマッピングを作成し、ポーリングするストリームおよび呼び出す Lambda 関数を識別します。

イベントの例については、「ステップ 2.3: Lambda 関数を作成し、手動でテストする」および「Amazon Kinesis Streams のイベント例」を参照してください。ユースケース例については、「Kinesis で AWS Lambda を使用する」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon Kinesis Streams は、ストリームベースのイベントソースです。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Simple Notification Service

Amazon Simple Notification Service 通知を処理する Lambda 関数を記述できます。Amazon SNS トピックに対してメッセージが発行された場合に、サービスがメッセージのペイロードをパラメーターとして渡すことで Lambda 関数を呼び出すことができます。その後、Lambda 関数コードがイベントを処理します。たとえば、別の Amazon SNS トピックにメッセージを発行したり、別の AWS サービスにメッセージを送信したりできます。

また、Amazon CloudWatch アラームや Amazon SNS を使用する別の AWS サービスに応答して Lambda 関数をトリガーすることもできます。

Amazon SNS のイベントソースマッピングはトピックのサブスクリプション設定を使用して設定します。詳細については、『Amazon Simple Notification Service 開発者ガイド』の「Amazon SNS 通知を使用した Lambda 関数の呼び出し」を参照してください。

イベントの例については、付録: メッセージおよび JSON の形式および「Amazon SNS のイベント例」を参照してください。ユースケース例については、「さまざまなアカウントから AWS Lambda を Amazon SNS で使用」を参照してください。

Lambda 関数がサブスクライブされているトピックに対してユーザーが SNS Publish API を呼び出すと、Amazon SNS は Lambda を呼び出して関数を非同期的に呼び出します。Lambda からは配信ステータスが返されます。Lambda の呼び出しでエラーが発生した場合、Amazon SNS は Lambda 関数の呼び出しを最大 3 回まで再試行します。3 回試行しても正常に Lambda 関数を呼び出すことができなかった場合、Amazon SNS から CloudWatch に配信ステータス失敗メッセージが送信されます。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon SNS では Lambda 関数を非同期的に呼び出します。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Simple Email Service

Amazon Simple Email Service (Amazon SES) は、コスト効率が高い E メールサービスです。Amazon SES を使用すると、E メールの送信に加えて、メッセージの受信にもサービスを使用できます。Amazon SES の詳細については、Amazon Simple Email Serviceを参照してくださいAmazon SESを使用してメッセージを受信する場合、メッセージが到着すると Lambda 関数を呼び出すように Amazon SESを設定できます。設定すると、受信 E メールイベント (実際には Amazon SNS イベントの Amazon SES メッセージ) をパラメータとして渡すことで、サービスによって Lambda 関数を呼び出すことができます。シナリオの例はAmazon SES による E メール受信のユースケースの検討を参照してください。

Amazon SES のルール設定を使用してイベントソースマッピングを設定します。以下のトピックでは、Amazon Simple Email Service 開発者ガイドの追加情報を提供しています。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon SES では Lambda 関数を非同期的に呼び出します。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Cognito

Amazon Cognito イベント機能を使用して、Amazon Cognito のイベントに応答して Lambda 関数を実行できます。たとえば、データセットが同期されるたびに発行される同期トリガーイベントに対して Lambda 関数を呼び出すことができます。詳細および例の解説については、モバイル開発ブログのAmazon Cognito イベントの概要: 同期トリガーを参照してください。

Amazon Cognito のイベントサブスクリプション設定を使用してイベントソースマッピングを設定します。イベントソースマッピングとイベント例については、Amazon Cognito 開発者ガイドAmazon Cognito イベントを参照してください。別のイベント例については、「Amazon Cognito Sync トリガーのイベント例 」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon Cognito は Lambda 関数を同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

AWS CloudFormation

AWS CloudFormation スタックをデプロイする作業の一環として、Lambda 関数をカスタムコマンドを実行するためのカスタムリソースとして指定できます。Lambda 関数をカスタムリソースと関連付けることで、AWS CloudFormation スタックを作成、更新、または削除した際に Lambda 関数が呼び出されます。

スタック定義を使用して AWS CloudFormation にイベントソースマッピングを設定します。詳細については、『AWS CloudFormation ユーザーガイド』の「AWS Lambda-backed カスタムリソース」を参照してください。

イベント例については、「AWS CloudFormation リクエスト作成のイベント例」を参照してください。このイベントは、実際には Amazon SNS イベントの AWS CloudFormation メッセージであることに注意してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。AWS CloudFormation では Lambda 関数を同期的に呼び出します。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon CloudWatch Logs

AWS Lambda 関数を使用して、CloudWatch Logs サブスクリプションを使用した Amazon CloudWatch Logs のカスタム分析を実行できます。CloudWatch Logs サブスクリプションを使用して CloudWatch Logs からのログイベントのリアルタイムフィードにアクセスし、AWS Lambda 関数に配信して、カスタム処理、分析、他のシステムへのロードを行うことができます。CloudWatch Logs の詳細については、ログファイルのモニタリングを参照してください。

ログサブスクリプション設定を使用して、Amazon CloudWatch Logs のイベントソースマッピングを維持します。詳細については、Amazon CloudWatch ユーザーガイドサブスクリプションを使用したログデータのリアルタイム処理 (例 2: AWS Lambda)を参照してください。

イベント例については、「Amazon CloudWatch Logs のイベント例」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon CloudWatch Logs は Lambda 関数を非同期的に呼び出します (Lambda 関数の呼び出しはログへの書き込みオペレーションを妨げません)。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon CloudWatch Events

Amazon CloudWatch Events は、AWS リソースの状態変化への対応に役立ちます。リソースの状態が変化すると、自動的にイベントがイベントストリームに送信されます。選択したイベントをストリーム内で照合し、AWS Lambda 関数にルーティングしてアクションを実行するためのルールを作成できます。たとえば、AWS Lambda 関数を自動的に呼び出し、EC2 インスタンスまたは AutoScaling グループの状態を記録することができます。

ルールターゲット定義を使用して、Amazon CloudWatch イベントのイベントソースマッピングを維持します。詳細については、Amazon CloudWatch Events API リファレンスPutTargets オペレーションを参照してください。

イベント例については、Amazon CloudWatch ユーザーガイドサポートされるイベントタイプを参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon CloudWatch イベントは Lambda 関数を非同期的に呼び出します。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

AWS CodeCommit

AWS CodeCommit リポジトリのトリガーを作成して、リポジトリのイベントから Lambda 関数を呼び出すことができます。たとえば、ブランチまたはタグが作成されたときや既存のブランチに対してプッシュが行われたときに、Lambda 関数を呼び出すことができます。詳細については、「Manage Triggers for an AWS CodeCommit Repository」を参照してください。

リポジトリトリガーを使用して AWS CodeCommit にイベントソースマッピングを維持します。詳細については、PutRepositoryTriggers オペレーションを参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。AWS CodeCommit は Lambda 関数を非同期的に呼び出します。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

スケジュールされたイベント (Amazon CloudWatch Events を使用)

Amazon CloudWatch イベントのイベントスケジュール機能を使用し、スケジュールに基づいて定期的にコードが呼び出されるように AWS Lambda をセットアップすることもできます。スケジュールを設定するには、固定料金 (時間、日、または週の数) を指定、または cron 式を指定できます (Amazon CloudWatch ユーザーガイドルールのスケジュール式の構文を参照してください)。

ルールターゲット定義を使用して、Amazon CloudWatch イベントのイベントソースマッピングを維持します。詳細については、Amazon CloudWatch Events API リファレンスPutTargets オペレーションを参照してください。

ユースケース例については、「スケジュールされたイベントでの AWS Lambda の使用」を参照してください。

イベント例については、「スケジュールされたイベントのイベント例」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon CloudWatch イベントは Lambda 関数を非同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

AWS Config

AWS Lambda 関数を使用して、AWS リソースの設定が独自の設定ルールに従っているかどうかを評価できます。リソースが作成、削除、変更されると、AWS Config がこれらの変更を記録し、Lambda 関数に情報を送信します。Lambda 関数は変更を評価し、結果を AWS Config に報告します。その後、AWS Config を使用してリソース全体のコンプライアンスを評価できます。どのリソースが不適合であり、どの設定属性が不適合の原因であるかを知ることができます。

ルールターゲット定義を使用して、AWS Config のイベントソースマッピングを維持します。詳細については、AWS Config API リファレンスPutConfigRule オペレーションを参照してください。

詳細については、AWS Config ルールを使用したリソースの評価を参照してください。カスタムルールの設定については、AWS Config のカスタムルールの開発を参照してください。Lambda 関数の例については、AWS Config ルール向けの AWS Lambda 関数の例 (Node.js)を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。AWS Config は Lambda 関数を非同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Alexa

Lambda 関数を使用して Amazon Echo の音声アシスタントである Alexa に新しいスキルを与えるサービスをビルドできます。Alexa Skills Kit は、Lambda 関数として実行している独自のサービスを使用して、新しいスキルを作成するための API、ツール、およびドキュメントを提供します。Amazon Echo ユーザーは、Alexa に質問やリクエストを行うことで、これらの新しいスキルにアクセスできます。詳細については、以下のトピックを参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon Echo は Lambda 関数を同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Lex

Amazon Lex は、音声とテキストを使用してアプリケーションに会話型インターフェイスを構築するための AWS のサービスです。Amazon Lex は AWS Lambda との事前に構築された統合を提供し、Amazon Lex ボットでコードフックとして使用するための Lambda 関数を作成することができます。インテント設定では、初期化/検証、受理、またはその両方を実行するため Lambda 関数を識別できます。

詳細については、Lambda 関数の使用を参照してください。ユースケース例については、演習 1: 設計図を使用して Amazon Lex ボットを作成するを参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon Lex は Lambda 関数を同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon API Gateway

Lambda 関数を HTTPS 経由で呼び出すことができます。Amazon API Gateway を使用してカスタム REST API とエンドポイントを定義することで、これを行うことができます。特定の Lambda 関数に、GETPUT などの個別の API オペレーションをマッピングします。API エンドポイントに HTTPS リクエストを送信するときに、Amazon API Gateway サービスが、対応する Lambda 関数を呼び出します。

詳細については、Lambda 関数を同時に呼び出すを参照してください。ユースケース例については、「Amazon API Gateway での AWS Lambda の使用 (オンデマンド HTTPS 経由)」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Amazon API Gateway は Lambda 関数を同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

また、Lambda 関数を、このトピックにリストされているサポートされている AWS イベントソースのいずれかにデータを発行する他の AWS サービスとともに使用できます。たとえば、次のようにすることができます。

  • Amazon S3 バケットへのすべての API アクセスイベントが記録されるため、CloudTrail の更新に応じて Lambda 関数をトリガーします。

  • Amazon SNS トピックに対してアラームイベントが発行されるため、CloudWatch アラームに応じて Lambda 関数をトリガーします。

AWS IoT ボタン

AWS IoT ボタンは、Amazon Dash Button ハードウェアをベースにしたプログラミング可能なボタンです。このシンプルな Wi-Fi デバイスは設定が簡単で、開発者が AWS Lambda やその他多くの AWS のサービスを、デバイス固有のコードを作成せずに開始できるように設計されています。

クラウド内のボタンのロジックをコーディングして、アイテムのカウントまたは追跡、呼び出しまたはアラート、何かの開始または停止、サービスのオーダー、またはフィードバックを提供するようにボタンのクリックを設定できます。例えばボタンをクリックして、車のロック解除や始動、ガレージのオープン、タクシーの配車、配偶者やカスタマーサービスの代表者の呼び出し、家庭の日用品、薬品または製品の使用量のトラッキング、または家電のリモートコントロールを行えます。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。AWS IoT は Lambda 関数を非同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon CloudFront

Lambda@Edge では、CloudFront イベントに応答して AWS リージョンと Amazon CloudFront エッジロケーションで Lambda 関数を実行でき、サーバーのプロビジョニングや管理は不要です。Lambda 関数を使用して、次の時点で CloudFront リクエストとレスポンスを変更できます。

  • CloudFront がビューワーからリクエストを受信した後 (ビューワーリクエスト)

  • CloudFront がリクエストをオリジンサーバーに転送する前 (オリジンリクエスト)

  • CloudFront がオリジンからレスポンスを受信した後 (オリジンレスポンス)

  • CloudFront がビューワーにレスポンスを転送する前 (ビューワーレスポンス)

詳細については、「AWS Lambda@Edge」を参照してください。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。CloudFront は Lambda 関数を同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

Amazon Kinesis Firehose

Amazon Kinesis Firehose は、ストリーミングデータを AWS にロードする最も簡単な方法です。ストリーミングデータをキャプチャし、変換し、Kinesis Analytics や Amazon S3 などのサービスに自動的にロードすることができるため、現在既に使用している既存のビジネスインテリジェンスツールとダッシュボードによってほぼリアルタイムの分析を行うことが可能になります。Lambda 関数を作成して、データがダウンストリームに送信される前に、カスタマイズされた処理を追加でリクエストできます。

指定のイベントソースのエラー処理は、Lambda の起動方法で決まります。Kinesis Firehose は Lambda 関数を同期的に呼び出すように設定されています。エラーの再試行方法の詳細については、「エラー時の再試行」を参照してください。

その他のイベントソース: オンデマンドで Lambda 関数を呼び出す

イベントソースを使用して Lambda 関数を呼び出すほかに、オンデマンドでも Lambda 関数を呼び出すことができます。この場合、イベントソースマッピングを事前設定する必要はありません。ただし、カスタムアプリケーションに Lambda 関数を呼び出すために必要な権限があることを確認してください。

たとえば、ユーザーアプリケーションでイベントを生成できます (独自のカスタムイベントソースを構築します)。クライアント、モバイル、ウェブアプリケーションなどのユーザーアプリケーションは、AWS SDK または AWS Mobile SDK for Android などの AWS Mobile SDK を使用してイベントを発行し、Lambda 関数を呼び出すことができます。

詳細については、「Tools for Amazon Web Services」を参照してください。チュートリアルの例については、「Amazon API Gateway での AWS Lambda の使用 (オンデマンド HTTPS 経由)」を参照してください。