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
ここで言及されている。次リリースされるらしい。
Goだと多分全部のリクエストでコケる
なるほど。他のruntimeはどうかわからないが、Goを選択した場合APIGatewayProxyResponseのMultiValueHeadersにomitemptyがついていなくて、いかなる場合でもresponse bodyにmultiValueHeadersが含まれて全部のリクエストでNGになってしまう感じか。これomitemptyつけてもいい気がするけどな。
おそらく他のランタイムだと multiValueHeaders キーを作らずにresponseを返すことができて、その場合はエラーにならないから気づかかなかった and 修正の優先順位が低かったとかなのかな。(違うかもしれないけど)