AWS Lambda 関数(コンソール)をトリガーするためのキューの設定 - Amazon Simple Queue Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Lambda 関数(コンソール)をトリガーするためのキューの設定

Amazon SQSキューのメッセージを処理するAWS Lambda 関数を使用することができます。Lambda はキューをポーリングし、Lambda関数を、キューメッセージを含むイベントと共に同期的に呼び出します。関数がレコードの各バッチを処理するために十分な時間を取るため、ソースキューの可視性タイムアウトは、関数に設定したタイムアウトの少なくとも 6 倍にに設定してください。追加の時間は、関数が前のバッチの処理中にスロットリングされた場合に、Lambda が再試行することを可能にします。

Lambda関数が処理できないメッセージのデッドレターキューとして動作する別のキューを指定することができます。

Lambda関数は、複数のキューから項目を処理できます(各キューに対して1つのLambda イベントソースを使用)。複数のLambda関数で同じキューを使用できます。

暗号化されたキューを Lambda関数に関連付けても Lambda がメッセージをポーリングしない場合は、kms:DecryptLambda 実行ロールへのアクセスを許可します。

以下の制限があることに注意してください:

  • キューと Lambda 関数は同じ AWS リージョンに存在する必要があります。

  • デフォルトキー (Amazon SQS の AWS マネージド KMS キー) を使用した暗号化されたキューは、別な AWS アカウント の Lambda 関数を呼び出せません。

Lambda 関数の実装については、AWS Lambda デベロッパーガイドAmazon SQS で AWS Lambda の使用をご参照ください。

前提条件

Lambda 関数のトリガーを設定する場合、以下の要件を満たしていることが必要です:

  • ユーザーを使用する場合、Amazon SQSロールに以下のアクセス許可が含まれている必要があります。

    • lambda:CreateEventSourceMapping

    • lambda:ListEventSourceMappings

    • lambda:ListFunctions

  • Lambda実行ロールに以下のアクセス許可が含まれている必要があります。

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • sqs:ReceiveMessage

  • 暗号化されたキューを Lambda 関数に関連付ける場合は、kms:DecryptLambda 実行ロールへのアクセス許可をする必要があります。

詳細については、「Amazon SQS でのアクセス管理の概要」を参照してください。

Lambda関数(コンソール)をトリガーするためにキューを設定
  1. Amazon SQSコンソール を開きますhttps://console.aws.amazon.com/sqs/

  2. ナビゲーションペインで [Queues(キュー) ] を選択します。

  3. [キュー]ページで、設定するキューを選択します。

  4. キューのページでLambdaトリガータブを選択します。

  5. Lambdaトリガーページで、Lambda トリガーを選択します。

    リストに、必要な Lambdaトリガーが含まれていない場合は、Lambda関数トリガーを設定するを選択します。Lambda関数のAmazon リソースネーム (ARN)を入力するか、既存のリソースを選択します。次に、[Save]を選択します。

  6. [保存] を選択します。コンソールは設定を保存し、キューのの詳細ページを表示します。

    詳細ページでLambda トリガータブに Lambda 関数とそのステータスが表示されます。Lambda関数がキューに関連付けられるまで約1分かかります。

  7. 設定の結果を確認するには、キューにメッセージを送信して、トリガーされたLambdaコンソールの Lambda関数が表示できます。