他のサービスで AWS Lambda を使用する - AWS Lambda

他のサービスで AWS Lambda を使用する

AWS Lambda は、他の AWS のサービスと統合して、関数の呼び出しやその他のアクションを実行します。一般的なユースケースをいくつか示します。

Lambda で使用しているサービスに応じて、呼び出しは、通常、次の 2 つの方法のいずれかで動作します。イベントが呼び出しをトリガーするか、Lambda がキューまたはデータストリームをポーリングし、キューまたはデータストリーム内のアクティビティに応答して関数を呼び出します。Lambda は、関数の呼び出しを伴わない方法で Amazon Elastic File System および AWS X-Ray と統合します。

詳細については、「イベント駆動型の呼び出し」および「Lambda ポーリング」を参照してください。または、次のセクションで目的のサービスを参照して、そのサービスを Lambda とともに使用する場合の情報へのリンクを見つけます。

次の表で目的のサービスを検索し、使用すべき呼び出し方法を決定します。サービス名のリンクから、サービス間の統合の設定方法に関する情報を検索します。これらのトピックには、関数のテストに使用できるイベントの例も含まれています。

ヒント

この表のエントリは、サービス名のアルファベット順に示されています (「Amazon」または「AWS」プレフィックスを除きます)。ブラウザの検索機能を使用して、リスト内のサービスを検索することもできます。

サービス 呼び出し方法

Amazon Alexa

イベント駆動型、同期呼び出し

Amazon Managed Streaming for Apache Kafka

Lambda ポーリング

セルフマネージド Apache Kafka

Lambda ポーリング

Amazon API Gateway

イベント駆動型、同期呼び出し

AWS CloudFormation

イベント駆動型;、非同期呼び出し

Amazon CloudFront (Lambda@Edge)

イベント駆動型、同期呼び出し

Amazon EventBridge (CloudWatch Events)

イベント駆動型;、非同期呼び出し

Amazon CloudWatch Logs

イベント駆動型;、非同期呼び出し

AWS CodeCommit

イベント駆動型;、非同期呼び出し

AWS CodePipeline

イベント駆動型;、非同期呼び出し

Amazon Cognito

イベント駆動型、同期呼び出し

AWS Config

イベント駆動型;、非同期呼び出し

Amazon Connect

イベント駆動型、同期呼び出し

Amazon DynamoDB

Lambda ポーリング

Amazon Elastic File System

特殊な統合

Elastic Load Balancing (Application Load Balancer)

イベント駆動型、同期呼び出し

AWS IoT

イベント駆動型;、非同期呼び出し

AWS IoT Events

イベント駆動型;、非同期呼び出し

Amazon Kinesis

Lambda ポーリング

Amazon Kinesis Data Firehose

イベント駆動型、同期呼び出し

Amazon Lex

イベント駆動型、同期呼び出し

Amazon MQ

Lambda ポーリング

Amazon Simple Email Service

イベント駆動型;、非同期呼び出し

Amazon Simple Notification Service

イベント駆動型;、非同期呼び出し

Amazon Simple Queue Service

Lambda ポーリング

Amazon Simple Storage Service (Amazon S3)

イベント駆動型;、非同期呼び出し

Amazon Simple Storage Service Batch

イベント駆動型、同期呼び出し

シークレットマネージャー

イベント駆動型、同期呼び出し

AWS X-Ray

特殊な統合

イベント駆動型の呼び出し

一部のサービスは、Lambda 関数を呼び出すことができるイベントを生成します。これらの種類のアーキテクチャの設計の詳細については、Lambda オペレータガイドの「イベント駆動型アーキテクチャ」を参照してください。

イベント駆動型アーキテクチャを実装する場合、関数のリソースベースポリシーで、イベントを生成するサービスに関数呼び出しのアクセス許可を付与します。次に、関数を呼び出すイベントを生成するようにサービスを構成します。

イベントは JSON 形式で構造化されたデータです。JSON 構造は、それを生成するサービスとイベントタイプによって異なりますが、すべて関数がイベントを処理するために必要なデータを含んでいます。

Lambda は、イベントドキュメントをオブジェクトに変換して関数ハンドラに渡します。コンパイル済み言語では、Lambda はライブラリのイベントタイプの定義を提供します。詳細については、使用する言語での関数構築に関するトピックを参照してください (「C# による Lambda 関数の構築」、「Go による Lambda 関数の構築」、「Java による Lambda 関数の構築」または「PowerShell による Lambda 関数の構築」) 。

サービスに応じて、イベント駆動型呼び出しは同期または非同期になります。

  • 同期呼び出しの場合、イベントを生成するサービスは、関数からのレスポンスを待機します。そのサービスは、関数がレスポンスで返す必要があるデータを定義します。サービスはエラー戦略を制御します (エラー発生時に再試行するかどうかなど)。詳細については、同期呼び出し を参照してください。

  • 非同期呼び出しの場合、Lambda は関数に渡す前に、イベントをキューに入れます。Lambda はイベントをキューに入れると、イベントを生成したサービスにすぐに成功レスポンスを送信します。関数がイベントを処理した後、Lambda はイベント生成サービスにレスポンスを返しません。詳細については、非同期呼び出し を参照してください。

同期的に呼び出された関数と非同期的に呼び出された関数のエラー処理を Lambda が管理する方法の詳細については、「エラー処理と AWS Lambda での自動再試行」を参照してください。

Lambda ポーリング

キューまたはデータストリームを生成するサービスの場合、Lambda でイベントソースマッピングをセットアップして、Lambda がキューまたはデータストリームをポーリングするようにします。

Lambda ポーリングアーキテクチャを実装する場合、関数の実行ロール内の他のサービスに Lambda アクセス許可を付与します。Lambda は他のサービスからデータを読み取り、イベントを作成して関数を呼び出します。