スキップしてコンテンツを表示

Lambda の Amazon SQS トリガーが非アクティブ化になったのはなぜですか。

所要時間1分
0

Amazon Simple Queue Service (Amazon SQS) キュー内のメッセージを処理するように AWS Lambda 関数を設定しましたが、SQS トリガーがアクティブになっていません。

簡単な説明

Lambda 関数を使用して Amazon SQS キュー内のメッセージを処理できます。イベントソースマッピングは、イベントソースから読み取って Lambda 関数を呼び出します。

Lambda ポーラーは、Amazon SQS キューに対して継続的に ReceiveMessage API コールを行います。ReceiveMessage API コールが完了しない場合、AWS::Lambda::EventSourceMapping リソースは非アクティブ化されます。

解決策

Lambda 関数のアクセス許可を確認する

Lambda 関数の実行ロールに ChangeMessageVisibilityDeleteMessageGetQueueAttributesReceiveMessage API アクションへのアクセス許可があることを確認します。

AWS KMS のアクセス許可を確認する

Amazon SQS キューが AWS Key Management Service (AWS KMS) の SSE-KMS 暗号化を使用して設定されている場合は、次の点を確認する必要があります。

**注: ** SSE-KMS 暗号化を使用する Amazon SQS キューは、AWS クロスアカウント内の Lambda 関数を呼び出すことはできません。

CloudTrail によるトラブルシューティング

AWS CloudTrail イベント履歴を使用してデータイベントを検索し、トラブルシューティング用のエラーコードを確認できます。
**注: ** CloudTrail は AWS アカウントでデフォルトで有効になっています。

AWS アカウントのイベントを継続的に記録するには、トレイルを作成してください。このトレイルは、アカウントで行われた API コールのログを作成します。
**注: ** CloudTrail コンソールで最新のイベント履歴を表示することもできます。

次の手順を実行します。

1.CloudTrail コンソールを開く。

2.ナビゲーションペインで [Event history] (イベント履歴) を選択する。

3.指示に従って、ユースケースに合わせて CloudTrail イベントを確認、表示、フィルタリングする。

記録されたイベント履歴を CSV または JSON 形式のファイルとしてダウンロードすることもできます。

CloudTrail イベント名 LambdaESMDisabled を確認してください。イベントログには、Amazon SQS トリガーがアクティブではない理由に関する詳細情報を含むデータイベント LambdaESMDisable が含まれています。

詳細については、「CloudTrail を使用した無効な Lambda イベントソースのトラブルシューティング」を参照してください。

(オプション) CloudWatch アラームの作成

Amazon SQS メトリクスの Amazon CloudWatch アラームを作成して、受信、送信、削除されたメッセージの数などの通知を受けることができます。たとえば、Amazon SQS メトリクス NumberOfMessagesReceived を使用して、最近返されたメッセージの数を取得できます。カウントが 0 の場合は、新しい Lambda 関数を呼び出して Amazon SQS トリガーのステータスを確認します。Amazon SQS トリガーがまだ非アクティブ化になっている場合は、新しい Lambda 関数を使用して有効にします。

詳細については、Available CloudWatch metrics for Amazon SQS (Amazon SQS で利用可能な CloudWatch メトリクス) を参照してください。

関連情報

Amazon SQS キューへのアクセス権を付与する方法を教えてください。

Lambda 関数が失敗する場合のトラブルシューティング方法を教えてください。

AWS公式更新しました 6ヶ月前
1コメント

This article was reviewed and updated on 2026-03-06.

エキスパート

応答済み 1ヶ月前