カスタムオーソライザーを使用して関数をデプロイするサーバーレスフレームワークを使用しています。この問題は、このスレッドで説明されている問題と似ていますが、詳細な解決策はありません。
基本的に、ドキュメントで仕様として設定されたカスタムオーソライザーと関数を持っていますが、(エンドポイントを使用して) 関数をデプロイすると、次のエラーが表示されます。
Serverless: POST - exampleTest: Endpoint exampleTest~POST has an 'authorizerFunction' specified that does not exist in this project. Make sure the function's 'authorizer' property is filled in
エンドポイントの s-function.json 部分は次のとおりです。
"endpoints": [
{
"path": "exampleTest",
"method": "POST",
"type": "AWS",
"authorizationType": "custom",
"authorizerFunction": "exampleAuth",
"apiKeyRequired": false,
"requestParameters": {},
"requestTemplates": "$${apiRequestTemplate}",
"responses": {
"400": {
"statusCode": "400"
},
"default": {
"statusCode": "200",
"responseParameters": {},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": ""
}
}
}
}
カスタム オーソライザーの s-function.json 全体を次に示します。
{
"name": "exampleAuth",
"runtime": "nodejs4.3",
"description": "Custom Auth Function for API",
"customName": false,
"customRole": false,
"handler": "handler.handler",
"timeout": 30,
"memorySize": 256,
"authorizer": {},
"custom": {
"excludePatterns": []
},
"endpoints": [],
"events": [],
"environment": {
"SERVERLESS_PROJECT": "${project}",
"SERVERLESS_STAGE": "${stage}",
"SERVERLESS_REGION": "${region}"
},
"vpc": {
"securityGroupIds": [],
"subnetIds": []
}
}
問題があるかどうかはわかりませんが、関数とカスタム オーソライザーは同じプロジェクトにありますが、フォルダーが異なります (つまり、オーソライザーは関数のサブフォルダーではありません)。
最後に、カスタムオーソライザーを手動で追加すると、すべて正常に動作します。
助けや指示をありがとう!
編集: 追加の調査の後、問題はs-function.jsonの「オーソライザー」部分に関連していると思います。これは、エンドポイントではなく、ファイルのヘッダーにあります。この設定のサンプルが表示されず、ここに何を入れればよいかわかりません。アイデアや例をいただければ幸いです。