Amazon Simple Queue Service
開発者ガイド

チュートリアル: AWS Lambda 関数をトリガーするように Amazon SQS キューへの着信メッセージを設定する

このチュートリアルでは、新しいメッセージがキューに着信したときに、AWS Lambda 関数をトリガーするように既存の Amazon SQS キューを設定する方法について説明します。

Lambda 関数を使用すると、サーバーをプロビジョニングまたは管理しなくてもコードを実行できます。たとえば、1 つのキューからのメッセージを処理するように Lambda 関数を設定できます。一方で、Lambda 関数で正常に処理できないメッセージのデッドレターキューとして別のキューを使用できます。問題が解決したら、Lambda 関数を通じてデッドレターキューからメッセージをリドライブできます。詳細については、『AWS Lambda Developer Guide』の「Amazon SQS デッドレターキュー」、さらに「AWS Lambda とは」および「Amazon SQS で AWS Lambda を使用する」を参照してください。

注記

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

FIFO キューは Lambda 関数のトリガーをサポートしていません。

1 つのキューのみを、1 つ以上の Lambda 関数に関連付けることができます。

Amazon SQS 用 AWS マネージドカスタマーマスターキーを使用する暗号化されたキューを、別の AWS アカウントの Lambda 関数と関連付けることはできません。

前提条件

コンソールを使用して Lambda 関数のトリガーを設定するには、以下のことを確認する必要があります。

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

    • lambda:CreateEventSourceMapping

    • lambda:ListEventSourceMappings

    • lambda:ListFunction

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

    • sqs:ChangeMessageVisibility

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • sqs:ReceiveMessage

詳細については、「Amazon Simple Queue Service リソースへのアクセス権限の管理の概要」を参照してください。

AWS マネジメントコンソール

  1. Amazon SQS コンソールにサインインします。

  2. キューの一覧から、Lambda 関数をトリガーするキューを選択します。

  3. [Queue Actions (キュー操作)] で、[Configure Trigger for Lambda Function(Lambda 関数のトリガーの設定)] を選択します。

  4. [Configure Incoming Messages to Trigger a Lambda Function (Lambda 関数をトリガーするように着信メッセージを設定する)] ダイアログボックスで、以下のいずれかの操作を行います。

    • 既存の Lambda 関数を使用するには、リストから [Select a Lambda Function (Lambda 関数の選択)] を選択します。

    • AWS Lambda コンソールで新しい Lambda 関数を作成するには、[Create New (新規作成)] を選択します。詳細については、『AWS Lambda Developer Guide』の「Lambda 関数を作成する」を参照してください。

  5. [Save] を選択します。

  6. [Lambda Function Trigger Configuration Result (Lambda 関数トリガー設定結果)] ダイアログボックスで、Amazon SQS キューによってトリガーされる Lambda 関数を確認し、[OK] を選択します。

    注記

    Lambda 関数がキューに関連付けられるまで約 1 分かかります。

    Lambda 関数とそのステータスが [Lambda Triggers (Lambda トリガー)] タブに表示されます。

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

    • Lambda 関数とキューとの関連付けを削除するには、Lambda 関数の ARN の横にある を選択します。