目次
背景
Chalice(+CI/CDパイプライン)を利用したAPI開発において、APIGatewayやLambdaに対する追加設定で chalice の configファイルが対応していない点があります。
個人的に遭遇した物で例えば、EFSマウント や APIGatewayのログ出力設定、カスタムレスポンス等です。
今回は前回 (EFSマウント) に引き続き、一部レスポンスをAPIGatewayのMockレスポンスを返したいという要望があり実現してみました。
(相当数のリクエストが想定されるため、Lambdaを通さずに直接レスポンスを返却したい)
前回記事はこちら
AWS Chalice の AWS CloudFormation Support
https://aws.github.io/chalice/topics/cfn.html
実装
/status エンドポイントにGETメソッドでアクセスした際に、レスポンスコード: 200、{"status": "OK"} を返却する MergeTemplateが下記のような形となります。
当然ですが下記のような動作のため、Chaliceにて既に /status へのRouteを作成していると今回のテンプレートに上書きされてしまうので要注意です。
Chalice → SAMTemplate ← 本TemplateをMerge
また、"title": "APIGateway-ResourceName"の宣言を抜くとCloudFormtationデプロイエラーとなるため
Chaliceのapp_nameを2重管理せざるを得ない形となっています。(最終的に 下記 DefinitionBody.title の名前で上書きされてしまう)
extras.json
作成されたリソース
/status リソースが作成され、GETメソッドがMock統合されている状態となりました。
レスポンス切り替え
一時対応等、手動の場合は /status リソースのGETメソッドの統合リクエスト設定中のマッピングテンプレートのレスポンスコードを変更後、APIをデプロイする事でレスポンスが下記のように変化します。
※APIデプロイ後、20秒程待つ必要あり
まとめ
利用頻度は少ないかもしれませんが、高頻度でアクセスされるエンドポイントの場合Lambda起動を抑える事ができるという点で有用かもしれません。
また、本題とはそれますが、マージ用のSAM Templateを生成系AIに作成してもらい調整した事で調査時間を大きく削減できました。
Bedrock (Anthropic Claude3シリーズ) レスポンス爆☆速でお勧めです。
投稿者プロフィール
-
Japan AWS Ambassadors 2023, 2024
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております
機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。
最新の投稿
Amazon Q2025年6月11日Amazon Q Developer CLI でMCPサーバ起動に失敗したのでトラブルシュートしてもらった
AWS2025年2月25日WebスクレイピングにAmazon CloudWatch Synthetics CanaryとBedrockを利用する
AWS re:Invent 20242025年1月1日AWS re:Invent 2024から読み解く、次世代クラウドコンピューティングの潮流
AWS re:Invent 20242024年12月7日Bedrock Flows と Amazon Q Developer Agentの新機能で生成AIアプリを短時間で作成する