私はサーバーレスに不慣れで、最初のサービスを作成しています。AWSAPIゲートウェイとnode.jsラムダ関数用に構築されています。これを私のserverless.yaml
ファイルと考えてください:
service: applicationCatalog
frameworkVersion: '2'
provider:
name: aws
runtime: nodejs12.x
functions:
listShirts:
handler: handler.listShirts
events:
- httpApi: GET /
createShirt:
handler: handler.createShirt
events:
- httpApi: POST /
getShirt:
handler: handler.getShirt
events:
- httpApi:
method: GET
path: "/{shirtId}"
request:
parameters:
paths:
shirtId: true
deleteShirt:
handler: handler.deleteShirt
events:
- httpApi:
method: DELETE
path: "/{shirtId}"
request:
parameters:
paths:
shirtId: true
resources: {}
関数listShirts、createShirt、およびgetShirtはすべて期待どおりに機能し、deleteShirtもShirtIdが渡されると機能します。問題は、削除時にShirtIdを渡さない場合です。私のサービスURLが「https://shirts.mywardrobeapi.com」であると仮定します。私はこの要求を期待します:
DELETE https://shirts.mywardrobeapi.com
APIゲートウェイからエラー応答をトリガーします。代わりに、deleteShirt関数が呼び出されます。もちろん、この単純なチェックは関数内で処理できますが{ "shirtId" : true }
、それがserverless.yaml
ファイルの設定の目的だと思いました。この設定をshirtId
必要に応じて処理し、提供されていないときに関数を呼び出さないようにするにはどうすればよいですか?できない場合、この設定のこの目的は何ですか?
必要なパラメーターを処理するには、Middyとバリデーターミドルウェアを使用することをお勧めします。はい、欠点は、ラムダが常にトリガーされることです。しかし、あなたも得る
ゲートウェイAPIの正確な構成よりもmiddyの方が好きです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加