AWS SDK defaultProvider() の認証情報キャッシュを有効にする方法
OpenSearch
AWS
TypeScript
defaultProvider() は「認証情報」ではなく「認証情報を取得・管理する関数」を返す。 この関数は内部にキャッシュと自動更新機構を持っている。
❌ 悪い例(毎回新しいプロバイダーチェーンを生成) getCredentials: () => defaultProvider()() → リクエストごとに新しいプロバイダーを作成するため、キャッシュが共有されない → 大量の並列リクエスト時に、各リクエストが同時に IMDS へアクセスして 429 エラーが発生
✅ 良い例(プロバイダーを再利用) const credentialsProvider = defaultProvider(); getCredentials: credentialsProvider → 同じプロバイダーを共有することで、内部キャッシュが全リクエストで有効になる → 最初のリクエストのみ IMDS にアクセスし、他はキャッシュを使用
バッチ処理など大量の並列リクエストを投げる場面で効果がある。