ぶろぐ

日記です

sam local start-apiで Invalid API Gateway Response Keys: set([u'multiValueHeaders']) が出るとき


今の最新バージョンは、sam local start-apiコマンドに multiValueHeaders 対応が入っていないというバグがあるっぽい。

ローカル検証用に起動するコマンド
sam local start-api
samのバージョン
sam --version
SAM CLI, version 0.16.1
対処方法

未だリリースはされていないが、developブランチには修正pull-requestがマージされている。
brewを使って最新のソースコードを使用してビルドする。

brew uninstall aws-sam-cli
brew install --HEAD aws-sam-cli

ここで言及されている。次リリースされるらしい。

github.com

Goだと多分全部のリクエストでコケる


なるほど。他のruntimeはどうかわからないが、Goを選択した場合APIGatewayProxyResponseのMultiValueHeadersにomitemptyがついていなくて、いかなる場合でもresponse bodyにmultiValueHeadersが含まれて全部のリクエストでNGになってしまう感じか。これomitemptyつけてもいい気がするけどな。

github.com

おそらく他のランタイムだと multiValueHeaders キーを作らずにresponseを返すことができて、その場合はエラーにならないから気づかかなかった and 修正の優先順位が低かったとかなのかな。(違うかもしれないけど)