また、対処がわからず嵌ってしまったので記事に残しておきます。
CDK なんでこんなにつまづきポイントが多いんだろう。
環境
Windows10 + WSL2(Ubuntu18.04)
CDK 2.33.0
nodejs 16.16.0
問題
WSL環境でcdk deployするとS3バケットへのファイルのアップロード時にソケットエラーが発生します。
現在2つのテンプレートをお試し中で片方のテンプレートは100%発生します。
失敗しているのはCloudFrontとACM周りをごにょごにょするテンプレートです。
$cdk deploy
[100%] fail: read ECONNRESET
❌ MyStaticSite failed: Error: Failed to publish one or more assets. See the error messages above for more information
Re:Postの投稿. cdk-stck-failed-to-publish-one-or-more-assets-access-denied
こちらの対処を試しましたが改善されず。(というかこの対処は的外れでは)
WSL2 lost connection to the internet after a VPN MTU change
うーん。なんかWSL2のネットワーク怪しいんですよね。
対処
というわけで、、WSLのネットワークが怪しい。
#こんな対処嫌なんですが、現状はこれ以外見つからないです。
WSLを捨ててwindowsのコマンドプロンプトでCDKを実行します。
まったく同じテンプレートを同じバージョンのCDK, nodejsでコマンドプロンプトから実行すれば何も問題なし。
と前回記載しました。約1ヶ月後、再び同じ問題に遭遇。結局Windowsのコマンドプロンプトでも問題事象は発生します。
ACMがus-east-1へのデプロイを要求するので、引きづられてCloudFrontもus-ueast-1へデプロイするようにしているのだけど、どうもこの辺が怪しいんじゃないかということがなんとなくわかってきて
ACMとCloudFrontのデプロイを分離したほうがいいよね?ってたどり着いたのが以下のリンク。
AWS CDK(cdk-remote-stack)でACMとCloudFrontのクロスリージョン参照を実装する @ ClassMethodさん
ACMとCloudFrontを分離することでこの問題は解決しました。WSL2を捨てなくてすみそうです。ちゃんちゃん。
## 愚痴
Docker on WSL2環境では、samのローカルテストがDocker on Docker on WSL2 するのでこの環境を諦め。
WSL2では、ネットワーク周りが怪しいので諦め。
Windowsの開発者は、どうしてこんなにハマりポイントがあるの・・。