起きたこと
samでyamlに書かれている通りにapi gatewayを構築して、go言語で書かれたLambdaを使ってAPIを作成するが、Lambda側でもyaml側でもcorsの許可設定しているのに、何をやってもcorsエラーが変わらなかった。
環境構築資料の通りに進めていたが、そのブランチが古いことを後から知り、最新のブランチのREADME.mdにある手順でやっても他の人は成功するのに自分だけうまくいかなかった。
色々調べて、ほとんどの記事は「corsを許可したらいける」で、一部「"*"だとうまくいかないので直接指定する必要がある」という記事とか色々あったが、どれも関係はなかった。
解決方法
古い手順の中で、docker network createしていたのが原因だった。このネットワークのせいでyaml側とLambdaのheaderでのCORS設定が意味のないものとなってしまったのだろう。
コンテナを全て停止、削除して、そのネットワークを削除してこのネットワーク作成の手順を除いて再度構築し直したら問題なく動作した。