Amazon SQS API エラーのトラブルシューティング - Amazon Simple Queue Service

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

Amazon SQS API エラーのトラブルシューティング

以下のトピックでは、Amazon SQS API コールを行うときに返される最も一般的なエラーとそのトラブルシューティング方法について説明します。

QueueDoesNotExist エラー

このエラーは、Amazon SQS サービスが Amazon SQS アクションの前述のキューを見つけられない場合に返されます。

考えられる原因と緩和策:

  • リージョンが正しくない: Amazon SQS クライアント設定を確認して、クライアントで正しいリージョンが設定されていることを確認します。クライアントでリージョンを設定しない場合、SDK または は設定ファイルまたは環境変数からリージョン AWS CLI を選択します。SDK が設定ファイルにリージョンを見つけられない場合、SDK はデフォルトでリージョンを us-east-1 に設定します。

  • キューが最近削除される可能性がある: API コールが行われる前にキューが削除された場合、API コールはこのエラーを返します。エラーが発生する前にDeleteQueue、オペレーションがない CloudTrailか確認します。

  • アクセス許可の問題: リクエスト AWS Identity and Access Management 元の (IAM) ユーザーまたはロールに必要なアクセス許可がない場合、次のエラーが表示されることがあります。

    The specified queue does not exist or you do not have access to it.

    アクセス許可を確認し、正しいアクセス許可で API コールを行います。

QueueDoesNotExist エラーのトラブルシューティングの詳細については、「 AWS ナレッジセンターガイド」のAmazon SQSキューに API コールを行うときに QueueDoesNotExist エラーをトラブルシューティングする方法」を参照してください。

InvalidAttributeValue エラー

このエラーは、Amazon SQS キューリソースポリシー、または誤ったポリシーまたはプリンシパルを持つプロパティを更新すると返されます。

考えられる原因と緩和策:

  • 無効なリソースポリシー: リソースポリシーにすべての必須フィールドがあることを確認します。詳細については、「IAM JSON ポリシー要素のリファレンス」および「IAM ポリシーの検証」を参照してください。IAM Policy Generator を使用して、Amazon SQS リソースポリシーを作成およびテストすることもできます。ポリシーが JSON 形式であることを確認します。

  • 無効なプリンシパル: Principal要素がリソースポリシーに存在し、値が有効であることを確認します。Amazon SQS リソースポリシーPrincipal要素に IAM エンティティが含まれている場合は、ポリシーを使用する前にエンティティが存在することを確認してください。Amazon SQS はリソースポリシーを検証し、IAM エンティティをチェックします。IAM エンティティが存在しない場合は、エラーが表示されます。IAM エンティティを確認するには、 GetRoleおよび GetUser APIsを使用します。

InvalidAttributeValue エラーのトラブルシューティング方法の詳細については、「 AWS ナレッジセンターガイド」のAmazon SQSコールを行うときに QueueDoesNotExist エラーをトラブルシューティングする方法」を参照してください。

ReceiptHandle エラー

DeleteMessage API コールを行うと、受信ハンドルが正しくないか、期限切れになると、エラー または が返されReceiptHandleIsInvalidInvalidParameterValueる可能性があります。

  • ReceiptHandleIsInvalid error: 受信ハンドルが正しくない場合は、次の例のようなエラーが表示されます。

    An error occurred (ReceiptHandleIsInvalid) when calling the DeleteMessage operation: The input receipt handle <YOUR RECEIPT HANDLE> is not a valid receipt handle.
  • InvalidParameterValue error: 受信ハンドルの有効期限が切れている場合、次の例のようなエラーが表示されます。

    An error occurred (InvalidParameterValue) when calling the DeleteMessage operation: Value <YOUR RECEIPT HANDLE> for parameter ReceiptHandle is invalid. Reason: The receipt handle has expired.

考えられる原因と緩和策:

受信ハンドルは受信したメッセージごとに作成され、可視性タイムアウト期間にのみ有効です。可視性タイムアウト期間が終了すると、コンシューマーのキューにメッセージが表示されます。コンシューマーからメッセージを再度受信すると、新しい受信ハンドルを受け取ります。受信ハンドルのエラーが正しくないか、期限切れにならないようにするには、正しい受信ハンドルを使用して、Amazon SQS キューの可視性タイムアウト期間内にメッセージを削除します。

ReceiptHandle エラーのトラブルシューティング方法の詳細については、「 AWS ナレッジセンターガイド」のAmazon SQS DeleteMessage コールを使用する際の」エラーReceiptHandleIsInvalidとInvalidParameter「値」エラーのトラブルシューティング方法」を参照してください。