1個のAWS Lambdaで複数のAWS API Gatewayを受けるサンプル(aws_lambda_powertools.event_handler使用)。 他AWS API Gatewayでのバリデーションのサンプルにもなっている。
SAMなのでいつもどおりに
sam build
sam deploy --guided # 2回め以降は --guided ぬきで
このプロジェクトはデプロイしないでも
sam build
sam local start-api
# tmuxだったら画面分割して
./local_test.sh
で十分。
./make_env.sh && . ./tmp/env.sh
で環境変数をセットしたら
./remote_test.sh
バリデータのテストは
./validator_test.sh
デプロイ後
./make_env.sh
./export_as_openapi.sh
で tmpの下に oas3.json
と oas3.yaml
(yqコマンドがあれば)ができます。
再デプロイしないと反映されない。exportしても変化がない。
以下手順を参照: REST API をステージに再デプロイする
CLIもあると思うが調べてない。あとstackのドリフトは再デプロイしても検出できない。
ほか一覧: 再デプロイが必要な REST API の更新 - Amazon API Gateway
validationのクエリのほうがうまく動かない。bodyのほうはちゃんとmodelのバリデーションが動く。
API Gateway 拡張機能 - AWS Serverless Application Modelで x-amazon-apigateway-request-validatorをサポートしてないと書いてあるので間違ってない。
全部OpenAPIで書けばできると思うが、Event: の Apiは便利すぎる。