Unauthorized
エラー パラメータに文字列を指定して Lambda オーソライザーから Lambda コールバック関数を呼び出すと、本文を含む 401 レスポンスが返されます。
{ "message": "Unauthorized" }
応答で他の文字列を使用しようとすると、次の応答が返されます。
{ "message": null }
代わりに、コールバックの結果パラメータで拒否ポリシー ドキュメントを返すと、次のような応答で 403 が返されます。
{ "message": "Unable to access resource with an explicit deny" }
調べてみると、Lambda オーソライザーからカスタム レスポンスを返すようにゲートウェイ レスポンスを設定する必要があるようです。これは 403 レスポンスに対して取り組んでいますが、401 に対してこれを行う方法がわかりません。
403 については、テンプレートを使用してゲートウェイ レスポンスを作成しました。
{\"message\":\"$context.authorizer.stringKey\"}
次に、結果オブジェクトで次を設定します
ResultObject.context.stringKey = 'My custom response'
これは機能し、ここに文書化されています。
ただし、401 については、ポリシー ドキュメントを返さないため、カスタム レスポンスの使用方法がわかりません。403 の場合と同じゲートウェイ レスポンスを作成しましたが、エラー パラメータに任意の文字列 (「Unauthorized」以外) を含むコールバックをヒットすると、null メッセージが表示されます。これはポリシー ドキュメントを含む応答構造体である必要があるため、結果パラメーターで返すことはできません。
401 でカスタム応答を返す方法についてのアイデアはありますか?