Skip to content

1個のAWS Lambdaで複数のAPIを受けるAWS SAMのサンプル

Notifications You must be signed in to change notification settings

heiwa4126/sam-hello-goodbye

Repository files navigation

sam-hello-goodbye

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

OpenAPIのエクスポート

デプロイ後

./make_env.sh
./export_as_openapi.sh

で tmpの下に oas3.jsonoas3.yaml(yqコマンドがあれば)ができます。

メモ

コンソールからAWS API Gatewayでバリデータなどをいじった後

再デプロイしないと反映されない。exportしても変化がない。

以下手順を参照: REST API をステージに再デプロイする

CLIもあると思うが調べてない。あとstackのドリフトは再デプロイしても検出できない。

ほか一覧: 再デプロイが必要な REST API の更新 - Amazon API Gateway

validation

validationのクエリのほうがうまく動かない。bodyのほうはちゃんとmodelのバリデーションが動く。

API Gateway 拡張機能 - AWS Serverless Application Modelで x-amazon-apigateway-request-validatorをサポートしてないと書いてあるので間違ってない。

全部OpenAPIで書けばできると思うが、Event: の Apiは便利すぎる。

About

1個のAWS Lambdaで複数のAPIを受けるAWS SAMのサンプル

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published