Shogo's Blog

Jan 11, 2024 - 1 minute read - go golang aws

AWS SDK for Go v2にnot found ResolveEndpointV2と起こられたときの解決策

AWS SDK for Go v2を使っているプロジェクトで、以下のようなエラーが発生しました。

{"time":"2024-01-09T06:45:00.239872","level":"fatal","message":"not found, ResolveEndpointV2"}

解決策

github.com/aws/aws-sdk-go-v2 名前空間の下にあるモジュールをすべて最新版にアップデートしましょう。

go get -u "github.com/aws/aws-sdk-go-v2/..."

原因

AWS SDK for Go v2 v1.23.0 (2023-11-15) で入った以下の変更が原因です。

Feature: BREAKING CHANGE: V2 endpoint resolution middleware has changed steps from Serialize to Finalize. Middleware that indexes off of this field will need to be updated accordingly.

特徴: 重大な変更: V2エンドポイント解決ミドルウェアは、SerializeからFinalizeへのステップが変更されました。このフィールドをベースにインデックスを付けるミドルウェアは、それに応じて更新する必要があります。(ChatGPTによる和訳)

なんでこんなひどいことするの 😭(1年3か月ぶり、2回目)

前回壊れたとき(参考:AWS SDK v2 for Goが壊れた、Googleお前もか)はコンパイルエラーで気がつけたのですが、今回のエラーは実行してみないとわかりません。 マイナーアップデートで入れるのはやめてくれ・・・。

参考